From c452b02de286f0f369bdc2a79969f720eb35e802 Mon Sep 17 00:00:00 2001 From: Georgios Andrianakis Date: Mon, 26 Aug 2019 18:16:28 +0300 Subject: [PATCH] Make security of Kubernetes Nodeport svc for integr tests configurable (#455) --- .../cloud/kubernetes/it/ServicesIT.java | 9 ++++++--- .../cloud/kubernetes/it/ProfilesIT.java | 7 +++++-- spring-cloud-kubernetes-integration-tests/pom.xml | 3 ++- .../cloud/kubernetes/it/GreetingIT.java | 11 +++++++---- .../cloud/kubernetes/it/GreetingAndHealthIT.java | 9 ++++++--- 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/spring-cloud-kubernetes-integration-tests/discovery/tests/src/test/java/org/springframework/cloud/kubernetes/it/ServicesIT.java b/spring-cloud-kubernetes-integration-tests/discovery/tests/src/test/java/org/springframework/cloud/kubernetes/it/ServicesIT.java index 1f9d19b4..d58824a8 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/tests/src/test/java/org/springframework/cloud/kubernetes/it/ServicesIT.java +++ b/spring-cloud-kubernetes-integration-tests/discovery/tests/src/test/java/org/springframework/cloud/kubernetes/it/ServicesIT.java @@ -35,10 +35,13 @@ public class ServicesIT { private static final Integer PORT = Integer .valueOf(System.getProperty("service.port")); + private static final String PROTOCOL = "true" + .equalsIgnoreCase(System.getProperty("service.secure")) ? "https" : "http"; + @Test public void testServicesEndpoint() { - given().baseUri(String.format("https://%s:%d", HOST, PORT)).get("services").then() - .statusCode(200).body(new StringContains("service-a") { + given().baseUri(String.format("%s://%s:%d", PROTOCOL, HOST, PORT)).get("services") + .then().statusCode(200).body(new StringContains("service-a") { @Override protected boolean evalSubstringOf(String s) { return s.contains("service-a") && s.contains("service-b"); @@ -48,7 +51,7 @@ public class ServicesIT { @Test public void testInstancesEndpoint() { - given().baseUri(String.format("https://%s:%d", HOST, PORT)) + given().baseUri(String.format("%s://%s:%d", PROTOCOL, HOST, PORT)) .get("services/discovery-service-a/instances").then().statusCode(200) .body("instanceId", hasSize(1)) .body("serviceId", hasItems("discovery-service-a")); diff --git a/spring-cloud-kubernetes-integration-tests/istio/src/test/java/org/springframework/cloud/kubernetes/it/ProfilesIT.java b/spring-cloud-kubernetes-integration-tests/istio/src/test/java/org/springframework/cloud/kubernetes/it/ProfilesIT.java index 9c501742..9a9770dd 100644 --- a/spring-cloud-kubernetes-integration-tests/istio/src/test/java/org/springframework/cloud/kubernetes/it/ProfilesIT.java +++ b/spring-cloud-kubernetes-integration-tests/istio/src/test/java/org/springframework/cloud/kubernetes/it/ProfilesIT.java @@ -33,10 +33,13 @@ public class ProfilesIT { private static final Integer PORT = Integer .valueOf(System.getProperty("service.port")); + private static final String PROTOCOL = "true" + .equalsIgnoreCase(System.getProperty("service.secure")) ? "https" : "http"; + @Test public void testProfileEndpoint() { - given().baseUri(String.format("https://%s:%d", HOST, PORT)).get("profiles").then() - .statusCode(200).body(new StringContains("istio")); + given().baseUri(String.format("%s://%s:%d", PROTOCOL, HOST, PORT)).get("profiles") + .then().statusCode(200).body(new StringContains("istio")); } } diff --git a/spring-cloud-kubernetes-integration-tests/pom.xml b/spring-cloud-kubernetes-integration-tests/pom.xml index eed2a6c7..9d11430b 100644 --- a/spring-cloud-kubernetes-integration-tests/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/pom.xml @@ -92,6 +92,7 @@ localhost ${nodeport.value} + false ${project.build.outputDirectory} @@ -130,7 +131,7 @@ simple-core simple-configmap - istio + discovery diff --git a/spring-cloud-kubernetes-integration-tests/simple-configmap/src/test/java/org/springframework/cloud/kubernetes/it/GreetingIT.java b/spring-cloud-kubernetes-integration-tests/simple-configmap/src/test/java/org/springframework/cloud/kubernetes/it/GreetingIT.java index ae006b4b..64daf954 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-configmap/src/test/java/org/springframework/cloud/kubernetes/it/GreetingIT.java +++ b/spring-cloud-kubernetes-integration-tests/simple-configmap/src/test/java/org/springframework/cloud/kubernetes/it/GreetingIT.java @@ -37,10 +37,13 @@ public class GreetingIT { private static final Integer PORT = Integer .valueOf(System.getProperty("service.port")); + private static final String PROTOCOL = "true" + .equalsIgnoreCase(System.getProperty("service.secure")) ? "https" : "http"; + @Test public void firstTestThatTheDefaultMessageIsReturned() { - given().baseUri(String.format("https://%s:%d", HOST, PORT)).get("greeting").then() - .statusCode(200).body("message", is("This is a dummy message")); + given().baseUri(String.format("%s://%s:%d", PROTOCOL, HOST, PORT)).get("greeting") + .then().statusCode(200).body("message", is("This is a dummy message")); } @Test @@ -48,8 +51,8 @@ public class GreetingIT { public void thenApplyAConfigMapAndEnsureThatTheMessageIsUpdated() { waitForApplicationToReload(); - given().baseUri(String.format("https://%s:%d", HOST, PORT)).get("greeting").then() - .statusCode(200) + given().baseUri(String.format("%s://%s:%d", PROTOCOL, HOST, PORT)).get("greeting") + .then().statusCode(200) .body("message", is("Hello from Spring Cloud Kubernetes!")); } diff --git a/spring-cloud-kubernetes-integration-tests/simple-core/src/test/java/org/springframework/cloud/kubernetes/it/GreetingAndHealthIT.java b/spring-cloud-kubernetes-integration-tests/simple-core/src/test/java/org/springframework/cloud/kubernetes/it/GreetingAndHealthIT.java index 6abe0b43..dae83c38 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-core/src/test/java/org/springframework/cloud/kubernetes/it/GreetingAndHealthIT.java +++ b/spring-cloud-kubernetes-integration-tests/simple-core/src/test/java/org/springframework/cloud/kubernetes/it/GreetingAndHealthIT.java @@ -33,15 +33,18 @@ public class GreetingAndHealthIT { private static final Integer PORT = Integer .valueOf(System.getProperty("service.port")); + private static final String PROTOCOL = "true" + .equalsIgnoreCase(System.getProperty("service.secure")) ? "https" : "http"; + @Test public void testGreetingEndpoint() { - given().baseUri(String.format("https://%s:%d", HOST, PORT)).get("greeting").then() - .statusCode(200).body("message", is("Hello from k8s")); + given().baseUri(String.format("%s://%s:%d", PROTOCOL, HOST, PORT)).get("greeting") + .then().statusCode(200).body("message", is("Hello from k8s")); } @Test public void testHealthEndpoint() { - given().baseUri(String.format("https://%s:%d", HOST, PORT)) + given().baseUri(String.format("%s://%s:%d", PROTOCOL, HOST, PORT)) .contentType("application/json").get("actuator/health").then() .statusCode(200).body("details.kubernetes.details.inside", is(true)); }