Skip to content

Commit 4266e6c

Browse files
committed
generic configs for default non SSA resources
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 5faf9d7 commit 4266e6c

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

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

+6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
import org.slf4j.Logger;
1010
import org.slf4j.LoggerFactory;
1111

12+
import io.fabric8.kubernetes.api.model.ConfigMap;
1213
import io.fabric8.kubernetes.api.model.HasMetadata;
14+
import io.fabric8.kubernetes.api.model.Secret;
1315
import io.fabric8.kubernetes.client.Config;
1416
import io.fabric8.kubernetes.client.ConfigBuilder;
1517
import io.fabric8.kubernetes.client.CustomResource;
@@ -345,4 +347,8 @@ default boolean ssaBasedCreateUpdateMatchForDependentResources() {
345347
return true;
346348
}
347349

350+
default Set<Class<? extends HasMetadata>> defaultNonSSAResource() {
351+
return Set.of(ConfigMap.class, Secret.class);
352+
}
353+
348354
}

Diff for: operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java

+14
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.slf4j.Logger;
1010
import org.slf4j.LoggerFactory;
1111

12+
import io.fabric8.kubernetes.api.model.HasMetadata;
1213
import io.fabric8.kubernetes.client.KubernetesClient;
1314
import io.javaoperatorsdk.operator.api.monitoring.Metrics;
1415

@@ -35,6 +36,7 @@ public class ConfigurationServiceOverrider {
3536
private Duration cacheSyncTimeout;
3637
private ResourceClassResolver resourceClassResolver;
3738
private Boolean ssaBasedCreateUpdateMatchForDependentResources;
39+
private Set<Class<? extends HasMetadata>> defaultNonSSAResource;
3840

3941
ConfigurationServiceOverrider(ConfigurationService original) {
4042
this.original = original;
@@ -150,6 +152,12 @@ public ConfigurationServiceOverrider withSSABasedCreateUpdateMatchForDependentRe
150152
return this;
151153
}
152154

155+
public ConfigurationServiceOverrider withDefaultNonSSAResource(
156+
Set<Class<? extends HasMetadata>> defaultNonSSAResource) {
157+
this.defaultNonSSAResource = defaultNonSSAResource;
158+
return this;
159+
}
160+
153161
public ConfigurationService build() {
154162
return new BaseConfigurationService(original.getVersion(), cloner, client) {
155163
@Override
@@ -256,6 +264,12 @@ public boolean ssaBasedCreateUpdateMatchForDependentResources() {
256264
? ssaBasedCreateUpdateMatchForDependentResources
257265
: super.ssaBasedCreateUpdateMatchForDependentResources();
258266
}
267+
268+
@Override
269+
public Set<Class<? extends HasMetadata>> defaultNonSSAResource() {
270+
return defaultNonSSAResource != null ? defaultNonSSAResource
271+
: super.defaultNonSSAResource();
272+
}
259273
};
260274
}
261275

Diff for: operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ public abstract class KubernetesDependentResource<R extends HasMetadata, P exten
4040

4141
private static final Logger log = LoggerFactory.getLogger(KubernetesDependentResource.class);
4242

43-
public static final Set<Class<? extends HasMetadata>> DEFAULT_NON_SSA_RESOURCES =
44-
Set.of(ConfigMap.class, Secret.class);
45-
4643
protected KubernetesClient client;
4744
private final ResourceUpdaterMatcher<R> updaterMatcher;
4845
private final boolean garbageCollected = this instanceof GarbageCollected;
@@ -205,9 +202,9 @@ protected void sanitizeDesired(R desired, R actual, P primary, Context<P> contex
205202
protected boolean useSSA(Context<P> context) {
206203
Optional<Boolean> useSSAConfig =
207204
configuration().flatMap(KubernetesDependentResourceConfig::useSSA);
208-
205+
var configService = context.getControllerConfiguration().getConfigurationService();
209206
// don't use SSA for certain resources by default, only if explicitly overriden
210-
if (useSSAConfig.isEmpty() && DEFAULT_NON_SSA_RESOURCES.contains(resourceType())) {
207+
if (useSSAConfig.isEmpty() && configService.defaultNonSSAResource().contains(resourceType())) {
211208
return false;
212209
}
213210
return useSSAConfig.orElse(context.getControllerConfiguration().getConfigurationService()

0 commit comments

Comments
 (0)