Skip to content

Commit 31e82ec

Browse files
committed
Enhance MultiOwnerDependentTriggeringIT
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent a01f471 commit 31e82ec

File tree

3 files changed

+40
-5
lines changed

3 files changed

+40
-5
lines changed

operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultiOwnerDependentTriggeringIT.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void multiOwnerTriggeringAndManagement() {
7070
});
7171

7272
res1.getSpec().setValue(NEW_VALUE_1);
73-
extension.replace(res1);
73+
res1 = extension.replace(res1);
7474

7575
await()
7676
.untilAsserted(
@@ -85,7 +85,7 @@ void multiOwnerTriggeringAndManagement() {
8585
});
8686

8787
res2.getSpec().setValue(NEW_VALUE_2);
88-
extension.replace(res2);
88+
res2 = extension.replace(res2);
8989

9090
await()
9191
.untilAsserted(
@@ -95,6 +95,26 @@ void multiOwnerTriggeringAndManagement() {
9595
assertThat(cm.getData()).containsEntry(NEW_VALUE_2, NEW_VALUE_2);
9696
assertThat(cm.getMetadata().getOwnerReferences()).hasSize(2);
9797
});
98+
99+
res1.getMetadata().setResourceVersion(null); // delete without optimistic locking
100+
extension.delete(res1);
101+
await()
102+
.untilAsserted(
103+
() -> {
104+
var cm =
105+
extension.get(ConfigMap.class, MultipleOwnerDependentConfigMap.RESOURCE_NAME);
106+
assertThat(cm.getMetadata().getOwnerReferences()).hasSize(1);
107+
});
108+
109+
extension.delete(res2);
110+
res2.getMetadata().setResourceVersion(null); // delete without optimistic locking
111+
await()
112+
.untilAsserted(
113+
() -> {
114+
var cm =
115+
extension.get(ConfigMap.class, MultipleOwnerDependentConfigMap.RESOURCE_NAME);
116+
assertThat(cm).isNull();
117+
});
98118
}
99119

100120
MultipleOwnerDependentCustomResource testResource(String name, String value) {

operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentConfigMap.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@
2323
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
2424
import io.javaoperatorsdk.operator.api.reconciler.Context;
2525
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.BooleanWithUndefined;
26-
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
26+
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDNoGCKubernetesDependentResource;
2727
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
2828
import io.javaoperatorsdk.operator.processing.event.ResourceID;
2929
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
3030

3131
@KubernetesDependent(useSSA = BooleanWithUndefined.TRUE)
3232
public class MultipleOwnerDependentConfigMap
33-
extends CRUDKubernetesDependentResource<ConfigMap, MultipleOwnerDependentCustomResource> {
33+
extends CRUDNoGCKubernetesDependentResource<ConfigMap, MultipleOwnerDependentCustomResource> {
3434

3535
public static final String RESOURCE_NAME = "test1";
3636

@@ -64,4 +64,19 @@ public Optional<ConfigMap> getSecondaryResource(
6464
context.eventSourceRetriever().getEventSourceFor(ConfigMap.class);
6565
return ies.get(new ResourceID(RESOURCE_NAME, primary.getMetadata().getNamespace()));
6666
}
67+
68+
// todo custom owner labels
69+
70+
@Override
71+
protected void handleDelete(
72+
MultipleOwnerDependentCustomResource primary,
73+
ConfigMap secondary,
74+
Context<MultipleOwnerDependentCustomResource> context) {
75+
if (primary.getMetadata().getOwnerReferences().size() > 1) {
76+
secondary.getData().remove(primary.getSpec().getValue());
77+
context.getClient().resource(secondary).serverSideApply();
78+
} else {
79+
super.handleDelete(primary, secondary, context);
80+
}
81+
}
6782
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
2323

2424
@Workflow(dependents = {@Dependent(type = MultipleOwnerDependentConfigMap.class)})
25-
@ControllerConfiguration()
25+
@ControllerConfiguration
2626
public class MultipleOwnerDependentReconciler
2727
implements Reconciler<MultipleOwnerDependentCustomResource>, TestExecutionInfoProvider {
2828

0 commit comments

Comments
 (0)