Skip to content

Commit e68b9e0

Browse files
authored
fix: leader election manager init when not using config overrider (#1636)
1 parent 9c46c47 commit e68b9e0

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ public Operator(KubernetesClient client, Consumer<ConfigurationServiceOverrider>
6060
public Operator(KubernetesClient kubernetesClient, ConfigurationService configurationService) {
6161
this.kubernetesClient =
6262
kubernetesClient != null ? kubernetesClient : new KubernetesClientBuilder().build();
63+
ConfigurationServiceProvider.set(configurationService);
6364
configurationService.getLeaderElectionConfiguration()
6465
.ifPresent(c -> leaderElectionManager.init(c, this.kubernetesClient));
65-
ConfigurationServiceProvider.set(configurationService);
6666
}
6767

6868
/** Adds a shutdown hook that automatically calls {@link #stop()} when the app shuts down. */

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/OperatorTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.javaoperatorsdk.operator;
22

3+
import java.util.Optional;
4+
35
import org.junit.jupiter.api.AfterAll;
46
import org.junit.jupiter.api.Assertions;
57
import org.junit.jupiter.api.BeforeAll;
@@ -12,6 +14,7 @@
1214
import io.javaoperatorsdk.operator.api.config.AbstractConfigurationService;
1315
import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider;
1416
import io.javaoperatorsdk.operator.api.config.LeaderElectionConfiguration;
17+
import io.javaoperatorsdk.operator.api.config.Version;
1518
import io.javaoperatorsdk.operator.api.reconciler.Context;
1619
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
1720
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
@@ -84,6 +87,23 @@ void shouldBeAbleToProvideLeaderElectionConfiguration() {
8487
.getLeaderElectionConfiguration().orElseThrow().getIdentity().orElseThrow());
8588
}
8689

90+
@Test
91+
void shouldBeAbleToInitLeaderElectionManagerWithoutOverrider() {
92+
ConfigurationServiceProvider.reset();
93+
final LeaderElectionConfiguration leaderElectionConfiguration =
94+
new LeaderElectionConfiguration("leader-election-test", "namespace", "identity");
95+
final AbstractConfigurationService configurationService =
96+
new AbstractConfigurationService(Version.UNKNOWN) {
97+
@Override
98+
public Optional<LeaderElectionConfiguration> getLeaderElectionConfiguration() {
99+
return Optional.of(leaderElectionConfiguration);
100+
}
101+
};
102+
new Operator(kubernetesClient, configurationService);
103+
assertEquals("identity", ConfigurationServiceProvider.instance()
104+
.getLeaderElectionConfiguration().orElseThrow().getIdentity().orElseThrow());
105+
}
106+
87107
@ControllerConfiguration
88108
private static class FooReconciler implements Reconciler<ConfigMap> {
89109

0 commit comments

Comments
 (0)