8000 feat: skip registration of controllers whose configuration isn't found · Sgitario/java-operator-sdk@ae27837 · GitHub
[go: up one dir, main page]

Skip to content 8000

Commit ae27837

Browse files
committed
feat: skip registration of controllers whose configuration isn't found
1 parent 38d419a commit ae27837

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,18 @@ public Operator(KubernetesClient k8sClient, ConfigurationService configurationSe
3131
public <R extends CustomResource> void register(ResourceController<R> controller)
3232
throws OperatorException {
3333
final var configuration = configurationService.getConfigurationFor(controller);
34-
final var retry = GenericRetry.fromConfiguration(configuration.getRetryConfiguration());
35-
final var targetNamespaces = configuration.getNamespaces().toArray(new String[] {});
36-
registerController(controller, configuration.watchAllNamespaces(), retry, targetNamespaces);
34+
if (configuration == null) {
35+
log.warn(
36+
"Skipping registration of {} controller named {} because its configuration cannot be found.\n"
37+
+ "Known controllers are: {}",
38+
controller.getClass().getCanonicalName(),
39+
ControllerUtils.getNameFor(controller),
40+
configurationService.getKnownControllerNames());
41+
} else {
42+
final var retry = GenericRetry.fromConfiguration(configuration.getRetryConfiguration());
43+
final var targetNamespaces = configuration.getNamespaces().toArray(new String[] {});
44+
registerController(controller, configuration.watchAllNamespaces(), retry, targetNamespaces);
45+
}
3746
}
3847

3948
public <R extends CustomResource> void registerControllerForAllNamespaces(

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AbstractConfigurationService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import io.javaoperatorsdk.operator.ControllerUtils;
55
import io.javaoperatorsdk.operator.api.ResourceController;
66
import java.util.Map;
7+
import java.util.Set;
78
import java.util.concurrent.ConcurrentHashMap;
89

910
public abstract class AbstractConfigurationService implements ConfigurationService {
@@ -35,4 +36,9 @@ public <R extends CustomResource> ControllerConfiguration<R> getConfigurationFor
3536
ResourceController<R> controller) {
3637
return configurations.get(ControllerUtils.getNameFor(controller));
3738
}
39+
40+
@Override
41+
public Set<String> getKnownControllerNames() {
42+
return configurations.keySet();
43+
}
3844
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.fabric8.kubernetes.client.Config;
44
import io.fabric8.kubernetes.client.CustomResource;
55
import io.javaoperatorsdk.operator.api.ResourceController;
6+
import java.util.Set;
67

78
public interface ConfigurationService {
89

@@ -12,4 +13,6 @@ <R extends CustomResource> ControllerConfiguration<R> getConfigurationFor(
1213
default Config getClientConfiguration() {
1314
return Config.autoConfigure(null);
1415
}
16+
17+
Set<String> getKnownControllerNames();
1518
}

0 commit comments

Comments
 (0)
0