Merge branch '3.2.x'
This commit is contained in:
@@ -51,16 +51,16 @@ class Fabric8DiscoveryFilterIT extends Fabric8DiscoveryBase {
|
||||
util.createNamespace(NAMESPACE_A_UAT);
|
||||
util.createNamespace(NAMESPACE_B_UAT);
|
||||
|
||||
util.wiremock(NAMESPACE_A_UAT, Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_B_UAT, Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_A_UAT, Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_B_UAT, Phase.CREATE, false);
|
||||
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void afterEach() {
|
||||
|
||||
util.wiremock(NAMESPACE_A_UAT, Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_B_UAT, Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_A_UAT, Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_B_UAT, Phase.DELETE, false);
|
||||
|
||||
util.deleteNamespace(NAMESPACE_A_UAT);
|
||||
util.deleteNamespace(NAMESPACE_B_UAT);
|
||||
|
||||
@@ -44,8 +44,6 @@ import static org.springframework.cloud.kubernetes.configuration.watcher.TestUti
|
||||
*/
|
||||
class ActuatorRefreshIT {
|
||||
|
||||
private static final String WIREMOCK_PATH = "/";
|
||||
|
||||
private static final String NAMESPACE = "default";
|
||||
|
||||
private static final K3sContainer K3S = Commons.container();
|
||||
@@ -72,12 +70,12 @@ class ActuatorRefreshIT {
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
util.wiremock(NAMESPACE, WIREMOCK_PATH, Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, Phase.CREATE, true);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void after() {
|
||||
util.wiremock(NAMESPACE, WIREMOCK_PATH, Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, Phase.DELETE, true);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -114,10 +112,10 @@ class ActuatorRefreshIT {
|
||||
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).setEnv(envVars);
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, null, true);
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, true);
|
||||
}
|
||||
else {
|
||||
util.deleteAndWait(NAMESPACE, deployment, service, null);
|
||||
util.deleteAndWait(NAMESPACE, deployment, service);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ class ActuatorRefreshMultipleNamespacesIT {
|
||||
util = new Util(K3S);
|
||||
util.createNamespace(LEFT_NAMESPACE);
|
||||
util.createNamespace(RIGHT_NAMESPACE);
|
||||
util.wiremock(DEFAULT_NAMESPACE, "/", Phase.CREATE);
|
||||
util.wiremock(DEFAULT_NAMESPACE, Phase.CREATE, true);
|
||||
util.setUpClusterWide(DEFAULT_NAMESPACE, Set.of(DEFAULT_NAMESPACE, LEFT_NAMESPACE, RIGHT_NAMESPACE));
|
||||
configWatcher(Phase.CREATE);
|
||||
}
|
||||
@@ -68,7 +68,7 @@ class ActuatorRefreshMultipleNamespacesIT {
|
||||
@AfterAll
|
||||
static void afterAll() {
|
||||
configWatcher(Phase.DELETE);
|
||||
util.wiremock(DEFAULT_NAMESPACE, "/", Phase.DELETE);
|
||||
util.wiremock(DEFAULT_NAMESPACE, Phase.DELETE, true);
|
||||
util.deleteClusterWide(DEFAULT_NAMESPACE, Set.of(DEFAULT_NAMESPACE, LEFT_NAMESPACE, RIGHT_NAMESPACE));
|
||||
util.deleteNamespace(LEFT_NAMESPACE);
|
||||
util.deleteNamespace(RIGHT_NAMESPACE);
|
||||
@@ -128,10 +128,10 @@ class ActuatorRefreshMultipleNamespacesIT {
|
||||
.yaml("config-watcher/spring-cloud-kubernetes-configuration-watcher-service.yaml");
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(DEFAULT_NAMESPACE, null, deployment, service, null, true);
|
||||
util.createAndWait(DEFAULT_NAMESPACE, null, deployment, service, true);
|
||||
}
|
||||
else {
|
||||
util.deleteAndWait(DEFAULT_NAMESPACE, deployment, service, null);
|
||||
util.deleteAndWait(DEFAULT_NAMESPACE, deployment, service);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ final class TestUtil {
|
||||
|
||||
private static final String WIREMOCK_HOST = "localhost";
|
||||
|
||||
private static final int WIREMOCK_PORT = 80;
|
||||
private static final int WIREMOCK_PORT = 32321;
|
||||
|
||||
static final String SPRING_CLOUD_K8S_CONFIG_WATCHER_APP_NAME = "spring-cloud-kubernetes-configuration-watcher";
|
||||
|
||||
@@ -60,7 +60,7 @@ final class TestUtil {
|
||||
// is ready to take a request via 'Wiremock::stubFor' (because sometimes it fails)
|
||||
// As such, get the existing mappings and retrySpec() makes sure we retry until
|
||||
// we get a response back.
|
||||
WebClient client = builder().baseUrl("http://localhost:80/__admin/mappings").build();
|
||||
WebClient client = builder().baseUrl("http://localhost:32321/__admin/mappings").build();
|
||||
client.method(HttpMethod.GET).retrieve().bodyToMono(String.class).retryWhen(retrySpec()).block();
|
||||
|
||||
StubMapping stubMapping = WireMock.stubFor(WireMock.post(WireMock.urlEqualTo("/actuator/refresh"))
|
||||
|
||||
@@ -93,10 +93,10 @@ abstract class DiscoveryServerClientBase {
|
||||
V1Service service = (V1Service) util.yaml("manifests/discoveryserver-service.yaml");
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, null, true);
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, true);
|
||||
}
|
||||
else {
|
||||
util.deleteAndWait(NAMESPACE, deployment, service, null);
|
||||
util.deleteAndWait(NAMESPACE, deployment, service);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -78,8 +78,8 @@ class DiscoveryServerClientIT extends DiscoveryServerClientBase {
|
||||
discoveryServer(Phase.CREATE);
|
||||
|
||||
Images.loadWiremock(K3S);
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock-" + NAMESPACE_LEFT, Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock-" + NAMESPACE_RIGHT, Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_LEFT, Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_RIGHT, Phase.CREATE, false);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
@@ -87,8 +87,8 @@ class DiscoveryServerClientIT extends DiscoveryServerClientBase {
|
||||
serviceAccount(Phase.DELETE);
|
||||
discoveryServer(Phase.DELETE);
|
||||
|
||||
util.wiremock(NAMESPACE_LEFT, "/wiremock-" + NAMESPACE_LEFT, Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_RIGHT, "/wiremock-" + NAMESPACE_RIGHT, Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_LEFT, Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_RIGHT, Phase.DELETE, false);
|
||||
|
||||
util.deleteNamespace(NAMESPACE_LEFT);
|
||||
util.deleteNamespace(NAMESPACE_RIGHT);
|
||||
|
||||
@@ -60,12 +60,12 @@ class KubernetesClientBlockingIT extends KubernetesClientDiscoveryBase {
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
Images.loadWiremock(K3S);
|
||||
util.wiremock(NAMESPACE, "/", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, Phase.CREATE, true);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void afterEach() {
|
||||
util.wiremock(NAMESPACE, "/", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, Phase.DELETE, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -63,14 +63,14 @@ class KubernetesClientDiscoveryFilterIT extends KubernetesClientDiscoveryBase {
|
||||
util.createNamespace(NAMESPACE_B_UAT);
|
||||
|
||||
Images.loadWiremock(K3S);
|
||||
util.wiremock(NAMESPACE_A_UAT, "/", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE_A_UAT, Phase.CREATE, false);
|
||||
util.wiremock(NAMESPACE_B_UAT, Phase.CREATE, false);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void afterEach() {
|
||||
util.wiremock(NAMESPACE_A_UAT, "/", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_B_UAT, "/", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE_A_UAT, Phase.DELETE, false);
|
||||
util.wiremock(NAMESPACE_B_UAT, Phase.DELETE, false);
|
||||
|
||||
util.deleteNamespace(NAMESPACE_A_UAT);
|
||||
util.deleteNamespace(NAMESPACE_B_UAT);
|
||||
|
||||
@@ -64,13 +64,13 @@ class KubernetesClientDiscoverySimpleIT extends KubernetesClientDiscoveryBase {
|
||||
util.busybox(NAMESPACE, Phase.CREATE);
|
||||
|
||||
externalNameService = (V1Service) util.yaml("external-name-service.yaml");
|
||||
util.createAndWait(NAMESPACE, null, null, externalNameService, null, true);
|
||||
util.createAndWait(NAMESPACE, null, null, externalNameService, true);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void afterEach() {
|
||||
util.busybox(NAMESPACE, Phase.DELETE);
|
||||
util.deleteAndWait(NAMESPACE, null, externalNameService, null);
|
||||
util.deleteAndWait(NAMESPACE, null, externalNameService);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -60,12 +60,12 @@ class KubernetesClientReactiveIT extends KubernetesClientDiscoveryBase {
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
Images.loadWiremock(K3S);
|
||||
util.wiremock(NAMESPACE, "/", Phase.CREATE);
|
||||
util.wiremock(NAMESPACE, Phase.CREATE, true);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void afterEach() {
|
||||
util.wiremock(NAMESPACE, "/", Phase.DELETE);
|
||||
util.wiremock(NAMESPACE, Phase.DELETE, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -133,8 +133,8 @@ final class TestAssertions {
|
||||
assertThat(wiremockInstance.getServiceId()).isEqualTo("service-wiremock");
|
||||
assertThat(wiremockInstance.getInstanceId()).isNotNull();
|
||||
assertThat(wiremockInstance.getHost()).isNotNull();
|
||||
assertThat(wiremockInstance.getMetadata()).isEqualTo(Map.of("k8s_namespace", "default", "type", "ClusterIP",
|
||||
"port.http", "8080", "app", "service-wiremock"));
|
||||
assertThat(wiremockInstance.getMetadata()).isEqualTo(
|
||||
Map.of("k8s_namespace", "default", "type", "NodePort", "port.http", "8080", "app", "service-wiremock"));
|
||||
|
||||
}
|
||||
|
||||
@@ -147,8 +147,8 @@ final class TestAssertions {
|
||||
assertThat(wiremockInstance.getServiceId()).isEqualTo("service-wiremock");
|
||||
assertThat(wiremockInstance.getInstanceId()).isNotNull();
|
||||
assertThat(wiremockInstance.getHost()).isNotNull();
|
||||
assertThat(wiremockInstance.getMetadata()).isEqualTo(Map.of("k8s_namespace", "default", "type", "ClusterIP",
|
||||
"port.http", "8080", "app", "service-wiremock"));
|
||||
assertThat(wiremockInstance.getMetadata()).isEqualTo(
|
||||
Map.of("k8s_namespace", "default", "type", "NodePort", "port.http", "8080", "app", "service-wiremock"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,6 @@ import java.util.Objects;
|
||||
import io.kubernetes.client.openapi.models.V1ConfigMap;
|
||||
import io.kubernetes.client.openapi.models.V1ConfigMapBuilder;
|
||||
import io.kubernetes.client.openapi.models.V1Deployment;
|
||||
import io.kubernetes.client.openapi.models.V1Ingress;
|
||||
import io.kubernetes.client.openapi.models.V1Service;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
@@ -153,7 +152,7 @@ class ConfigurationWatcherBusKafkaIT {
|
||||
util.createAndWait(NAMESPACE, configMap, null);
|
||||
|
||||
WebClient.Builder builder = builder();
|
||||
WebClient serviceClient = builder.baseUrl("http://localhost:80/app").build();
|
||||
WebClient serviceClient = builder.baseUrl("http://localhost:32321/app").build();
|
||||
|
||||
Boolean[] value = new Boolean[1];
|
||||
await().pollInterval(Duration.ofSeconds(3)).atMost(Duration.ofSeconds(240)).until(() -> {
|
||||
@@ -173,13 +172,12 @@ class ConfigurationWatcherBusKafkaIT {
|
||||
private void app(Phase phase) {
|
||||
V1Deployment deployment = (V1Deployment) util.yaml("app/app-deployment.yaml");
|
||||
V1Service service = (V1Service) util.yaml("app/app-service.yaml");
|
||||
V1Ingress ingress = (V1Ingress) util.yaml("ingress/ingress.yaml");
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, ingress, true);
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, true);
|
||||
}
|
||||
else if (phase.equals(Phase.DELETE)) {
|
||||
util.deleteAndWait(NAMESPACE, deployment, service, ingress);
|
||||
util.deleteAndWait(NAMESPACE, deployment, service);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,10 +186,10 @@ class ConfigurationWatcherBusKafkaIT {
|
||||
V1Service service = (V1Service) util.yaml("config-watcher/watcher-kus-kafka-service.yaml");
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, null, true);
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, true);
|
||||
}
|
||||
else if (phase.equals(Phase.DELETE)) {
|
||||
util.deleteAndWait(NAMESPACE, deployment, service, null);
|
||||
util.deleteAndWait(NAMESPACE, deployment, service);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ spec:
|
||||
- name: http
|
||||
port: 8081
|
||||
targetPort: 8081
|
||||
nodePort: 32321
|
||||
selector:
|
||||
app: app
|
||||
type: ClusterIP
|
||||
type: NodePort
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: it-ingress-app
|
||||
namespace: default
|
||||
spec:
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /app
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: app
|
||||
port:
|
||||
number: 8081
|
||||
@@ -20,7 +20,6 @@ import java.time.Duration;
|
||||
import java.util.Objects;
|
||||
|
||||
import io.kubernetes.client.openapi.models.V1Deployment;
|
||||
import io.kubernetes.client.openapi.models.V1Ingress;
|
||||
import io.kubernetes.client.openapi.models.V1Secret;
|
||||
import io.kubernetes.client.openapi.models.V1SecretBuilder;
|
||||
import io.kubernetes.client.openapi.models.V1Service;
|
||||
@@ -103,7 +102,7 @@ class ConfigurationWatcherBusAmqpIT {
|
||||
util.createAndWait(NAMESPACE, null, secret);
|
||||
|
||||
WebClient.Builder builder = builder();
|
||||
WebClient serviceClient = builder.baseUrl("http://localhost:80/app").build();
|
||||
WebClient serviceClient = builder.baseUrl("http://localhost:32321/app").build();
|
||||
|
||||
Boolean[] value = new Boolean[1];
|
||||
await().pollInterval(Duration.ofSeconds(3)).atMost(Duration.ofSeconds(240)).until(() -> {
|
||||
@@ -122,13 +121,12 @@ class ConfigurationWatcherBusAmqpIT {
|
||||
private void appA(Phase phase) {
|
||||
V1Deployment deployment = (V1Deployment) util.yaml("app/app-deployment.yaml");
|
||||
V1Service service = (V1Service) util.yaml("app/app-service.yaml");
|
||||
V1Ingress ingress = (V1Ingress) util.yaml("ingress/ingress.yaml");
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, ingress, true);
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, true);
|
||||
}
|
||||
else if (phase.equals(Phase.DELETE)) {
|
||||
util.deleteAndWait(NAMESPACE, deployment, service, ingress);
|
||||
util.deleteAndWait(NAMESPACE, deployment, service);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,10 +135,10 @@ class ConfigurationWatcherBusAmqpIT {
|
||||
V1Service service = (V1Service) util.yaml("config-watcher/watcher-service.yaml");
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, null, true);
|
||||
util.createAndWait(NAMESPACE, null, deployment, service, true);
|
||||
}
|
||||
else if (phase.equals(Phase.DELETE)) {
|
||||
util.deleteAndWait(NAMESPACE, deployment, service, null);
|
||||
util.deleteAndWait(NAMESPACE, deployment, service);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ spec:
|
||||
- name: http
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
nodePort: 32321
|
||||
selector:
|
||||
app: app
|
||||
type: ClusterIP
|
||||
type: NodePort
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: it-ingress
|
||||
namespace: default
|
||||
spec:
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /app
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: app
|
||||
port:
|
||||
number: 8080
|
||||
@@ -105,11 +105,11 @@ abstract class K8sClientReloadBase {
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(namespace, configMap, null);
|
||||
util.createAndWait(namespace, imageName, deployment, service, null, true);
|
||||
util.createAndWait(namespace, imageName, deployment, service, true);
|
||||
}
|
||||
else {
|
||||
util.deleteAndWait(namespace, configMap, null);
|
||||
util.deleteAndWait(namespace, deployment, service, null);
|
||||
util.deleteAndWait(namespace, deployment, service);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -122,11 +122,11 @@ abstract class K8sClientReloadBase {
|
||||
|
||||
if (phase.equals(Phase.CREATE)) {
|
||||
util.createAndWait(namespace, null, secret);
|
||||
util.createAndWait(namespace, imageName, deployment, service, null, true);
|
||||
util.createAndWait(namespace, imageName, deployment, service, true);
|
||||
}
|
||||
else {
|
||||
util.deleteAndWait(namespace, null, secret);
|
||||
util.deleteAndWait(namespace, deployment, service, null);
|
||||
util.deleteAndWait(namespace, deployment, service);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user