@@ -444,30 +444,35 @@ default Set<Class<? extends HasMetadata>> defaultNonSSAResource() {
444444 *
445445 * @return if special annotation should be used for dependent resource to filter events
446446 * @since 4.5.0
447- * @return if special annotation should be used for dependent resource to filter events
448447 */
449448 default boolean previousAnnotationForDependentResourcesEventFiltering () {
450449 return true ;
451450 }
452451
453452 /**
454- * For dependent resources framework can add an annotation to filter our events that are results
455- * of changes made by the framework. There are, however, few resources that do not follow the K8S
456- * API convention that changes in metadata do not increase the "metadata.generation". For these
457- * resources, the generation is increased by adding the annotation and their controller increases
458- * the observedGeneration in the status. This results in a new event, that if not handled
459- * correctly with the resource matcher yet again results in an update and a previous version
460- * annotation change, thus results in an infinite loop.
453+ * For dependent resources, the framework can add an annotation to filter out events resulting
454+ * directly from the framework's operation. There are, however, some resources that do not follow
455+ * the Kubernetes API conventions that changes in metadata should not increase the generation of
456+ * the resource (as recorded in the {@code generation} field of the resource's {@code metadata}).
457+ * For these resources, this convention is not respected and results in a new event for the
458+ * framework to process. If that particular case is not handled correctly in the resource matcher,
459+ * the framework will consider that the resource doesn't match the desired state and therefore
460+ * triggers an update, which in turn, will re-add the annotation, thus starting the loop again,
461+ * infinitely.
461462 *
462463 * <p>As a workaround, we automatically skip adding previous annotation for those well-known
463- * resources. Note that if you are sure that the matcher works (most of the cases does) for your
464- * case, you can remove the resource from the blocklist.
464+ * resources. Note that if you are sure that the matcher works for your use case, and it should in
465+ * most instances, you can remove the resource type from the blocklist.
466+ *
467+ * <p>The consequence of adding a resource type to the set is that the framework will not use
468+ * event filtering to prevent events, initiated by changes made by the framework itself as a
469+ * result of its processing of dependent resources, to trigger the associated reconciler again.
465470 *
466- * <p>The consequence of adding a resource type to this list is that it will not use event
467- * filtering in dependent resources, so will process also events which are results from updates of
468- * the dependent.
471+ * <p>Note that this method only takes effect if annotating dependent resources to prevent
472+ * dependent resources events from triggering the associated reconciler again is activated as
473+ * controlled by {@link #previousAnnotationForDependentResourcesEventFiltering()}
469474 *
470- * @return blocklist of resource classes where the previous version annotation won't be used.
475+ * @return a Set of resource classes where the previous version annotation won't be used.
471476 */
472477 default Set <Class <? extends HasMetadata >> previousAnnotationUsageBlocklist () {
473478 return Set .of (Deployment .class , StatefulSet .class );
0 commit comments