From da3fca4395ecb7f76d4656a9a121393503ebc10c Mon Sep 17 00:00:00 2001 From: Katerina Odabasi Date: Thu, 2 Apr 2026 10:26:56 +0200 Subject: [PATCH 1/2] Endpoints write permissions removed in OCP 4.21 --- .../java/cz/xtf/core/openshift/OpenShift.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/cz/xtf/core/openshift/OpenShift.java b/core/src/main/java/cz/xtf/core/openshift/OpenShift.java index 321c7ca8..551621e8 100644 --- a/core/src/main/java/cz/xtf/core/openshift/OpenShift.java +++ b/core/src/main/java/cz/xtf/core/openshift/OpenShift.java @@ -558,7 +558,7 @@ public Pod getAnyPod(String key, String value) { /** * Returns random pod with specified labels - * + * * @param labels labels to be used for filtering * @return random pod with specified labels * @throws RuntimeException if no pod is found @@ -673,6 +673,14 @@ public boolean deleteService(Service service) { } // Endpoints + /** + * Needs a role with write permissions see + * Endpoint write + * access + * + * @param endpoint + * @return Endpoints created + */ public Endpoints createEndpoint(Endpoints endpoint) { return endpoints().resource(endpoint).create(); } @@ -685,6 +693,14 @@ public List getEndpoints() { return endpoints().list().getItems(); } + /** + * Needs a role with write permissions see + * Endpoint write + * access + * + * @param endpoint + * @return True if Endpoint was deleted + */ public boolean deleteEndpoint(Endpoints endpoint) { return !endpoints().resource(endpoint).delete().isEmpty(); } @@ -1314,7 +1330,6 @@ public Waiter clean() { replicationControllers().withLabelNotIn(KEEP_LABEL, "", "true").delete(); buildConfigs().withLabelNotIn(KEEP_LABEL, "", "true").delete(); imageStreams().withLabelNotIn(KEEP_LABEL, "", "true").delete(); - endpoints().withLabelNotIn(KEEP_LABEL, "", "true").delete(); services().withLabelNotIn(KEEP_LABEL, "", "true").delete(); builds().withLabelNotIn(KEEP_LABEL, "", "true").delete(); routes().withLabelNotIn(KEEP_LABEL, "", "true").delete(); @@ -1350,7 +1365,6 @@ List listRemovableResources() { removables.addAll(replicationControllers().withLabelNotIn(OpenShift.KEEP_LABEL, "", "true").list().getItems()); removables.addAll(buildConfigs().withLabelNotIn(OpenShift.KEEP_LABEL, "", "true").list().getItems()); removables.addAll(imageStreams().withLabelNotIn(OpenShift.KEEP_LABEL, "", "true").list().getItems()); - removables.addAll(endpoints().withLabelNotIn(OpenShift.KEEP_LABEL, "", "true").list().getItems()); removables.addAll(services().withLabelNotIn(OpenShift.KEEP_LABEL, "", "true").list().getItems()); removables.addAll(builds().withLabelNotIn(OpenShift.KEEP_LABEL, "", "true").list().getItems()); removables.addAll(routes().withLabelNotIn(OpenShift.KEEP_LABEL, "", "true").list().getItems()); From 7c7c8d80c3587d2823a7fbfb1aab8eab9cf045ee Mon Sep 17 00:00:00 2001 From: Katerina Odabasi Date: Thu, 2 Apr 2026 10:44:50 +0200 Subject: [PATCH 2/2] Deprecation of EndpointBuilder --- .../main/java/cz/xtf/builder/OpenShiftApplication.java | 3 --- .../java/cz/xtf/builder/builders/EndpointBuilder.java | 8 ++++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/builder/src/main/java/cz/xtf/builder/OpenShiftApplication.java b/builder/src/main/java/cz/xtf/builder/OpenShiftApplication.java index 84c08849..a48babc2 100644 --- a/builder/src/main/java/cz/xtf/builder/OpenShiftApplication.java +++ b/builder/src/main/java/cz/xtf/builder/OpenShiftApplication.java @@ -11,7 +11,6 @@ import cz.xtf.core.openshift.OpenShifts; import cz.xtf.core.waiting.failfast.FailFastCheck; import io.fabric8.kubernetes.api.model.ConfigMap; -import io.fabric8.kubernetes.api.model.Endpoints; import io.fabric8.kubernetes.api.model.PersistentVolumeClaim; import io.fabric8.kubernetes.api.model.Secret; import io.fabric8.kubernetes.api.model.Service; @@ -37,7 +36,6 @@ public class OpenShiftApplication { private List persistentVolumeClaims = new LinkedList<>(); private List deploymentConfigs = new LinkedList<>(); private List services = new LinkedList<>(); - private List endpoints = new LinkedList<>(); private List routes = new LinkedList<>(); private List configMaps = new LinkedList<>(); private List autoScalers = new LinkedList<>(); @@ -120,7 +118,6 @@ private void createResources() { .filter(x -> !x.getMetadata().getLabels().containsKey(DeploymentConfigBuilder.SYNCHRONOUS_LABEL)) .map(openShift::createDeploymentConfig).collect(Collectors.toList()); deploymentConfigs.addAll(syncDeployments); - endpoints = endpoints.stream().map(openShift::createEndpoint).collect(Collectors.toList()); routes = routes.stream().map(openShift::createRoute).collect(Collectors.toList()); configMaps = configMaps.stream().map(openShift::createConfigMap).collect(Collectors.toList()); autoScalers = autoScalers.stream().map(openShift::createHorizontalPodAutoscaler).collect(Collectors.toList()); diff --git a/builder/src/main/java/cz/xtf/builder/builders/EndpointBuilder.java b/builder/src/main/java/cz/xtf/builder/builders/EndpointBuilder.java index 0ed830c7..05a8c185 100644 --- a/builder/src/main/java/cz/xtf/builder/builders/EndpointBuilder.java +++ b/builder/src/main/java/cz/xtf/builder/builders/EndpointBuilder.java @@ -12,6 +12,14 @@ import lombok.AllArgsConstructor; import lombok.Getter; +/** + * @deprecated since v1.1. This class is scheduled for removal in v2.0 + * Endpoints were deprecated in Kubernetes v1.33. + *

+ * Use {@link io.fabric8.kubernetes.api.model.discovery.v1.EndpointSlice} + * @see Write access for + * endpoints + */ public class EndpointBuilder extends AbstractBuilder { private final List endpointIPs = new ArrayList<>(); private final List ports = new ArrayList<>();