Skip to content

Commit 38d3e30

Browse files
committed
wip
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 4ca892c commit 38d3e30

File tree

6 files changed

+54
-14
lines changed

6 files changed

+54
-14
lines changed

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ public class GlueOperatorSpec extends GlueSpec {
1212

1313
private GlueMetadata glueMetadata;
1414

15-
1615
public Parent getParent() {
1716
return parent;
1817
}

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

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22

33
import java.util.Objects;
44

5+
import io.fabric8.crd.generator.annotation.PreserveUnknownFields;
6+
57
public class Parent {
68

79
private String apiVersion;
810
private String kind;
911
private boolean clusterScoped = false;
1012
private String labelSelector;
1113

14+
@PreserveUnknownFields
15+
private Object status;
16+
private String statusTemplate;
1217

1318
public Parent() {}
1419

@@ -51,6 +56,22 @@ public void setClusterScoped(boolean clusterScoped) {
5156
this.clusterScoped = clusterScoped;
5257
}
5358

59+
public Object getStatus() {
60+
return status;
61+
}
62+
63+
public void setStatus(Object status) {
64+
this.status = status;
65+
}
66+
67+
public String getStatusTemplate() {
68+
return statusTemplate;
69+
}
70+
71+
public void setStatusTemplate(String statusTemplate) {
72+
this.statusTemplate = statusTemplate;
73+
}
74+
5475
@Override
5576
public boolean equals(Object o) {
5677
if (this == o)
@@ -59,11 +80,13 @@ public boolean equals(Object o) {
5980
return false;
6081
Parent parent = (Parent) o;
6182
return clusterScoped == parent.clusterScoped && Objects.equals(apiVersion, parent.apiVersion)
62-
&& Objects.equals(kind, parent.kind) && Objects.equals(labelSelector, parent.labelSelector);
83+
&& Objects.equals(kind, parent.kind) && Objects.equals(labelSelector, parent.labelSelector)
84+
&& Objects.equals(status, parent.status)
85+
&& Objects.equals(statusTemplate, parent.statusTemplate);
6386
}
6487

6588
@Override
6689
public int hashCode() {
67-
return Objects.hash(apiVersion, kind, clusterScoped, labelSelector);
90+
return Objects.hash(apiVersion, kind, clusterScoped, labelSelector, status, statusTemplate);
6891
}
6992
}

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

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import io.javaoperatorsdk.operator.glue.customresource.glue.RelatedResourceSpec;
2020
import io.javaoperatorsdk.operator.glue.customresource.operator.GlueOperator;
2121
import io.javaoperatorsdk.operator.glue.customresource.operator.GlueOperatorSpec;
22+
import io.javaoperatorsdk.operator.glue.customresource.operator.Parent;
2223
import io.javaoperatorsdk.operator.glue.customresource.operator.ResourceFlowOperatorStatus;
2324
import io.javaoperatorsdk.operator.glue.reconciler.ValidationAndErrorHandler;
2425
import io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler;
@@ -103,7 +104,6 @@ private Glue createGlue(GenericKubernetesResource targetParentResource,
103104

104105
ObjectMeta glueMetadata = glueMetadata(glueOperator, targetParentResource);
105106

106-
107107
glue.setMetadata(glueMetadata);
108108
glue.setSpec(toWorkflowSpec(glueOperator.getSpec()));
109109

@@ -112,17 +112,27 @@ private Glue createGlue(GenericKubernetesResource targetParentResource,
112112
}
113113

114114
var parent = glueOperator.getSpec().getParent();
115+
RelatedResourceSpec parentRelatedSpec =
116+
parentRelatedResourceSpec(targetParentResource, glueOperator, parent);
117+
118+
glue.getSpec().getRelatedResources().add(parentRelatedSpec);
119+
glue.addOwnerReference(targetParentResource);
120+
return glue;
121+
}
122+
123+
private static RelatedResourceSpec parentRelatedResourceSpec(
124+
GenericKubernetesResource targetParentResource, GlueOperator glueOperator, Parent parent) {
115125
RelatedResourceSpec parentRelatedSpec = new RelatedResourceSpec();
116126
parentRelatedSpec.setName(PARENT_RELATED_RESOURCE_NAME);
117127
parentRelatedSpec.setApiVersion(parent.getApiVersion());
118128
parentRelatedSpec.setKind(parent.getKind());
119129
parentRelatedSpec.setResourceNames(List.of(targetParentResource.getMetadata().getName()));
120130
parentRelatedSpec.setNamespace(targetParentResource.getMetadata().getNamespace());
121131
parentRelatedSpec.setClusterScoped(glueOperator.getSpec().getParent().isClusterScoped());
122-
123-
glue.getSpec().getRelatedResources().add(parentRelatedSpec);
124-
glue.addOwnerReference(targetParentResource);
125-
return glue;
132+
parentRelatedSpec
133+
.setStatusPatchTemplate(glueOperator.getSpec().getParent().getStatusTemplate());
134+
parentRelatedSpec.setStatusPatch(glueOperator.getSpec().getParent().getStatus());
135+
return parentRelatedSpec;
126136
}
127137

128138
private ObjectMeta glueMetadata(GlueOperator glueOperator,

src/test/java/io/javaoperatorsdk/operator/glue/sample/webpage/WebPageE2E.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ void testWebPageCRUDOperations() {
6262
client.resource(createdWebPage).delete();
6363

6464
await().timeout(TestUtils.GC_WAIT_TIMEOUT).untilAsserted(() -> {
65+
var wp = client.resources(WebPage.class).withName("webpage1").get();
6566
var deployment =
6667
client.resources(Deployment.class).withName(webPage.getMetadata().getName()).get();
6768
var configMap =
@@ -73,6 +74,7 @@ void testWebPageCRUDOperations() {
7374
assertThat(configMap).isNull();
7475
assertThat(service).isNull();
7576
assertThat(ingress).isNull();
77+
assertThat(wp.getStatus().getObservedGeneration()).isNotNull();
7678
});
7779
}
7880

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package io.javaoperatorsdk.operator.glue.sample.webpage;
22

3-
import com.fasterxml.jackson.annotation.JsonInclude;
4-
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
5-
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
63

7-
@JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
8-
@JsonPropertyOrder({})
9-
@JsonDeserialize(using = com.fasterxml.jackson.databind.JsonDeserializer.None.class)
104
public class WebPageStatus {
5+
6+
private Long observedGeneration;
7+
8+
public Long getObservedGeneration() {
9+
return observedGeneration;
10+
}
11+
12+
public void setObservedGeneration(Long observedGeneration) {
13+
this.observedGeneration = observedGeneration;
14+
}
1115
}

src/test/resources/sample/webpage/webpage.operator.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ spec:
66
parent:
77
apiVersion: glueoperator.sample/v1
88
kind: WebPage
9+
status:
10+
observedGeneration: "{parent.metadata.generation}"
911
childResources:
1012
- name: htmlconfigmap
1113
resource:

0 commit comments

Comments
 (0)