From fe186f0b551eec9d173c5e1609945322c18be384 Mon Sep 17 00:00:00 2001 From: csviri Date: Thu, 14 Jul 2022 14:40:03 +0200 Subject: [PATCH 1/2] docs: javadoc for garbage collected interface --- .../dependent/GarbageCollected.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java index 1316c44873..97bbebcbdb 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java @@ -3,13 +3,24 @@ import io.fabric8.kubernetes.api.model.HasMetadata; /** - * Should be implemented by {@link DependentResource} implementations that are explicitly deleted - * during reconciliation but which should also benefit from Kubernetes' automated garbage collection - * during the cleanup phase. + *

+ * Can be implemented by a dependent resource extending + * {@link io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource} + * to express that the resource deletion is handled by the controller during "reconcile". So in a + * workflow during "reconcile" (not during cleanup) when a "reconcilePrecondition" is not met for + * the resource or a resource on which the actual resource depends on is not ready + * (readyPostCondition not met) delete is called. During the cleanup however rather than calling + * explicitly delete Kubernetes garbage collector should clean up the resource (using owner + * references). + *

+ *

+ * If a dependent resource implement this interface an owner reference is automatically added to the + * managed resource. + *

*

* See this issue * for more details. + *

*/ public interface GarbageCollected

extends Deleter

{ - } From f65e1ed3ffd2189ece7e06e649f7148d8e6424ef Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Thu, 14 Jul 2022 18:58:01 +0200 Subject: [PATCH 2/2] docs: minor rewording --- .../dependent/GarbageCollected.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java index 97bbebcbdb..028ec68894 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java @@ -1,21 +1,24 @@ package io.javaoperatorsdk.operator.api.reconciler.dependent; import io.fabric8.kubernetes.api.model.HasMetadata; +import io.javaoperatorsdk.operator.api.reconciler.Context; /** *

* Can be implemented by a dependent resource extending * {@link io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource} - * to express that the resource deletion is handled by the controller during "reconcile". So in a - * workflow during "reconcile" (not during cleanup) when a "reconcilePrecondition" is not met for - * the resource or a resource on which the actual resource depends on is not ready - * (readyPostCondition not met) delete is called. During the cleanup however rather than calling - * explicitly delete Kubernetes garbage collector should clean up the resource (using owner - * references). + * to express that the resource deletion is handled by the controller during + * {@link DependentResource#reconcile(HasMetadata, Context)}. This takes effect during a + * reconciliation workflow, but not during a cleanup workflow, when a {@code reconcilePrecondition} + * is not met for the resource or a resource on which the the dependent that implements this + * interface depends on is not ready ({@code readyPostCondition} not met). In this case, + * {@link #delete(HasMetadata, Context)} is called. During a cleanup workflow, however, + * {@link #delete(HasMetadata, Context)} is not called, letting the Kubernetes garbage collector do + * its work instead (using owner references). *

*

- * If a dependent resource implement this interface an owner reference is automatically added to the - * managed resource. + * If a dependent resource implement this interface, an owner reference pointing to the associated + * primary resource will be automatically added to this managed resource. *

*

* See this issue