diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResource.java index 5912a0f75c..a86b6ee0e8 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResource.java @@ -41,14 +41,16 @@ public interface BulkDependentResource Map getSecondaryResources(P primary, Context

context); /** - * Used to delete resource if the desired count is lower than the actual count of a resource. + * Deletes the actual resource identified by the specified key if it's not in the set of desired + * secondary resources for the specified primary. * - * @param primary resource - * @param resource actual resource from the cache for the index + * @param primary the primary resource for which we want to remove now undesired secondary + * resources still present on the cluster + * @param resource the actual resource existing on the cluster that needs to be removed * @param key key of the resource * @param context actual context */ - void deleteBulkResource(P primary, R resource, String key, Context

context); + void deleteTargetResource(P primary, R resource, String key, Context

context); /** * Determines whether the specified secondary resource matches the desired state with target index diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResourceReconciler.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResourceReconciler.java index d0e3128983..c6633f9db6 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResourceReconciler.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResourceReconciler.java @@ -28,7 +28,7 @@ public ReconcileResult reconcile(P primary, Context

context) { Map actualResources = bulkDependentResource.getSecondaryResources(primary, context); // remove existing resources that are not needed anymore according to the primary state - deleteBulkResourcesIfRequired(desiredResources.keySet(), actualResources, primary, context); + deleteExtraResources(desiredResources.keySet(), actualResources, primary, context); final List> results = new ArrayList<>(desiredResources.size()); final var updatable = bulkDependentResource instanceof Updater; @@ -45,14 +45,14 @@ public ReconcileResult reconcile(P primary, Context

context) { @Override public void delete(P primary, Context

context) { var actualResources = bulkDependentResource.getSecondaryResources(primary, context); - deleteBulkResourcesIfRequired(Collections.emptySet(), actualResources, primary, context); + deleteExtraResources(Collections.emptySet(), actualResources, primary, context); } - private void deleteBulkResourcesIfRequired(Set expectedKeys, + private void deleteExtraResources(Set expectedKeys, Map actualResources, P primary, Context

context) { actualResources.forEach((key, value) -> { if (!expectedKeys.contains(key)) { - bulkDependentResource.deleteBulkResource(primary, value, key, context); + bulkDependentResource.deleteTargetResource(primary, value, key, context); } }); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkResourceDiscriminatorFactory.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkResourceDiscriminatorFactory.java deleted file mode 100644 index 8b9b6e968d..0000000000 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkResourceDiscriminatorFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.javaoperatorsdk.operator.processing.dependent; - -import io.fabric8.kubernetes.api.model.HasMetadata; -import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator; - -public interface BulkResourceDiscriminatorFactory { - - ResourceDiscriminator createResourceDiscriminator(int index); - -} diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkUpdater.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkUpdater.java index ee8f08a68d..26e8a158a4 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkUpdater.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkUpdater.java @@ -4,8 +4,8 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; /** - * Helper for the Bulk Dependent Resources to make it more explicit that bulk needs to only - * implement the index aware match method. + * Helper for the buld Dependent Resources to make it more explicit that such dependents only to + * implement {@link BulkDependentResource#match(Object,Object,HasMetadata,Context)} * * @param secondary resource type * @param

primary resource type diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java index 8674da97d2..070c8f8ffe 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java @@ -150,7 +150,7 @@ protected void handleDelete(P primary, Context

context) { } @SuppressWarnings("unused") - public void deleteBulkResource(P primary, R resource, String key, Context

context) { + public void deleteTargetResource(P primary, R resource, String key, Context

context) { client.resource(resource).delete(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/external/ExternalBulkDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/external/ExternalBulkDependentResource.java index ec8161bae8..afad17b1d9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/external/ExternalBulkDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/external/ExternalBulkDependentResource.java @@ -86,7 +86,8 @@ public Map getSecondaryResources( } @Override - public void deleteBulkResource(BulkDependentTestCustomResource primary, ExternalResource resource, + public void deleteTargetResource(BulkDependentTestCustomResource primary, + ExternalResource resource, String key, Context context) { externalServiceMock.delete(resource.getId());