diff --git a/.github/workflows/composites/fabric8-istio/action.yaml b/.github/workflows/composites/fabric8-istio/action.yaml deleted file mode 100644 index 5b053696..00000000 --- a/.github/workflows/composites/fabric8-istio/action.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# build a lightweight project so that dependencies for the -# maven-surefire-plugin are downloaded and thus cached also - -name: build fabric8 istio project -description: build fabric8 istio projects -runs: - using: "composite" - steps: - - name: build fabric8 istio project - shell: bash - run: | - cd spring-cloud-kubernetes-fabric8-istio - .././mvnw -s ../.settings.xml clean install -U - cd .. diff --git a/.github/workflows/composites/maven-build-with-dry-run-for-tests/action.yaml b/.github/workflows/composites/maven-build-with-dry-run-for-tests/action.yaml index bc515129..15b6b7f1 100644 --- a/.github/workflows/composites/maven-build-with-dry-run-for-tests/action.yaml +++ b/.github/workflows/composites/maven-build-with-dry-run-for-tests/action.yaml @@ -12,6 +12,10 @@ runs: -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=error \ -T 1C > /tmp/tests.txt + - name: show result + shell: bash + run: cat /tmp/tests.txt + - name: upload test uses: actions/upload-artifact@v3 with: diff --git a/.github/workflows/maven.yaml b/.github/workflows/maven.yaml index 14ac8603..d29b293f 100644 --- a/.github/workflows/maven.yaml +++ b/.github/workflows/maven.yaml @@ -31,9 +31,6 @@ jobs: - name: cache local maven repository uses: ./.github/workflows/composites/cache - - name: build fabric8 istio - uses: ./.github/workflows/composites/fabric8-istio - - name: maven build with dry-run for tests uses: ./.github/workflows/composites/maven-build-with-dry-run-for-tests diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-configmap-polling-reload/src/test/resources/deployment-mount.yaml b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-configmap-polling-reload/src/test/resources/deployment-mount.yaml index 14053302..9f3f4724 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-configmap-polling-reload/src/test/resources/deployment-mount.yaml +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-configmap-polling-reload/src/test/resources/deployment-mount.yaml @@ -20,10 +20,16 @@ spec: httpGet: port: 8080 path: /actuator/health/readiness + initialDelaySeconds: 10 + periodSeconds: 2 + failureThreshold: 3 livenessProbe: httpGet: port: 8080 path: /actuator/health/liveness + initialDelaySeconds: 10 + periodSeconds: 2 + failureThreshold: 3 ports: - containerPort: 8080 diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryClientIT.java b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryClientIT.java index a37c4467..0d85418f 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryClientIT.java +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryClientIT.java @@ -72,6 +72,7 @@ class KubernetesClientDiscoveryClientIT { Commons.loadSpringCloudKubernetesImage(IMAGE_NAME, K3S); util = new Util(K3S); + Commons.systemPrune(); } @AfterAll diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryFilterIT.java b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryFilterIT.java index 3895434c..93c27a57 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryFilterIT.java +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryFilterIT.java @@ -77,6 +77,7 @@ class KubernetesClientDiscoveryFilterIT { Commons.loadSpringCloudKubernetesImage(IMAGE_NAME, K3S); util = new Util(K3S); + Commons.systemPrune(); } @BeforeEach diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryHealthIT.java b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryHealthIT.java index 6346d559..13adeafa 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryHealthIT.java +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryHealthIT.java @@ -72,6 +72,7 @@ class KubernetesClientDiscoveryHealthIT { Commons.loadSpringCloudKubernetesImage(IMAGE_NAME, K3S); util = new Util(K3S); + Commons.systemPrune(); util.setUp(NAMESPACE); } diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryMultipleSelectiveNamespacesIT.java b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryMultipleSelectiveNamespacesIT.java index 76b050d3..328383eb 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryMultipleSelectiveNamespacesIT.java +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryMultipleSelectiveNamespacesIT.java @@ -75,6 +75,7 @@ class KubernetesClientDiscoveryMultipleSelectiveNamespacesIT { Commons.loadSpringCloudKubernetesImage(IMAGE_NAME, K3S); util = new Util(K3S); + Commons.systemPrune(); util.createNamespace(NAMESPACE_A); util.createNamespace(NAMESPACE_B); diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryPodMetadataIT.java b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryPodMetadataIT.java index b6439c4a..bdfaccaa 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryPodMetadataIT.java +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoveryPodMetadataIT.java @@ -67,6 +67,7 @@ class KubernetesClientDiscoveryPodMetadataIT { Commons.loadSpringCloudKubernetesImage(IMAGE_NAME, K3S); util = new Util(K3S); + Commons.systemPrune(); } @AfterAll diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoverySingleSelectiveNamespaceIT.java b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoverySingleSelectiveNamespaceIT.java index a75d702e..458b204f 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoverySingleSelectiveNamespaceIT.java +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-discovery-it/src/test/java/org/springframework/cloud/kubernetes/client/discovery/it/KubernetesClientDiscoverySingleSelectiveNamespaceIT.java @@ -74,6 +74,7 @@ class KubernetesClientDiscoverySingleSelectiveNamespaceIT { Commons.loadSpringCloudKubernetesImage(IMAGE_NAME, K3S); util = new Util(K3S); + Commons.systemPrune(); util.createNamespace(NAMESPACE_A); util.createNamespace(NAMESPACE_B); diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-discoveryclient-it/src/test/resources/client/spring-cloud-kubernetes-discoveryclient-it-deployment.yaml b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-discoveryclient-it/src/test/resources/client/spring-cloud-kubernetes-discoveryclient-it-deployment.yaml index 7e47e543..3ae56bfb 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-discoveryclient-it/src/test/resources/client/spring-cloud-kubernetes-discoveryclient-it-deployment.yaml +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-discoveryclient-it/src/test/resources/client/spring-cloud-kubernetes-discoveryclient-it-deployment.yaml @@ -20,9 +20,15 @@ spec: httpGet: port: 8080 path: /discoveryclient-it/actuator/health/readiness + initialDelaySeconds: 10 + periodSeconds: 2 + failureThreshold: 3 livenessProbe: httpGet: port: 8080 path: /discoveryclient-it/actuator/health/liveness + initialDelaySeconds: 10 + periodSeconds: 2 + failureThreshold: 3 ports: - containerPort: 8080 diff --git a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/Commons.java b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/Commons.java index dd737834..3fb9903b 100644 --- a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/Commons.java +++ b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/Commons.java @@ -162,6 +162,19 @@ public final class Commons { CONTAINER.execInContainer("crictl", "rmi", image); } + /** + * equivalent of 'docker system prune', but for crictl. + */ + public static void systemPrune() { + try { + CONTAINER.execInContainer("sh", "-c", + "crictl ps -a | grep -v Running | awk '{print $1}' | xargs crictl rm && crictl rmi --prune"); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + /** * validates that the provided image does exist in the local docker registry. */ diff --git a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java index fc9d5769..dbb0ebe8 100644 --- a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java +++ b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java @@ -138,6 +138,7 @@ public final class Util { e.printStackTrace(); LOG.info("events : " + events()); LOG.info("describe deployment : " + describeDeployment(deployment)); + LOG.info("node events : " + nodeEvents()); throw new RuntimeException(e); } } @@ -549,7 +550,7 @@ public final class Util { } private void waitForDeploymentPodsToBeDeleted(Map labels, String namespace) { - await().timeout(Duration.ofSeconds(90)).until(() -> { + await().timeout(Duration.ofSeconds(180)).until(() -> { try { int currentNumberOfPods = coreV1Api.listNamespacedPod(namespace, null, null, null, null, labelSelector(labels), null, null, null, null, null).getItems().size(); @@ -620,6 +621,18 @@ public final class Util { } } + private String nodeEvents() { + try { + String nodeName = container.execInContainer("sh", "-c", "kubectl get nodes --no-headers | awk '{print $1}'") + .getStdout(); + LOG.info("nodeName : " + nodeName); + return container.execInContainer("sh", "-c", "kubectl describe node " + nodeName).getStdout(); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + private String describeDeployment(V1Deployment deployment) { try { return container