diff --git a/infrastructures/kubernetes/pom.xml b/infrastructures/kubernetes/pom.xml
index 0645c346b2..d917ace354 100644
--- a/infrastructures/kubernetes/pom.xml
+++ b/infrastructures/kubernetes/pom.xml
@@ -93,10 +93,6 @@
io.fabric8
kubernetes-model-core
-
- io.fabric8
- kubernetes-model-extensions
-
io.fabric8
kubernetes-model-rbac
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/KubernetesInternalRuntime.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/KubernetesInternalRuntime.java
index a2610fb88a..85f6b86119 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/KubernetesInternalRuntime.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/KubernetesInternalRuntime.java
@@ -31,7 +31,7 @@ import io.fabric8.kubernetes.api.model.PodTemplateSpec;
import io.fabric8.kubernetes.api.model.Secret;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.apps.Deployment;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import io.opentracing.Scope;
import io.opentracing.Span;
import io.opentracing.Tracer;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironment.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironment.java
index e56c9590b9..fecfc20020 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironment.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironment.java
@@ -22,7 +22,7 @@ import io.fabric8.kubernetes.api.model.PodTemplateSpec;
import io.fabric8.kubernetes.api.model.Secret;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.apps.Deployment;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironmentFactory.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironmentFactory.java
index 9e815a7adb..a975ddfc40 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironmentFactory.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironmentFactory.java
@@ -23,7 +23,7 @@ import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.Secret;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.apps.Deployment;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesIngresses.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesIngresses.java
index 44d6a0f07d..261625635f 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesIngresses.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesIngresses.java
@@ -15,7 +15,7 @@ import static io.fabric8.kubernetes.api.model.DeletionPropagation.BACKGROUND;
import static org.eclipse.che.workspace.infrastructure.kubernetes.Constants.CHE_WORKSPACE_ID_LABEL;
import static org.eclipse.che.workspace.infrastructure.kubernetes.namespace.KubernetesObjectUtil.putLabel;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher;
@@ -55,7 +55,8 @@ public class KubernetesIngresses {
try {
return clientFactory
.create(workspaceId)
- .extensions()
+ .network()
+ .v1()
.ingresses()
.inNamespace(namespace)
.withName(ingress.getMetadata().getName())
@@ -69,7 +70,8 @@ public class KubernetesIngresses {
try {
return clientFactory
.create(workspaceId)
- .extensions()
+ .network()
+ .v1()
.ingresses()
.inNamespace(namespace)
.withLabel(CHE_WORKSPACE_ID_LABEL, workspaceId)
@@ -88,7 +90,8 @@ public class KubernetesIngresses {
Resource ingressResource =
clientFactory
.create(workspaceId)
- .extensions()
+ .network()
+ .v1()
.ingresses()
.inNamespace(namespace)
.withName(name);
@@ -141,7 +144,8 @@ public class KubernetesIngresses {
try {
clientFactory
.create(workspaceId)
- .extensions()
+ .network()
+ .v1()
.ingresses()
.inNamespace(namespace)
.withLabel(CHE_WORKSPACE_ID_LABEL, workspaceId)
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespace.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespace.java
index 295ca57673..19de4ac729 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespace.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespace.java
@@ -23,7 +23,7 @@ import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.Secret;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServiceAccount;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.kubernetes.client.Watch;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/IngressTlsProvisioner.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/IngressTlsProvisioner.java
index ef27b70b80..e1d8b0069f 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/IngressTlsProvisioner.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/IngressTlsProvisioner.java
@@ -16,9 +16,9 @@ import static org.eclipse.che.workspace.infrastructure.kubernetes.provision.TlsP
import io.fabric8.kubernetes.api.model.Secret;
import io.fabric8.kubernetes.api.model.SecretBuilder;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressTLS;
-import io.fabric8.kubernetes.api.model.extensions.IngressTLSBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressTLS;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressTLSBuilder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/KubernetesPreviewUrlCommandProvisioner.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/KubernetesPreviewUrlCommandProvisioner.java
index 39723507e0..f50db8beab 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/KubernetesPreviewUrlCommandProvisioner.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/KubernetesPreviewUrlCommandProvisioner.java
@@ -12,8 +12,8 @@
package org.eclipse.che.workspace.infrastructure.kubernetes.provision;
import io.fabric8.kubernetes.api.model.Service;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
import java.util.List;
import java.util.Optional;
import javax.inject.Singleton;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/PreviewUrlCommandProvisioner.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/PreviewUrlCommandProvisioner.java
index f65ea15a73..8f1ab59b52 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/PreviewUrlCommandProvisioner.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/PreviewUrlCommandProvisioner.java
@@ -17,7 +17,7 @@ import static org.eclipse.che.workspace.infrastructure.kubernetes.Warnings.NOT_A
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.Service;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/UniqueNamesProvisioner.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/UniqueNamesProvisioner.java
index a489ee9ae1..03d87a0a05 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/UniqueNamesProvisioner.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/UniqueNamesProvisioner.java
@@ -21,7 +21,7 @@ import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.Volume;
import io.fabric8.kubernetes.api.model.apps.Deployment;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/KubernetesServerExposer.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/KubernetesServerExposer.java
index 87f66b532c..7e519d03e1 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/KubernetesServerExposer.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/KubernetesServerExposer.java
@@ -24,7 +24,7 @@ import io.fabric8.kubernetes.api.model.ContainerPortBuilder;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServicePort;
import io.fabric8.kubernetes.api.model.ServicePortBuilder;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/PreviewUrlExposer.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/PreviewUrlExposer.java
index 6c83219272..aff7c12db8 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/PreviewUrlExposer.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/PreviewUrlExposer.java
@@ -19,7 +19,7 @@ import com.google.common.annotations.VisibleForTesting;
import io.fabric8.kubernetes.api.model.IntOrString;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServicePort;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/ExternalServerIngressBuilder.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/ExternalServerIngressBuilder.java
index a64fc202e8..9f1cafdd5c 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/ExternalServerIngressBuilder.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/ExternalServerIngressBuilder.java
@@ -13,19 +13,23 @@ package org.eclipse.che.workspace.infrastructure.kubernetes.server.external;
import static com.google.common.base.Strings.isNullOrEmpty;
-import io.fabric8.kubernetes.api.model.IntOrString;
+import com.google.common.annotations.VisibleForTesting;
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressPath;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressPathBuilder;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressRuleValue;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressRuleValueBuilder;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackendBuilder;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
-import io.fabric8.kubernetes.api.model.extensions.IngressRuleBuilder;
-import io.fabric8.kubernetes.api.model.extensions.IngressSpec;
-import io.fabric8.kubernetes.api.model.extensions.IngressSpecBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPath;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPathBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressRuleValue;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressRuleValueBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackendBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRuleBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressServiceBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressServiceBackendBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressSpecBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.ServiceBackendPortBuilder;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.che.api.core.model.workspace.config.ServerConfig;
@@ -43,12 +47,15 @@ public class ExternalServerIngressBuilder {
private String path;
private String name;
private String serviceName;
- private IntOrString servicePort;
+ private String servicePortName;
+ private Integer servicePort;
private Map serversConfigs;
private String machineName;
private Map annotations;
private Map labels;
+ @VisibleForTesting static final String INGRESS_PATH_TYPE = "Prefix";
+
public ExternalServerIngressBuilder withHost(String host) {
this.host = host;
return this;
@@ -74,8 +81,13 @@ public class ExternalServerIngressBuilder {
return this;
}
- public ExternalServerIngressBuilder withServicePort(String targetPortName) {
- this.servicePort = new IntOrString(targetPortName);
+ public ExternalServerIngressBuilder withServicePort(Integer targetPort) {
+ this.servicePort = targetPort;
+ return this;
+ }
+
+ public ExternalServerIngressBuilder withServicePortName(String targetPortName) {
+ this.servicePortName = targetPortName;
return this;
}
@@ -97,14 +109,26 @@ public class ExternalServerIngressBuilder {
public Ingress build() {
- IngressBackend ingressBackend =
- new IngressBackendBuilder()
- .withServiceName(serviceName)
- .withNewServicePort(servicePort.getStrVal())
+ ServiceBackendPortBuilder serviceBackendPortBuilder = new ServiceBackendPortBuilder();
+
+ // cannot set both port and name
+ if (!isNullOrEmpty(servicePortName)) {
+ serviceBackendPortBuilder.withName(servicePortName);
+ } else if (servicePort != null) {
+ serviceBackendPortBuilder.withNumber(servicePort);
+ }
+
+ IngressServiceBackend ingressServiceBackend =
+ new IngressServiceBackendBuilder()
+ .withPort(serviceBackendPortBuilder.build())
+ .withName(serviceName)
.build();
+ IngressBackend ingressBackend =
+ new IngressBackendBuilder().withService(ingressServiceBackend).build();
+
HTTPIngressPathBuilder httpIngressPathBuilder =
- new HTTPIngressPathBuilder().withBackend(ingressBackend);
+ new HTTPIngressPathBuilder().withBackend(ingressBackend).withPathType(INGRESS_PATH_TYPE);
if (!isNullOrEmpty(path)) {
httpIngressPathBuilder.withPath(path);
@@ -128,7 +152,7 @@ public class ExternalServerIngressBuilder {
ingressAnnotations.putAll(
Annotations.newSerializer().servers(serversConfigs).machineName(machineName).annotations());
- return new io.fabric8.kubernetes.api.model.extensions.IngressBuilder()
+ return new IngressBuilder()
.withSpec(ingressSpec)
.withMetadata(
new ObjectMetaBuilder()
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/IngressServerExposer.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/IngressServerExposer.java
index 312e55ace9..34a9e57ea7 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/IngressServerExposer.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/IngressServerExposer.java
@@ -15,7 +15,7 @@ import static java.util.Collections.emptyMap;
import com.google.common.base.Splitter;
import io.fabric8.kubernetes.api.model.ServicePort;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject;
@@ -124,7 +124,8 @@ public class IngressServerExposer
.withServiceName(serviceName)
.withAnnotations(annotations)
.withLabels(labels)
- .withServicePort(servicePort.getName())
+ .withServicePortName(servicePort.getName())
+ .withServicePort(servicePort.getPort())
.withServers(servers)
.build();
}
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/MultihostIngressServerExposer.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/MultihostIngressServerExposer.java
index a744e065ea..7174003ae2 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/MultihostIngressServerExposer.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/MultihostIngressServerExposer.java
@@ -11,7 +11,7 @@
*/
package org.eclipse.che.workspace.infrastructure.kubernetes.server.external;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Named;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/resolver/IngressServerResolver.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/resolver/IngressServerResolver.java
index 958628af4f..20ff7381b8 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/resolver/IngressServerResolver.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/resolver/IngressServerResolver.java
@@ -14,8 +14,8 @@ package org.eclipse.che.workspace.infrastructure.kubernetes.server.resolver;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import io.fabric8.kubernetes.api.model.Service;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/resolver/KubernetesServerResolverFactory.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/resolver/KubernetesServerResolverFactory.java
index 9fc188f16b..8b1abed657 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/resolver/KubernetesServerResolverFactory.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/resolver/KubernetesServerResolverFactory.java
@@ -15,7 +15,7 @@ import static org.eclipse.che.workspace.infrastructure.kubernetes.server.Workspa
import static org.eclipse.che.workspace.infrastructure.kubernetes.server.WorkspaceExposureType.NATIVE;
import com.google.common.collect.ImmutableMap;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/util/Ingresses.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/util/Ingresses.java
index b67421358b..19621e2c97 100644
--- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/util/Ingresses.java
+++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/util/Ingresses.java
@@ -11,13 +11,13 @@
*/
package org.eclipse.che.workspace.infrastructure.kubernetes.util;
-import io.fabric8.kubernetes.api.model.IntOrString;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServicePort;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressPath;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPath;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.ServiceBackendPort;
import java.util.Collection;
import java.util.Optional;
@@ -41,8 +41,8 @@ public class Ingresses {
for (IngressRule rule : ingress.getSpec().getRules()) {
for (HTTPIngressPath path : rule.getHttp().getPaths()) {
IngressBackend backend = path.getBackend();
- if (backend.getServiceName().equals(service.getMetadata().getName())
- && matchesServicePort(backend.getServicePort(), foundPort.get())) {
+ if (backend.getService().getName().equals(service.getMetadata().getName())
+ && matchesServicePort(backend.getService().getPort(), foundPort.get())) {
return Optional.of(rule);
}
}
@@ -51,11 +51,12 @@ public class Ingresses {
return Optional.empty();
}
- private static boolean matchesServicePort(IntOrString backendPort, ServicePort servicePort) {
- if (backendPort.getStrVal() != null && backendPort.getStrVal().equals(servicePort.getName())) {
+ private static boolean matchesServicePort(
+ ServiceBackendPort backendPort, ServicePort servicePort) {
+ if (backendPort.getName() != null && backendPort.getName().equals(servicePort.getName())) {
return true;
}
- if (backendPort.getIntVal() != null && backendPort.getIntVal().equals(servicePort.getPort())) {
+ if (backendPort.getNumber() != null && backendPort.getNumber().equals(servicePort.getPort())) {
return true;
}
return false;
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/KubernetesInternalRuntimeTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/KubernetesInternalRuntimeTest.java
index 7984c46b7f..5d588113b9 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/KubernetesInternalRuntimeTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/KubernetesInternalRuntimeTest.java
@@ -72,10 +72,12 @@ import io.fabric8.kubernetes.api.model.ServicePortBuilder;
import io.fabric8.kubernetes.api.model.ServiceSpec;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
-import io.fabric8.kubernetes.api.model.extensions.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressServiceBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.ServiceBackendPort;
import io.opentracing.Tracer;
import java.text.ParseException;
import java.util.ArrayList;
@@ -1319,11 +1321,14 @@ public class KubernetesInternalRuntimeTest {
final Ingress ingress = mock(Ingress.class);
mockName(INGRESS_NAME, ingress);
final IngressSpec spec = mock(IngressSpec.class);
-
final IngressBackend backend = mock(IngressBackend.class);
- when(backend.getServiceName()).thenReturn(SERVICE_NAME);
- when(backend.getServicePort()).thenReturn(new IntOrString(EXPOSED_PORT_1));
- when(spec.getBackend()).thenReturn(backend);
+ final IngressServiceBackend ingressServiceBackend = mock(IngressServiceBackend.class);
+ final ServiceBackendPort serviceBackendPort = mock(ServiceBackendPort.class);
+ when(spec.getDefaultBackend()).thenReturn(backend);
+ when(backend.getService()).thenReturn(ingressServiceBackend);
+ when(ingressServiceBackend.getPort()).thenReturn(serviceBackendPort);
+ when(ingressServiceBackend.getName()).thenReturn(SERVICE_NAME);
+ when(serviceBackendPort.getNumber()).thenReturn(EXPOSED_PORT_1);
final IngressRule rule = mock(IngressRule.class);
when(rule.getHost()).thenReturn(INGRESS_HOST);
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironmentFactoryTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironmentFactoryTest.java
index 28b7a49117..8b25667d42 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironmentFactoryTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/environment/KubernetesEnvironmentFactoryTest.java
@@ -50,7 +50,7 @@ import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
-import io.fabric8.kubernetes.api.model.extensions.IngressBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBuilder;
import org.eclipse.che.api.core.ValidationException;
import org.eclipse.che.api.workspace.server.model.impl.WarningImpl;
import org.eclipse.che.api.workspace.server.spi.environment.InternalEnvironment;
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/IngressTlsProvisionerTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/IngressTlsProvisionerTest.java
index cbfe1987e7..c3651d74a2 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/IngressTlsProvisionerTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/IngressTlsProvisionerTest.java
@@ -24,7 +24,7 @@ import static org.testng.Assert.assertNull;
import com.google.common.collect.ImmutableMap;
import io.fabric8.kubernetes.api.model.Secret;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.che.api.core.model.workspace.config.ServerConfig;
@@ -65,7 +65,8 @@ public class IngressTlsProvisionerTest {
private final String machine = "machine";
private final String name = "IngressName";
private final String serviceName = "ServiceName";
- private final String servicePort = "server-port";
+ private final String servicePortName = "server-port";
+ private final Integer servicePort = 7777;
private final String host = "server-host";
private final ExternalServerIngressBuilder externalServerIngressBuilder =
@@ -78,6 +79,7 @@ public class IngressTlsProvisionerTest {
.withName(name)
.withServers(servers)
.withServiceName(serviceName)
+ .withServicePortName(servicePortName)
.withServicePort(servicePort)
.build();
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/KubernetesPreviewUrlCommandProvisionerTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/KubernetesPreviewUrlCommandProvisionerTest.java
index 6bf4e6396a..3c852e5445 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/KubernetesPreviewUrlCommandProvisionerTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/KubernetesPreviewUrlCommandProvisionerTest.java
@@ -19,12 +19,14 @@ import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServicePort;
import io.fabric8.kubernetes.api.model.ServiceSpec;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressPath;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressRuleValue;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
-import io.fabric8.kubernetes.api.model.extensions.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPath;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressRuleValue;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressServiceBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.ServiceBackendPort;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -170,7 +172,10 @@ public class KubernetesPreviewUrlCommandProvisionerTest {
new HTTPIngressRuleValue(
Collections.singletonList(
new HTTPIngressPath(
- new IngressBackend(null, "servicename", new IntOrString(SERVICE_PORT_NAME)),
+ new IngressBackend(
+ null,
+ new IngressServiceBackend(
+ "servicename", new ServiceBackendPort(SERVICE_PORT_NAME, PORT))),
null,
null))));
ingressSpec.setRules(Collections.singletonList(rule));
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/UniqueNamesProvisionerTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/UniqueNamesProvisionerTest.java
index 6b159fa810..95bf1bb78c 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/UniqueNamesProvisionerTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/provision/UniqueNamesProvisionerTest.java
@@ -35,8 +35,8 @@ import io.fabric8.kubernetes.api.model.Volume;
import io.fabric8.kubernetes.api.model.VolumeBuilder;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBuilder;
import java.util.HashMap;
import org.eclipse.che.api.core.model.workspace.runtime.RuntimeIdentity;
import org.eclipse.che.workspace.infrastructure.kubernetes.environment.KubernetesEnvironment;
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/IngressServerResolverTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/IngressServerResolverTest.java
index c8207c15fa..14d25072ec 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/IngressServerResolverTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/IngressServerResolverTest.java
@@ -17,17 +17,18 @@ import static java.util.Collections.singletonMap;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
-import io.fabric8.kubernetes.api.model.IntOrString;
import io.fabric8.kubernetes.api.model.LoadBalancerStatusBuilder;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
import io.fabric8.kubernetes.api.model.ServicePortBuilder;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressPath;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressRuleValue;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressBuilder;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPath;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressRuleValue;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBuilder;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressServiceBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.ServiceBackendPort;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.che.api.core.model.workspace.config.ServerConfig;
@@ -300,7 +301,10 @@ public class IngressServerResolverTest {
new HTTPIngressRuleValue(
singletonList(
new HTTPIngressPath(
- new IngressBackend(null, name, new IntOrString("8080")),
+ new IngressBackend(
+ null,
+ new IngressServiceBackend(
+ name, new ServiceBackendPort("8080", 8080))),
INGRESS_PATH_PREFIX,
null)))))
.endSpec()
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/PreviewUrlExposerTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/PreviewUrlExposerTest.java
index 08b14bc5cb..9937234e00 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/PreviewUrlExposerTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/PreviewUrlExposerTest.java
@@ -20,12 +20,14 @@ import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServicePort;
import io.fabric8.kubernetes.api.model.ServiceSpec;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressPath;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressRuleValue;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
-import io.fabric8.kubernetes.api.model.extensions.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPath;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressRuleValue;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressServiceBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.ServiceBackendPort;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -45,7 +47,7 @@ import org.testng.annotations.Test;
@Listeners(MockitoTestNGListener.class)
public class PreviewUrlExposerTest {
- private PreviewUrlExposer previewUrlExposer;
+ private PreviewUrlExposer previewUrlExposer;
@Mock private ExternalServiceExposureStrategy externalServiceExposureStrategy;
@@ -111,7 +113,10 @@ public class PreviewUrlExposerTest {
IngressRule ingressRule = new IngressRule();
ingressRule.setHost("ingresshost");
IngressBackend ingressBackend =
- new IngressBackend(null, "servicename", new IntOrString(SERVER_PORT_NAME));
+ new IngressBackend(
+ null,
+ new IngressServiceBackend(
+ "servicename", new ServiceBackendPort(SERVER_PORT_NAME, PORT)));
ingressRule.setHttp(
new HTTPIngressRuleValue(singletonList(new HTTPIngressPath(ingressBackend, null, null))));
ingressSpec.setRules(singletonList(ingressRule));
@@ -172,8 +177,8 @@ public class PreviewUrlExposerTest {
Ingress provisionedIngress = env.getIngresses().values().iterator().next();
IngressBackend provisionedIngressBackend =
provisionedIngress.getSpec().getRules().get(0).getHttp().getPaths().get(0).getBackend();
- assertEquals(provisionedIngressBackend.getServicePort().getStrVal(), SERVER_PORT_NAME);
- assertEquals(provisionedIngressBackend.getServiceName(), SERVICE_NAME);
+ assertEquals(provisionedIngressBackend.getService().getPort().getName(), SERVER_PORT_NAME);
+ assertEquals(provisionedIngressBackend.getService().getName(), SERVICE_NAME);
}
@Test
@@ -209,8 +214,9 @@ public class PreviewUrlExposerTest {
Ingress provisionedIngress = env.getIngresses().values().iterator().next();
IngressBackend provisionedIngressBackend =
provisionedIngress.getSpec().getRules().get(0).getHttp().getPaths().get(0).getBackend();
- assertEquals(provisionedIngressBackend.getServicePort().getStrVal(), SERVER_PORT_NAME);
+ assertEquals(provisionedIngressBackend.getService().getPort().getName(), SERVER_PORT_NAME);
assertEquals(
- provisionedIngressBackend.getServiceName(), provisionedService.getMetadata().getName());
+ provisionedIngressBackend.getService().getName(),
+ provisionedService.getMetadata().getName());
}
}
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/DefaultHostExternalServiceExposureStrategyTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/DefaultHostExternalServiceExposureStrategyTest.java
index d9b321b5b1..ea6ffbbe5c 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/DefaultHostExternalServiceExposureStrategyTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/DefaultHostExternalServiceExposureStrategyTest.java
@@ -25,9 +25,9 @@ import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodBuilder;
import io.fabric8.kubernetes.api.model.ServicePort;
import io.fabric8.kubernetes.api.model.ServicePortBuilder;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
import java.util.Map;
import org.eclipse.che.api.core.model.workspace.config.ServerConfig;
import org.eclipse.che.api.workspace.server.model.impl.ServerConfigImpl;
@@ -148,8 +148,8 @@ public class DefaultHostExternalServiceExposureStrategyTest {
for (Ingress ingress : kubernetesEnvironment.getIngresses().values()) {
IngressRule ingressRule = ingress.getSpec().getRules().get(0);
IngressBackend backend = ingressRule.getHttp().getPaths().get(0).getBackend();
- if (serviceName.equals(backend.getServiceName())) {
- assertEquals(backend.getServicePort().getStrVal(), servicePort.getName());
+ if (serviceName.equals(backend.getService().getName())) {
+ assertEquals(backend.getService().getPort().getName(), servicePort.getName());
Annotations.Deserializer ingressAnnotations =
Annotations.newDeserializer(ingress.getMetadata().getAnnotations());
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/ExternalServerIngressBuilderTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/ExternalServerIngressBuilderTest.java
index 34be496ded..44d1048d1b 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/ExternalServerIngressBuilderTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/ExternalServerIngressBuilderTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 Red Hat, Inc.
+ * Copyright (c) 2012-2021 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
@@ -12,12 +12,13 @@
package org.eclipse.che.workspace.infrastructure.kubernetes.server.external;
import static java.util.Collections.singletonMap;
+import static org.eclipse.che.workspace.infrastructure.kubernetes.server.external.ExternalServerIngressBuilder.INGRESS_PATH_TYPE;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import com.google.common.collect.ImmutableMap;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressPath;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPath;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.Map;
import org.eclipse.che.api.core.model.workspace.config.ServerConfig;
import org.eclipse.che.api.workspace.server.model.impl.ServerConfigImpl;
@@ -37,7 +38,8 @@ public class ExternalServerIngressBuilderTest {
private static final String MACHINE_NAME = "machine";
private static final String NAME = "IngressName";
private static final String SERVICE_NAME = "ServiceName";
- private static final String SERVICE_PORT = "server-port";
+ private static final String SERVICE_PORT_NAME = "server-port";
+ private static final Integer SERVICE_PORT = 7777;
private ExternalServerIngressBuilder externalServerIngressBuilder;
@@ -62,6 +64,7 @@ public class ExternalServerIngressBuilderTest {
.withName(NAME)
.withServers(SERVERS)
.withServiceName(SERVICE_NAME)
+ .withServicePortName(SERVICE_PORT_NAME)
.withServicePort(SERVICE_PORT)
.build();
@@ -83,6 +86,7 @@ public class ExternalServerIngressBuilderTest {
.withName(NAME)
.withServers(SERVERS)
.withServiceName(SERVICE_NAME)
+ .withServicePortName(SERVICE_PORT_NAME)
.withServicePort(SERVICE_PORT)
.build();
@@ -104,6 +108,7 @@ public class ExternalServerIngressBuilderTest {
.withName(NAME)
.withServers(SERVERS)
.withServiceName(SERVICE_NAME)
+ .withServicePortName(SERVICE_PORT_NAME)
.withServicePort(SERVICE_PORT)
.build();
@@ -116,8 +121,9 @@ public class ExternalServerIngressBuilderTest {
HTTPIngressPath httpIngressPath =
ingress.getSpec().getRules().get(0).getHttp().getPaths().get(0);
assertEquals(httpIngressPath.getPath(), path);
- assertEquals(httpIngressPath.getBackend().getServiceName(), SERVICE_NAME);
- assertEquals(httpIngressPath.getBackend().getServicePort().getStrVal(), SERVICE_PORT);
+ assertEquals(httpIngressPath.getPathType(), INGRESS_PATH_TYPE);
+ assertEquals(httpIngressPath.getBackend().getService().getName(), SERVICE_NAME);
+ assertEquals(httpIngressPath.getBackend().getService().getPort().getName(), SERVICE_PORT_NAME);
assertEquals(ingress.getMetadata().getName(), NAME);
assertTrue(ingress.getMetadata().getAnnotations().containsKey("annotation-key"));
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/IngressServerExposerTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/IngressServerExposerTest.java
index 1a3187102a..05869dcfcb 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/IngressServerExposerTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/IngressServerExposerTest.java
@@ -18,7 +18,7 @@ import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
import io.fabric8.kubernetes.api.model.ServicePort;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/MultiHostExternalServiceExposureStrategyTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/MultiHostExternalServiceExposureStrategyTest.java
index d7b1489f09..e8c5e32394 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/MultiHostExternalServiceExposureStrategyTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/server/external/MultiHostExternalServiceExposureStrategyTest.java
@@ -25,9 +25,9 @@ import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodBuilder;
import io.fabric8.kubernetes.api.model.ServicePort;
import io.fabric8.kubernetes.api.model.ServicePortBuilder;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
import java.util.Map;
import org.eclipse.che.api.core.model.workspace.config.ServerConfig;
import org.eclipse.che.api.workspace.server.model.impl.ServerConfigImpl;
@@ -120,8 +120,8 @@ public class MultiHostExternalServiceExposureStrategyTest {
assertEquals(ingressRule.getHost(), ingressName + "." + DOMAIN);
assertEquals(ingressRule.getHttp().getPaths().get(0).getPath(), "/");
IngressBackend backend = ingressRule.getHttp().getPaths().get(0).getBackend();
- assertEquals(backend.getServiceName(), serviceName);
- assertEquals(backend.getServicePort().getStrVal(), servicePort.getName());
+ assertEquals(backend.getService().getName(), serviceName);
+ assertEquals(backend.getService().getPort().getName(), servicePort.getName());
Annotations.Deserializer ingressAnnotations =
Annotations.newDeserializer(ingress.getMetadata().getAnnotations());
diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/util/IngressesTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/util/IngressesTest.java
index 58858263ee..2164efe6ea 100644
--- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/util/IngressesTest.java
+++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/util/IngressesTest.java
@@ -21,12 +21,14 @@ import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServicePort;
import io.fabric8.kubernetes.api.model.ServiceSpec;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressPath;
-import io.fabric8.kubernetes.api.model.extensions.HTTPIngressRuleValue;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
-import io.fabric8.kubernetes.api.model.extensions.IngressBackend;
-import io.fabric8.kubernetes.api.model.extensions.IngressRule;
-import io.fabric8.kubernetes.api.model.extensions.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPath;
+import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressRuleValue;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressServiceBackend;
+import io.fabric8.kubernetes.api.model.networking.v1.IngressSpec;
+import io.fabric8.kubernetes.api.model.networking.v1.ServiceBackendPort;
import java.util.Optional;
import org.testng.annotations.Test;
@@ -38,7 +40,12 @@ public class IngressesTest {
final int PORT = 8080;
Service service = createService(SERVER_PORT_NAME, PORT);
- Ingress ingress = createIngress(new IngressBackend(null, "servicename", new IntOrString(PORT)));
+ Ingress ingress =
+ createIngress(
+ new IngressBackend(
+ null,
+ new IngressServiceBackend(
+ "servicename", new ServiceBackendPort(SERVER_PORT_NAME, PORT))));
Optional foundRule =
Ingresses.findIngressRuleForServicePort(singletonList(ingress), service, PORT);
@@ -53,7 +60,11 @@ public class IngressesTest {
Service service = createService(SERVER_PORT_NAME, PORT);
Ingress ingress =
- createIngress(new IngressBackend(null, "servicename", new IntOrString(SERVER_PORT_NAME)));
+ createIngress(
+ new IngressBackend(
+ null,
+ new IngressServiceBackend(
+ "servicename", new ServiceBackendPort(SERVER_PORT_NAME, PORT))));
Optional foundRule =
Ingresses.findIngressRuleForServicePort(singletonList(ingress), service, PORT);
@@ -68,7 +79,11 @@ public class IngressesTest {
Service service = createService(SERVER_PORT_NAME, PORT);
Ingress ingress =
- createIngress(new IngressBackend(null, "servicename", new IntOrString("does not exist")));
+ createIngress(
+ new IngressBackend(
+ null,
+ new IngressServiceBackend(
+ "servicename", new ServiceBackendPort("does not exist", null))));
Optional foundRule =
Ingresses.findIngressRuleForServicePort(singletonList(ingress), service, PORT);
@@ -81,7 +96,10 @@ public class IngressesTest {
final int PORT = 8080;
Service service = createService(SERVER_PORT_NAME, PORT);
- Ingress ingress = createIngress(new IngressBackend(null, "servicename", new IntOrString(666)));
+ Ingress ingress =
+ createIngress(
+ new IngressBackend(
+ null, new IngressServiceBackend("servicename", new ServiceBackendPort(null, 666))));
Optional foundRule =
Ingresses.findIngressRuleForServicePort(singletonList(ingress), service, PORT);
diff --git a/infrastructures/openshift/pom.xml b/infrastructures/openshift/pom.xml
index c5ffbfd70c..c7b588bc20 100644
--- a/infrastructures/openshift/pom.xml
+++ b/infrastructures/openshift/pom.xml
@@ -50,10 +50,6 @@
io.fabric8
kubernetes-model-core
-
- io.fabric8
- kubernetes-model-extensions
-
io.fabric8
openshift-client
diff --git a/infrastructures/openshift/src/main/java/org/eclipse/che/workspace/infrastructure/openshift/environment/OpenShiftEnvironment.java b/infrastructures/openshift/src/main/java/org/eclipse/che/workspace/infrastructure/openshift/environment/OpenShiftEnvironment.java
index d74867b89a..fe6bcddfdc 100644
--- a/infrastructures/openshift/src/main/java/org/eclipse/che/workspace/infrastructure/openshift/environment/OpenShiftEnvironment.java
+++ b/infrastructures/openshift/src/main/java/org/eclipse/che/workspace/infrastructure/openshift/environment/OpenShiftEnvironment.java
@@ -17,7 +17,7 @@ import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.Secret;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.apps.Deployment;
-import io.fabric8.kubernetes.api.model.extensions.Ingress;
+import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import io.fabric8.openshift.api.model.Route;
import java.util.ArrayList;
import java.util.HashMap;
@@ -29,7 +29,6 @@ import org.eclipse.che.api.workspace.server.spi.environment.InternalEnvironment;
import org.eclipse.che.api.workspace.server.spi.environment.InternalMachineConfig;
import org.eclipse.che.api.workspace.server.spi.environment.InternalRecipe;
import org.eclipse.che.workspace.infrastructure.kubernetes.environment.KubernetesEnvironment;
-import org.eclipse.che.workspace.infrastructure.kubernetes.environment.KubernetesEnvironment.Builder;
/**
* Holds objects of OpenShift environment.