Skip to content

Commit 9e91e92

Browse files
committed
leader election IT
1 parent 88b88da commit 9e91e92

File tree

4 files changed

+78
-0
lines changed

4 files changed

+78
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package io.javaoperatorsdk.operator;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
class LeaderElectionIT {
6+
7+
@Test
8+
void leaderElection() {
9+
10+
}
11+
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.javaoperatorsdk.operator.sample.leaderelection;
2+
3+
import io.fabric8.kubernetes.api.model.Namespaced;
4+
import io.fabric8.kubernetes.client.CustomResource;
5+
import io.fabric8.kubernetes.model.annotation.Group;
6+
import io.fabric8.kubernetes.model.annotation.Kind;
7+
import io.fabric8.kubernetes.model.annotation.ShortNames;
8+
import io.fabric8.kubernetes.model.annotation.Version;
9+
10+
@Group("sample.javaoperatorsdk")
11+
@Version("v1")
12+
@ShortNames("le")
13+
public class LeaderElectionTestCustomResource
14+
extends CustomResource<Void, LeaderElectionTestCustomResourceStatus>
15+
implements Namespaced {
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.javaoperatorsdk.operator.sample.leaderelection;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class LeaderElectionTestCustomResourceStatus {
7+
8+
private List<String> reconciledBy;
9+
10+
public List<String> getReconciledBy() {
11+
if (reconciledBy == null) {
12+
reconciledBy = new ArrayList<>();
13+
}
14+
return reconciledBy;
15+
}
16+
17+
public LeaderElectionTestCustomResourceStatus setReconciledBy(List<String> reconciledBy) {
18+
this.reconciledBy = reconciledBy;
19+
return this;
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package io.javaoperatorsdk.operator.sample.leaderelection;
2+
3+
import io.javaoperatorsdk.operator.api.reconciler.*;
4+
5+
import java.time.Duration;
6+
7+
@ControllerConfiguration()
8+
public class LeaderElectionTestReconciler
9+
implements Reconciler<LeaderElectionTestCustomResource> {
10+
11+
private String reconcilerName;
12+
13+
public LeaderElectionTestReconciler(String reconcilerName) {
14+
this.reconcilerName = reconcilerName;
15+
}
16+
17+
@Override
18+
public UpdateControl<LeaderElectionTestCustomResource> reconcile(
19+
LeaderElectionTestCustomResource resource, Context<LeaderElectionTestCustomResource> context) {
20+
21+
if (resource.getStatus() == null) {
22+
resource.setStatus(new LeaderElectionTestCustomResourceStatus());
23+
}
24+
25+
resource.getStatus().getReconciledBy().add(reconcilerName);
26+
return UpdateControl.patchStatus(resource).rescheduleAfter(Duration.ofSeconds(200));
27+
}
28+
29+
}

0 commit comments

Comments
 (0)