Skip to content

Commit a7b7659

Browse files
Address comments from Lukas
Signed-off-by: OwenCorrigan76 <[email protected]>
1 parent f418776 commit a7b7659

File tree

6 files changed

+36
-13
lines changed

6 files changed

+36
-13
lines changed

api/src/main/java/io/strimzi/kafka/access/model/KafkaAccessStatus.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
public class KafkaAccessStatus {
2323

2424
private BindingStatus binding;
25+
private Long observedGeneration;
2526
private final List<Condition> conditions = new ArrayList<>();
2627

2728
/**
@@ -76,4 +77,30 @@ public void setReadyCondition(final boolean ready, final String message, final S
7677
StatusUtils.buildReadyCondition(ready, reason, message)
7778
);
7879
}
80+
81+
/**
82+
* Gets the observed generation of the KafkaAccess resource.
83+
*
84+
* @return The observed generation.
85+
*/
86+
public Long getObservedGeneration() {
87+
return observedGeneration;
88+
}
89+
90+
/**
91+
* Sets the observed generation of the KafkaAccess resource.
92+
*
93+
* <p>
94+
* The **observed generation** is a key field in a Kubernetes resource's status.
95+
* It is used by the controller to track the {@link io.fabric8.kubernetes.api.model.ObjectMeta#getGeneration() metadata.generation}
96+
* of the resource that has been successfully reconciled. By setting this field,
97+
* the controller signals that the reported status accurately reflects the state
98+
* of the corresponding resource specification.
99+
* </p>
100+
*
101+
* @param observedGeneration The generation number of the processed resource specification.
102+
*/
103+
public void setObservedGeneration(Long observedGeneration) {
104+
this.observedGeneration = observedGeneration;
105+
}
79106
}

operator/src/main/java/io/strimzi/kafka/access/KafkaAccessReconciler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ public UpdateControl<KafkaAccess> reconcile(final KafkaAccess kafkaAccess, final
9797

9898
kafkaAccessStatus.setBinding(new BindingStatus(secretName));
9999
kafkaAccessStatus.setReadyCondition(true, "Ready", "Ready");
100+
// replaces using the old ObservedGenerationAwareStatus method
101+
kafkaAccessStatus.setObservedGeneration(kafkaAccess.getMetadata().getGeneration());
100102

101103
return UpdateControl.patchStatus(kafkaAccess);
102104
}

operator/src/test/java/io/strimzi/kafka/access/KafkaAccessReconcilerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public class KafkaAccessReconcilerTest {
7272
@BeforeEach
7373
void beforeEach() {
7474
operator = new Operator(overrider -> overrider.withKubernetesClient(client)
75-
.withUseSSAToPatchPrimaryResource(false));
75+
.withUseSSAToPatchPrimaryResource(false)); // Motivation: mock Kubernetes client doesn't fully support some SSA features.
7676
operator.register(new KafkaAccessReconciler(operator.getKubernetesClient()));
7777
operator.start();
7878
}

operator/src/test/java/io/strimzi/kafka/access/SecretDependentResourceTest.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package io.strimzi.kafka.access;
66

77
import io.fabric8.kubernetes.api.model.Secret;
8-
import io.fabric8.kubernetes.api.model.SecretBuilder;
98
import io.javaoperatorsdk.operator.api.reconciler.Context;
109
import io.javaoperatorsdk.operator.processing.event.EventSourceRetriever;
1110
import io.javaoperatorsdk.operator.processing.event.ResourceID;
@@ -86,17 +85,8 @@ void testSecretDataWithTls() {
8685
final String cert = encodeUtf8("-----BEGIN CERTIFICATE-----\nMIIFLTCCAx\n-----END CERTIFICATE-----\n");
8786
final Map<String, String> certSecretData = new HashMap<>();
8887
certSecretData.put("ca.crt", cert);
89-
// final Secret certSecret = ResourceProvider.getStrimziSecret(KafkaResources.clusterCaCertificateSecretName(KAFKA_NAME), KAFKA_NAMESPACE, KAFKA_NAME);
90-
// certSecret.setData(certSecretData);
91-
// Use SecretBuilder to create the Secret
92-
final Secret certSecret = new SecretBuilder()
93-
.withNewMetadata()
94-
.withName(KafkaResources.clusterCaCertificateSecretName(KAFKA_NAME))
95-
.withNamespace(KAFKA_NAMESPACE)
96-
.endMetadata()
97-
.addToData(certSecretData)
98-
.build();
99-
88+
final Secret certSecret = ResourceProvider.getStrimziSecret(KafkaResources.clusterCaCertificateSecretName(KAFKA_NAME), KAFKA_NAMESPACE, KAFKA_NAME);
89+
certSecret.setData(certSecretData);
10090
final Kafka kafka = ResourceProvider.getKafka(
10191
KAFKA_NAME,
10292
KAFKA_NAMESPACE,

packaging/helm-charts/helm3/strimzi-access-operator/crds/040-Crd-kafkaaccess.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ spec:
9494
type: object
9595
x-kubernetes-preserve-unknown-fields: true
9696
type: array
97+
observedGeneration:
98+
type: integer
9799
type: object
98100
type: object
99101
served: true

packaging/install/040-Crd-kafkaaccess.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ spec:
9494
type: object
9595
x-kubernetes-preserve-unknown-fields: true
9696
type: array
97+
observedGeneration:
98+
type: integer
9799
type: object
98100
type: object
99101
served: true

0 commit comments

Comments
 (0)