conditional ingress for wiremock pods (#1445)
* k8s client moved * fabri8 client moved * review comments * review comments
This commit is contained in:
@@ -175,7 +175,7 @@ class KubernetesClientDiscoveryClientIT {
|
||||
util.createNamespace(NAMESPACE_A);
|
||||
util.createNamespace(NAMESPACE_B);
|
||||
util.setUpClusterWideClusterRoleBinding(NAMESPACE);
|
||||
util.wiremock(NAMESPACE_A, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_A, "/wiremock", Phase.CREATE, false);
|
||||
util.busybox(NAMESPACE_B, Phase.CREATE);
|
||||
|
||||
KubernetesClientDiscoveryClientUtils.patchForAllNamespaces(DEPLOYMENT_NAME, NAMESPACE);
|
||||
@@ -222,7 +222,7 @@ class KubernetesClientDiscoveryClientIT {
|
||||
@Order(3)
|
||||
void testSpecificNamespace() {
|
||||
util.setUpClusterWide(NAMESPACE, Set.of(NAMESPACE, NAMESPACE_A));
|
||||
util.wiremock(NAMESPACE_B, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_B, "/wiremock", Phase.CREATE, false);
|
||||
|
||||
KubernetesClientDiscoveryClientUtils.patchForSingleNamespace(DEPLOYMENT_NAME, NAMESPACE);
|
||||
|
||||
@@ -266,8 +266,8 @@ class KubernetesClientDiscoveryClientIT {
|
||||
|
||||
Assertions.assertEquals(resultForNonExistentService.size(), 0);
|
||||
|
||||
util.wiremock(NAMESPACE_A, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_B, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_A, "/wiremock", Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_B, "/wiremock", Phase.DELETE, false);
|
||||
util.deleteClusterWide(NAMESPACE, Set.of(NAMESPACE, NAMESPACE_A));
|
||||
util.deleteNamespace(NAMESPACE_A);
|
||||
util.deleteNamespace(NAMESPACE_B);
|
||||
@@ -343,8 +343,8 @@ class KubernetesClientDiscoveryClientIT {
|
||||
}
|
||||
|
||||
private void deleteNamespacesAndWiremock() {
|
||||
util.wiremock(NAMESPACE_A_UAT, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_A_UAT, "/wiremock", Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/wiremock", Phase.DELETE, false);
|
||||
util.deleteNamespace(NAMESPACE_A_UAT);
|
||||
util.deleteNamespace(NAMESPACE_B_UAT);
|
||||
}
|
||||
|
||||
@@ -55,8 +55,8 @@ class KubernetesClientDiscoveryFilterITDelegate {
|
||||
util.createNamespace(NAMESPACE_A_UAT);
|
||||
util.createNamespace(NAMESPACE_B_UAT);
|
||||
util.setUpClusterWide(NAMESPACE, Set.of(NAMESPACE, NAMESPACE_A_UAT, NAMESPACE_B_UAT));
|
||||
util.wiremock(NAMESPACE_A_UAT, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_A_UAT, "/wiremock", Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/wiremock", Phase.CREATE, false);
|
||||
|
||||
WebClient clientServices = builder().baseUrl("http://localhost/services").build();
|
||||
|
||||
|
||||
@@ -84,9 +84,9 @@ class KubernetesClientDiscoverySelectiveNamespacesIT {
|
||||
util.createNamespace(NAMESPACE_A);
|
||||
util.createNamespace(NAMESPACE_B);
|
||||
util.setUpClusterWide(NAMESPACE, Set.of(NAMESPACE, NAMESPACE_A, NAMESPACE_B));
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_A, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_B, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_A, "/wiremock", Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_B, "/wiremock", Phase.CREATE, false);
|
||||
manifests(Phase.CREATE);
|
||||
}
|
||||
|
||||
@@ -94,9 +94,9 @@ class KubernetesClientDiscoverySelectiveNamespacesIT {
|
||||
static void afterAll() throws Exception {
|
||||
Commons.cleanUp(IMAGE_NAME, K3S);
|
||||
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_A, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_B, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_A, "/wiremock", Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_B, "/wiremock", Phase.DELETE, false);
|
||||
util.deleteClusterWide(NAMESPACE, Set.of(NAMESPACE, NAMESPACE_A, NAMESPACE_B));
|
||||
util.deleteNamespace(NAMESPACE_A);
|
||||
util.deleteNamespace(NAMESPACE_B);
|
||||
|
||||
@@ -75,12 +75,12 @@ class LoadBalancerIT {
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE, false);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void afterEach() {
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -78,12 +78,12 @@ class ReactiveDiscoveryClientIT {
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE, false);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void after() {
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE, false);
|
||||
reactiveDiscoveryIt(Phase.DELETE);
|
||||
}
|
||||
|
||||
|
||||
@@ -105,15 +105,15 @@ class DiscoveryClientFilterNamespaceIT {
|
||||
|
||||
@AfterEach
|
||||
void afterEach() {
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock-" + NAMESPACE_LEFT, Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock-" + NAMESPACE_RIGHT, Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock-" + NAMESPACE_LEFT, Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock-" + NAMESPACE_RIGHT, Phase.DELETE, false);
|
||||
discoveryIt(Phase.DELETE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDiscoveryClient() {
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock-" + NAMESPACE_LEFT, Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock-" + NAMESPACE_RIGHT, Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock-" + NAMESPACE_LEFT, Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock-" + NAMESPACE_RIGHT, Phase.CREATE, false);
|
||||
discoveryIt(Phase.CREATE);
|
||||
|
||||
testLoadBalancer();
|
||||
|
||||
@@ -73,12 +73,12 @@ class Fabric8DiscoveryBootstrapIT {
|
||||
util.setUp(NAMESPACE);
|
||||
|
||||
manifests(Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE, false);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
static void after() throws Exception {
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE, false);
|
||||
manifests(Phase.DELETE);
|
||||
Commons.cleanUp(IMAGE_NAME, K3S);
|
||||
Commons.systemPrune();
|
||||
|
||||
@@ -97,32 +97,32 @@ class Fabric8DiscoveryPodMetadataIT {
|
||||
util.setUp(NAMESPACE);
|
||||
|
||||
manifests(Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.CREATE, false);
|
||||
util.busybox(NAMESPACE, Phase.CREATE);
|
||||
|
||||
util.createNamespace(NAMESPACE_A_UAT);
|
||||
util.createNamespace(NAMESPACE_B_UAT);
|
||||
util.wiremock(NAMESPACE_A_UAT, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_A_UAT, "/wiremock", Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/wiremock", Phase.CREATE, false);
|
||||
|
||||
util.createNamespace(NAMESPACE_LEFT);
|
||||
util.createNamespace(NAMESPACE_RIGHT);
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock", Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock", Phase.CREATE, false);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
static void after() throws Exception {
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, "/wiremock", Phase.DELETE, false);
|
||||
util.busybox(NAMESPACE, Phase.DELETE);
|
||||
|
||||
util.wiremock(NAMESPACE_A_UAT, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_A_UAT, "/wiremock", Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/wiremock", Phase.DELETE, false);
|
||||
util.deleteNamespace(NAMESPACE_A_UAT);
|
||||
util.deleteNamespace(NAMESPACE_B_UAT);
|
||||
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock", Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock", Phase.DELETE, false);
|
||||
util.deleteNamespace(NAMESPACE_LEFT);
|
||||
util.deleteNamespace(NAMESPACE_RIGHT);
|
||||
|
||||
|
||||
@@ -82,12 +82,12 @@ public class Fabric8ClientLoadbalancerIT {
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
util.wiremock(NAMESPACE, "/", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, "/", Phase.CREATE, false);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void afterEach() {
|
||||
util.wiremock(NAMESPACE, "/", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, "/", Phase.DELETE, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -261,22 +261,36 @@ public final class Util {
|
||||
}
|
||||
|
||||
public void wiremock(String namespace, String path, Phase phase) {
|
||||
wiremock(namespace, path, phase, true);
|
||||
}
|
||||
|
||||
public void wiremock(String namespace, String path, Phase phase, boolean withIngress) {
|
||||
InputStream deploymentStream = inputStream("wiremock/wiremock-deployment.yaml");
|
||||
InputStream serviceStream = inputStream("wiremock/wiremock-service.yaml");
|
||||
InputStream ingressStream = inputStream("wiremock/wiremock-ingress.yaml");
|
||||
|
||||
Deployment deployment = client.apps().deployments().load(deploymentStream).get();
|
||||
Service service = client.services().load(serviceStream).get();
|
||||
Ingress ingress = client.network().v1().ingresses().load(ingressStream).get();
|
||||
Ingress ingress = null;
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
|
||||
if (withIngress) {
|
||||
ingress = client.network().v1().ingresses().load(ingressStream).get();
|
||||
ingress.getMetadata().setNamespace(namespace);
|
||||
ingress.getSpec().getRules().get(0).getHttp().getPaths().get(0).setPath(path);
|
||||
}
|
||||
|
||||
deployment.getMetadata().setNamespace(namespace);
|
||||
service.getMetadata().setNamespace(namespace);
|
||||
ingress.getMetadata().setNamespace(namespace);
|
||||
ingress.getSpec().getRules().get(0).getHttp().getPaths().get(0).setPath(path);
|
||||
createAndWait(namespace, "wiremock", deployment, service, ingress, false);
|
||||
}
|
||||
else {
|
||||
|
||||
if (withIngress) {
|
||||
ingress = client.network().v1().ingresses().load(ingressStream).get();
|
||||
}
|
||||
|
||||
deleteAndWait(namespace, deployment, service, ingress);
|
||||
}
|
||||
|
||||
|
||||
@@ -420,19 +420,35 @@ public final class Util {
|
||||
.getItems().stream().noneMatch(x -> x.getMetadata().getName().equals(name)));
|
||||
}
|
||||
|
||||
/**
|
||||
* deploy wiremock without ingress.
|
||||
*/
|
||||
public void wiremock(String namespace, String path, Phase phase) {
|
||||
wiremock(namespace, path, phase, true);
|
||||
}
|
||||
|
||||
public void wiremock(String namespace, String path, Phase phase, boolean withIngress) {
|
||||
V1Deployment deployment = (V1Deployment) yaml("wiremock/wiremock-deployment.yaml");
|
||||
V1Service service = (V1Service) yaml("wiremock/wiremock-service.yaml");
|
||||
V1Ingress ingress = (V1Ingress) yaml("wiremock/wiremock-ingress.yaml");
|
||||
|
||||
V1Ingress ingress = null;
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
|
||||
if (withIngress) {
|
||||
ingress = (V1Ingress) yaml("wiremock/wiremock-ingress.yaml");
|
||||
ingress.getMetadata().setNamespace(namespace);
|
||||
ingress.getSpec().getRules().get(0).getHttp().getPaths().get(0).setPath(path);
|
||||
}
|
||||
|
||||
deployment.getMetadata().setNamespace(namespace);
|
||||
service.getMetadata().setNamespace(namespace);
|
||||
ingress.getMetadata().setNamespace(namespace);
|
||||
ingress.getSpec().getRules().get(0).getHttp().getPaths().get(0).setPath(path);
|
||||
createAndWait(namespace, "wiremock", deployment, service, ingress, false);
|
||||
}
|
||||
else {
|
||||
if (withIngress) {
|
||||
ingress = (V1Ingress) yaml("wiremock/wiremock-ingress.yaml");
|
||||
}
|
||||
deleteAndWait(namespace, deployment, service, ingress);
|
||||
}
|
||||
|
||||
@@ -617,7 +633,7 @@ public final class Util {
|
||||
private boolean isDeploymentReady(String deploymentName, String namespace) throws ApiException {
|
||||
V1DeploymentList deployments = appsV1Api.listNamespacedDeployment(namespace, null, null, null,
|
||||
"metadata.name=" + deploymentName, null, null, null, null, null, null);
|
||||
if (deployments.getItems().size() < 1) {
|
||||
if (deployments.getItems().isEmpty()) {
|
||||
fail("No deployments with the name " + deploymentName);
|
||||
}
|
||||
V1Deployment deployment = deployments.getItems().get(0);
|
||||
|
||||
Reference in New Issue
Block a user