Skip to content

Commit f31b5ce

Browse files
committed
add default resources
Signed-off-by: Attila Mészáros <[email protected]>
1 parent d8deae4 commit f31b5ce

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@
66
import io.fabric8.kubernetes.api.model.apps.StatefulSet;
77
import io.javaoperatorsdk.operator.api.reconciler.Context;
88

9-
import static io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource.useSSA;
10-
119
public class DesiredResourceSanitizer {
1210

1311
private DesiredResourceSanitizer() {}
1412

1513
public static <R, P extends HasMetadata> void sanitizeDesired(R desired, R actual, P primary,
16-
Context<P> context) {
17-
if (useSSA(context)) {
14+
Context<P> context, boolean useSSA) {
15+
if (useSSA) {
1816
if (desired instanceof StatefulSet) {
1917
fillDefaultsOnVolumeClaimTemplate((StatefulSet) desired);
2018
}

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

+16-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
import org.slf4j.Logger;
88
import org.slf4j.LoggerFactory;
99

10+
import io.fabric8.kubernetes.api.model.ConfigMap;
1011
import io.fabric8.kubernetes.api.model.HasMetadata;
12+
import io.fabric8.kubernetes.api.model.Secret;
1113
import io.fabric8.kubernetes.client.KubernetesClient;
1214
import io.fabric8.kubernetes.client.dsl.Resource;
1315
import io.javaoperatorsdk.operator.OperatorException;
@@ -38,6 +40,10 @@ public abstract class KubernetesDependentResource<R extends HasMetadata, P exten
3840

3941
private static final Logger log = LoggerFactory.getLogger(KubernetesDependentResource.class);
4042

43+
public static final Set<Class<? extends HasMetadata>> DEFAULT_NON_SSA_RESOURCES =
44+
Set.of(ConfigMap.class,
45+
Secret.class);
46+
4147
protected KubernetesClient client;
4248
private final ResourceUpdaterMatcher<R> updaterMatcher;
4349
private final boolean garbageCollected = this instanceof GarbageCollected;
@@ -134,6 +140,7 @@ public R update(R actual, R desired, P primary, Context<P> context) {
134140
sanitizeDesired(desired, actual, primary, context);
135141
if (useSSA(context)) {
136142
updatedResource = prepare(desired, primary, "Updating")
143+
.fieldManager(context.getControllerConfiguration().fieldManager())
137144
.fieldManager(context.getControllerConfiguration().fieldManager())
138145
.forceConflicts().serverSideApply();
139146
} else {
@@ -192,13 +199,18 @@ protected void addMetadata(boolean forMatch, R actualResource, final R target, P
192199
addReferenceHandlingMetadata(target, primary);
193200
}
194201

195-
protected void sanitizeDesired(R desired, R actual, P primary, Context<P> context) {
196-
DesiredResourceSanitizer.sanitizeDesired(desired, actual, primary, context);
197-
}
202+
protected void sanitizeDesired(R desired, R actual, P primary, Context<P> context) {
203+
DesiredResourceSanitizer.sanitizeDesired(desired, actual, primary, context, useSSA(context));
204+
}
198205

199-
private boolean useSSA(Context<P> context) {
206+
protected boolean useSSA(Context<P> context) {
200207
Optional<Boolean> useSSAConfig =
201208
configuration().flatMap(KubernetesDependentResourceConfig::useSSA);
209+
210+
// don't use SSA for certain resources by default, only if explicitly overriden
211+
if (useSSAConfig.isEmpty() && DEFAULT_NON_SSA_RESOURCES.contains(resourceType())) {
212+
return false;
213+
}
202214
return useSSAConfig.orElse(context.getControllerConfiguration().getConfigurationService()
203215
.ssaBasedCreateUpdateMatchForDependentResources());
204216
}

0 commit comments

Comments
 (0)