Skip to content

Commit 50894cd

Browse files
committed
configuration overrides
1 parent c0732f7 commit 50894cd

File tree

6 files changed

+26
-7
lines changed

6 files changed

+26
-7
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,7 @@ default ExecutorServiceManager getExecutorServiceManager() {
266266
}
267267

268268
// todo test transition
269-
// todo configurable
270-
default boolean useLegacyCreateUpdateAndMatchingOnDependentResources() {
269+
default boolean legacyCreateUpdateAndMatchingForDependentResources() {
271270
return false;
272271
}
273272
}

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public class ConfigurationServiceOverrider {
3232
private Boolean stopOnInformerErrorDuringStartup;
3333
private Duration cacheSyncTimeout;
3434
private ResourceClassResolver resourceClassResolver;
35+
private Boolean legacyCreateUpdateAndMatchingForDependentResources;
3536

3637
ConfigurationServiceOverrider(ConfigurationService original) {
3738
this.original = original;
@@ -139,6 +140,12 @@ public ConfigurationServiceOverrider withResourceClassResolver(
139140
return this;
140141
}
141142

143+
public ConfigurationServiceOverrider withLegacyCreateUpdateAndMatchingForDependentResources(
144+
boolean value) {
145+
this.legacyCreateUpdateAndMatchingForDependentResources = value;
146+
return this;
147+
}
148+
142149
public ConfigurationService build() {
143150
return new BaseConfigurationService(original.getVersion(), cloner, objectMapper) {
144151
@Override
@@ -248,6 +255,13 @@ public ResourceClassResolver getResourceClassResolver() {
248255
return resourceClassResolver != null ? resourceClassResolver
249256
: super.getResourceClassResolver();
250257
}
258+
259+
@Override
260+
public boolean legacyCreateUpdateAndMatchingForDependentResources() {
261+
return legacyCreateUpdateAndMatchingForDependentResources != null
262+
? legacyCreateUpdateAndMatchingForDependentResources
263+
: super.legacyCreateUpdateAndMatchingForDependentResources();
264+
}
251265
};
252266
}
253267

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ default Set<String> getEffectiveNamespaces() {
125125
return ResourceConfiguration.super.getEffectiveNamespaces(getConfigurationService());
126126
}
127127

128-
// TODO configurable
129128
default String dependentFieldManager() {
130129
return "controller";
131130
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class ControllerConfigurationOverrider<R extends HasMetadata> {
3939
private Map<DependentResourceSpec, Object> configurations;
4040
private ItemStore<R> itemStore;
4141
private String name;
42+
private String dependentFieldManager;
4243

4344
private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
4445
this.finalizer = original.getFinalizerName();
@@ -54,6 +55,7 @@ private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
5455
this.original = original;
5556
this.rateLimiter = original.getRateLimiter();
5657
this.name = original.getName();
58+
this.dependentFieldManager = original.dependentFieldManager();
5759
}
5860

5961
public ControllerConfigurationOverrider<R> withFinalizer(String finalizer) {
@@ -168,6 +170,12 @@ public ControllerConfigurationOverrider<R> withName(String name) {
168170
return this;
169171
}
170172

173+
public ControllerConfigurationOverrider<R> withDependentFieldManager(
174+
String dependentFieldManager) {
175+
this.dependentFieldManager = dependentFieldManager;
176+
return this;
177+
}
178+
171179
public ControllerConfigurationOverrider<R> replacingNamedDependentResourceConfig(String name,
172180
Object dependentResourceConfig) {
173181

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ protected R handleUpdate(R actual, R desired, P primary, Context<P> context) {
136136
@SuppressWarnings("unused")
137137
public R create(R target, P primary, Context<P> context) {
138138
if (context.getControllerConfiguration().getConfigurationService()
139-
.useLegacyCreateUpdateAndMatchingOnDependentResources()) {
139+
.legacyCreateUpdateAndMatchingForDependentResources()) {
140140
return prepare(target, primary, "Creating").create();
141141
} else {
142142
return prepare(target, primary, "Creating").patch(getSSAPatchContext(context));
@@ -145,7 +145,7 @@ public R create(R target, P primary, Context<P> context) {
145145

146146
public R update(R actual, R target, P primary, Context<P> context) {
147147
if (context.getControllerConfiguration().getConfigurationService()
148-
.useLegacyCreateUpdateAndMatchingOnDependentResources()) {
148+
.legacyCreateUpdateAndMatchingForDependentResources()) {
149149
var updatedActual = processor.replaceSpecOnActual(actual, target, context);
150150
return prepare(updatedActual, primary, "Updating").replace();
151151
} else {
@@ -155,7 +155,7 @@ public R update(R actual, R target, P primary, Context<P> context) {
155155

156156
public Result<R> match(R actualResource, P primary, Context<P> context) {
157157
if (context.getControllerConfiguration().getConfigurationService()
158-
.useLegacyCreateUpdateAndMatchingOnDependentResources()) {
158+
.legacyCreateUpdateAndMatchingForDependentResources()) {
159159
return GenericKubernetesResourceMatcher.match(this, actualResource, primary, context, false);
160160
} else {
161161
final var desired = desired(primary, context);

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcher.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ public boolean matches(R actual, R desired, Context<?> context) {
6262
managedFieldsEntry.getFieldsV1().getAdditionalProperties(), objectMapper);
6363
removeIrrelevantValues(desiredMap);
6464

65-
// todo, just copy all the fields?
6665
// this is kind strange fix for:
6766
// https://kubernetes.slack.com/archives/C0EG7JC6T/p1685706853248489
6867
removeOwnerRefernces(desiredMap);

0 commit comments

Comments
 (0)