K8s client leader election#2107
Conversation
Signed-off-by: wind57 <eugen.rabii@gmail.com>
Signed-off-by: wind57 <eugen.rabii@gmail.com>
Signed-off-by: wind57 <eugen.rabii@gmail.com>
Signed-off-by: wind57 <eugen.rabii@gmail.com>
| <module>spring-cloud-starter-kubernetes-fabric8-loadbalancer</module> | ||
| <module>spring-cloud-kubernetes-discovery</module> | ||
| <module>spring-cloud-starter-kubernetes-discoveryclient</module> | ||
| <module>spring-cloud-kubernetes-client-leader</module> |
There was a problem hiding this comment.
new module that adds support for k8s client leader election
Signed-off-by: wind57 <eugen.rabii@gmail.com>
Signed-off-by: wind57 <eugen.rabii@gmail.com>
Signed-off-by: wind57 <eugen.rabii@gmail.com>
Signed-off-by: wind57 <eugen.rabii@gmail.com>
Signed-off-by: wind57 <eugen.rabii@gmail.com>
|
|
||
| private volatile boolean shutDownCalled = false; | ||
|
|
||
| KubernetesClientLeaderElectionInitiator(String candidateIdentity, String candidateNamespace, |
There was a problem hiding this comment.
as with fabric8 implementation, this is the main class you should look at.
|
@ryanjbaxter k8s client leader election implementation is ready to be looked at. It very much looks like fabric8 one tbh. thank you |
There was a problem hiding this comment.
Pull request overview
This PR implements leader election support for the Kubernetes Java client, complementing the existing Fabric8 implementation. It introduces native leader election functionality that can use either Lease or ConfigMap resources as locks, depending on cluster capabilities.
Key Changes:
- Added a new module
spring-cloud-kubernetes-client-leaderwith complete leader election implementation - Created comprehensive integration tests covering various leader election scenarios (readiness checks, failover, concurrent elections)
- Updated documentation to reflect support for both Fabric8 and Kubernetes client implementations
Reviewed changes
Copilot reviewed 31 out of 31 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
spring-cloud-kubernetes-client-leader/pom.xml |
New module definition for K8s client leader election |
spring-cloud-kubernetes-client-leader/src/main/java/** |
Core implementation classes including initiator, callbacks, and auto-configuration |
spring-cloud-kubernetes-client-leader/src/test/java/** |
Unit tests for auto-configuration and info contributor functionality |
spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-leader-election/** |
Integration tests covering readiness, failover, and concurrent election scenarios |
spring-cloud-kubernetes-dependencies/pom.xml |
Added dependency management for the new module |
pom.xml |
Added new module to the parent POM |
spring-cloud-kubernetes-integration-tests/pom.xml |
Added integration test module reference |
docs/modules/ROOT/pages/leader-election.adoc |
Updated documentation to mention both Fabric8 and K8s client support |
spring-cloud-kubernetes-fabric8-leader/** |
Minor naming corrections and test improvements |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...tes/client/leader/election/KubernetesClientLeaderElectionInfoContributorIsNotLeaderTest.java
Show resolved
Hide resolved
...amework/cloud/kubernetes/client/leader/election/KubernetesClientLeaderElectionInitiator.java
Outdated
Show resolved
Hide resolved
...work/cloud/kubernetes/client/leader/election/K8sClientLeaderElectionReadinessCanceledIT.java
Outdated
Show resolved
Hide resolved
...amework/cloud/kubernetes/client/leader/election/KubernetesClientLeaderElectionInitiator.java
Outdated
Show resolved
Hide resolved
...amework/cloud/kubernetes/client/leader/election/K8sClientLeaderElectionReadinessFailsIT.java
Outdated
Show resolved
Hide resolved
...rnetes/client/leader/election/KubernetesClientLeaderElectionInfoContributorIsLeaderTest.java
Show resolved
Hide resolved
Signed-off-by: wind57 <eugen.rabii@gmail.com>
|
@ryanjbaxter I fixed copilot comments, can you re-trigger it again? thank you |
Signed-off-by: wind57 <eugen.rabii@gmail.com>
...ernetes/client/leader/election/KubernetesClientLeaderElectionCallbacksAutoConfiguration.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 31 out of 31 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...cloud/kubernetes/client/leader/election/KubernetesClientLeaderElectionAutoConfiguration.java
Show resolved
Hide resolved
...cloud/kubernetes/client/leader/election/KubernetesClientLeaderElectionAutoConfiguration.java
Outdated
Show resolved
Hide resolved
...ork/cloud/kubernetes/client/leader/election/K8sClientLeaderElectionIsLostAndRestartedIT.java
Outdated
Show resolved
Hide resolved
Signed-off-by: wind57 <eugen.rabii@gmail.com>
No description provided.