Skip to content

Commit 860f116

Browse files
committed
feat: use SSA matcher flag for child resources
Signed-off-by: Attila Mészáros <[email protected]>
1 parent c4955b0 commit 860f116

File tree

4 files changed

+32
-14
lines changed

4 files changed

+32
-14
lines changed

src/main/java/io/javaoperatorsdk/operator/glue/customresource/glue/DependentResourceSpec.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ public class DependentResourceSpec {
2121

2222
private String resourceTemplate;
2323

24+
private boolean useSSAMatcher = true;
25+
2426
private List<String> dependsOn = new ArrayList<>();
2527

2628
@PreserveUnknownFields
@@ -92,15 +94,23 @@ public void setClusterScoped(boolean clusterScoped) {
9294
this.clusterScoped = clusterScoped;
9395
}
9496

97+
public boolean isUseSSAMatcher() {
98+
return useSSAMatcher;
99+
}
100+
101+
public void setUseSSAMatcher(boolean useSSAMatcher) {
102+
this.useSSAMatcher = useSSAMatcher;
103+
}
104+
95105
@Override
96106
public boolean equals(Object o) {
97107
if (this == o)
98108
return true;
99109
if (o == null || getClass() != o.getClass())
100110
return false;
101111
DependentResourceSpec that = (DependentResourceSpec) o;
102-
return clusterScoped == that.clusterScoped && Objects.equals(name, that.name)
103-
&& Objects.equals(resource, that.resource)
112+
return clusterScoped == that.clusterScoped && useSSAMatcher == that.useSSAMatcher
113+
&& Objects.equals(name, that.name) && Objects.equals(resource, that.resource)
104114
&& Objects.equals(resourceTemplate, that.resourceTemplate)
105115
&& Objects.equals(dependsOn, that.dependsOn)
106116
&& Objects.equals(readyPostCondition, that.readyPostCondition)
@@ -109,7 +119,7 @@ public boolean equals(Object o) {
109119

110120
@Override
111121
public int hashCode() {
112-
return Objects.hash(name, clusterScoped, resource, resourceTemplate, dependsOn,
122+
return Objects.hash(name, clusterScoped, resource, resourceTemplate, useSSAMatcher, dependsOn,
113123
readyPostCondition, condition);
114124
}
115125
}

src/main/java/io/javaoperatorsdk/operator/glue/dependent/GCGenericDependentResource.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ public class GCGenericDependentResource extends GenericDependentResource
1010

1111
public GCGenericDependentResource(GenericTemplateHandler genericTemplateHandler,
1212
GenericKubernetesResource desired, String name,
13-
boolean clusterScoped) {
14-
super(genericTemplateHandler, desired, name, clusterScoped);
13+
boolean clusterScoped, boolean useSSAMatcher) {
14+
super(genericTemplateHandler, desired, name, clusterScoped, useSSAMatcher);
1515
}
1616

1717
public GCGenericDependentResource(GenericTemplateHandler genericTemplateHandler,
18-
String desiredTemplate, String name, boolean clusterScoped) {
19-
super(genericTemplateHandler, desiredTemplate, name, clusterScoped);
18+
String desiredTemplate, String name, boolean clusterScoped, boolean useSSAMatcher) {
19+
super(genericTemplateHandler, desiredTemplate, name, clusterScoped, useSSAMatcher);
2020
}
2121
}

src/main/java/io/javaoperatorsdk/operator/glue/dependent/GenericDependentResource.java

+10-3
Original file line numberDiff line numberDiff line change
@@ -23,28 +23,31 @@ public class GenericDependentResource
2323
private final String desiredTemplate;
2424
private final String name;
2525
private final boolean clusterScoped;
26+
private final boolean useSSAMatcher;
2627

2728
// optimize share between instances
2829
private final GenericTemplateHandler genericTemplateHandler;
2930

3031
public GenericDependentResource(GenericTemplateHandler genericTemplateHandler,
3132
GenericKubernetesResource desired, String name,
32-
boolean clusterScoped) {
33+
boolean clusterScoped, boolean useSSAMatcher) {
3334
super(new GroupVersionKind(desired.getApiVersion(), desired.getKind()));
3435
this.desired = desired;
36+
this.useSSAMatcher = useSSAMatcher;
3537
this.desiredTemplate = null;
3638
this.name = name;
3739
this.clusterScoped = clusterScoped;
3840
this.genericTemplateHandler = genericTemplateHandler;
3941
}
4042

4143
public GenericDependentResource(GenericTemplateHandler genericTemplateHandler,
42-
String desiredTemplate, String name, boolean clusterScoped) {
44+
String desiredTemplate, String name, boolean clusterScoped, boolean useSSAMatcher) {
4345
super(new GroupVersionKind(Utils.getApiVersionFromTemplate(desiredTemplate),
4446
Utils.getKindFromTemplate(desiredTemplate)));
4547
this.genericTemplateHandler = genericTemplateHandler;
4648
this.name = name;
4749
this.desiredTemplate = desiredTemplate;
50+
this.useSSAMatcher = useSSAMatcher;
4851
this.desired = null;
4952
this.clusterScoped = clusterScoped;
5053
}
@@ -75,6 +78,10 @@ public Result<GenericKubernetesResource> match(GenericKubernetesResource actualR
7578
&& actualResource.getApiVersion().equals("apps/v1")) {
7679
return super.match(actualResource, primary, context);
7780
}
78-
return Result.nonComputed(false);
81+
if (useSSAMatcher) {
82+
return super.match(actualResource, primary, context);
83+
} else {
84+
return Result.nonComputed(false);
85+
}
7986
}
8087
}

src/main/java/io/javaoperatorsdk/operator/glue/reconciler/glue/GlueReconciler.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -211,16 +211,17 @@ private GenericDependentResource createDependentResource(DependentResourceSpec s
211211
return spec.getResourceTemplate() != null
212212
? new GCGenericDependentResource(genericTemplateHandler, spec.getResourceTemplate(),
213213
spec.getName(),
214-
spec.isClusterScoped())
214+
spec.isClusterScoped(), spec.isUseSSAMatcher())
215215
: new GCGenericDependentResource(genericTemplateHandler, spec.getResource(),
216216
spec.getName(),
217-
spec.isClusterScoped());
217+
spec.isClusterScoped(), spec.isUseSSAMatcher());
218218
} else {
219219
return spec.getResourceTemplate() != null
220220
? new GenericDependentResource(genericTemplateHandler,
221-
spec.getResourceTemplate(), spec.getName(), spec.isClusterScoped())
221+
spec.getResourceTemplate(), spec.getName(), spec.isClusterScoped(),
222+
spec.isUseSSAMatcher())
222223
: new GenericDependentResource(genericTemplateHandler,
223-
spec.getResource(), spec.getName(), spec.isClusterScoped());
224+
spec.getResource(), spec.getName(), spec.isClusterScoped(), spec.isUseSSAMatcher());
224225
}
225226
}
226227

0 commit comments

Comments
 (0)