diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/EndpointSliceResourceUpdateMatcher.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/EndpointSliceResourceUpdateMatcher.java new file mode 100644 index 0000000000..dc83c86dbf --- /dev/null +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/EndpointSliceResourceUpdateMatcher.java @@ -0,0 +1,25 @@ +package io.javaoperatorsdk.operator.processing.dependent.kubernetes.updatermatcher; + +import java.util.Objects; + +import io.fabric8.kubernetes.api.model.discovery.v1.EndpointSlice; +import io.javaoperatorsdk.operator.api.reconciler.Context; + +public class EndpointSliceResourceUpdateMatcher + extends GenericResourceUpdaterMatcher { + + @Override + protected void updateClonedActual(EndpointSlice actual, EndpointSlice desired) { + actual.setEndpoints(desired.getEndpoints()); + actual.setAddressType(desired.getAddressType()); + actual.setPorts(desired.getPorts()); + } + + @Override + public boolean matches(EndpointSlice actual, EndpointSlice desired, Context context) { + return Objects.equals(actual.getEndpoints(), desired.getEndpoints()) && + Objects.equals(actual.getAddressType(), desired.getAddressType()) && + Objects.equals(actual.getPorts(), desired.getPorts()); + } + +} diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/EndpointsResourceUpdaterMatcher.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/EndpointsResourceUpdaterMatcher.java new file mode 100644 index 0000000000..3dcfabde28 --- /dev/null +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/EndpointsResourceUpdaterMatcher.java @@ -0,0 +1,20 @@ +package io.javaoperatorsdk.operator.processing.dependent.kubernetes.updatermatcher; + +import java.util.Objects; + +import io.fabric8.kubernetes.api.model.Endpoints; +import io.javaoperatorsdk.operator.api.reconciler.Context; + +public class EndpointsResourceUpdaterMatcher extends GenericResourceUpdaterMatcher { + + @Override + protected void updateClonedActual(Endpoints actual, Endpoints desired) { + actual.setSubsets(desired.getSubsets()); + } + + @Override + public boolean matches(Endpoints actual, Endpoints desired, Context context) { + return Objects.equals(actual.getSubsets(), desired.getSubsets()); + } + +} diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/GenericResourceUpdaterMatcher.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/GenericResourceUpdaterMatcher.java index 3a293f0513..cd9fbe2b16 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/GenericResourceUpdaterMatcher.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/updatermatcher/GenericResourceUpdaterMatcher.java @@ -2,10 +2,8 @@ import java.util.Map; -import io.fabric8.kubernetes.api.model.ConfigMap; -import io.fabric8.kubernetes.api.model.HasMetadata; -import io.fabric8.kubernetes.api.model.Secret; -import io.fabric8.kubernetes.api.model.ServiceAccount; +import io.fabric8.kubernetes.api.model.*; +import io.fabric8.kubernetes.api.model.discovery.v1.EndpointSlice; import io.fabric8.kubernetes.api.model.rbac.ClusterRole; import io.fabric8.kubernetes.api.model.rbac.ClusterRoleBinding; import io.fabric8.kubernetes.api.model.rbac.Role; @@ -28,7 +26,9 @@ ServiceAccount.class, new ServiceAccountResourceUpdaterMatcher(), Role.class, new RoleResourceUpdaterMatcher(), ClusterRole.class, new ClusterRoleResourceUpdaterMatcher(), RoleBinding.class, new RoleBindingResourceUpdaterMatcher(), - ClusterRoleBinding.class, new ClusterRoleBindingResourceUpdaterMatcher()); + ClusterRoleBinding.class, new ClusterRoleBindingResourceUpdaterMatcher(), + Endpoints.class, new EndpointsResourceUpdaterMatcher(), + EndpointSlice.class, new EndpointSliceResourceUpdateMatcher()); protected GenericResourceUpdaterMatcher() {}