Skip to content

Commit 791d411

Browse files
committed
ACC-2065 Added null checks to make sure we drop out when a deployment/statfulset/replicaset does not exist yet, also fixes #23
1 parent 3e09754 commit 791d411

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/K8sTestUtils.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,14 @@ public static void waitUntilDeploymentsReady(int timeout, List<String> deploymen
5151
.atMost(timeout, SECONDS)
5252
.until(() -> deployments.stream()
5353
.map(name -> client.withName(name).get())
54-
.filter(deployment -> deployment.getStatus().getReplicas() -
55-
Objects.requireNonNullElse(deployment.getStatus().getReadyReplicas(), 0)
56-
> 0)
54+
.filter(deployment -> {
55+
if (deployment == null || deployment.getStatus() == null || deployment.getStatus().getReplicas() == null) {
56+
return true;
57+
}
58+
return deployment.getStatus().getReplicas() -
59+
Objects.requireNonNullElse(deployment.getStatus().getReadyReplicas(), 0)
60+
> 0;
61+
})
5762
.collect(Collectors.toSet()),
5863
Matchers.empty()
5964
);
@@ -82,9 +87,14 @@ public static void waitUntilReplicaSetsReady(int timeout, List<String> replicaSe
8287
.atMost(timeout, SECONDS)
8388
.until(() -> replicaSets.stream()
8489
.map(name -> client.withName(name).get())
85-
.filter(replicaset -> replicaset.getStatus().getReplicas() -
86-
Objects.requireNonNullElse(replicaset.getStatus().getReadyReplicas(), 0)
87-
> 0)
90+
.filter(replicaset -> {
91+
if (replicaset == null || replicaset.getStatus() == null || replicaset.getStatus().getReplicas() == null) {
92+
return true;
93+
}
94+
return replicaset.getStatus().getReplicas() -
95+
Objects.requireNonNullElse(replicaset.getStatus().getReadyReplicas(), 0)
96+
> 0;
97+
})
8898
.collect(Collectors.toSet()),
8999
Matchers.empty()
90100
);
@@ -105,9 +115,14 @@ public static void waitUntilStatefulSetsReady(int timeout, List<String> stateful
105115
.atMost(timeout, SECONDS)
106116
.until(() -> statefulSets.stream()
107117
.map(name -> client.withName(name).get())
108-
.filter(statefulSet -> statefulSet.getStatus().getReplicas() -
109-
Objects.requireNonNullElse(statefulSet.getStatus().getReadyReplicas(), 0)
110-
> 0)
118+
.filter(statefulSet -> {
119+
if (statefulSet == null || statefulSet.getStatus() == null || statefulSet.getStatus().getReplicas() == null) {
120+
return true;
121+
}
122+
return statefulSet.getStatus().getReplicas() -
123+
Objects.requireNonNullElse(statefulSet.getStatus().getReadyReplicas(), 0)
124+
> 0;
125+
})
111126
.collect(Collectors.toSet()),
112127
Matchers.empty()
113128
);

contentgrid-junit-jupiter-k8s/src/test/java/com/contentgrid/junit/jupiter/k8s/K8sTestUtilsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ void testWaitUntilDeploymentsReady() {
9999
kubernetesClient.apps().deployments().resource(deployment).create();
100100

101101
// Wait until the Deployment is ready
102-
K8sTestUtils.waitUntilDeploymentsReady(60, List.of("nginx-deployment"), kubernetesClient);
102+
K8sTestUtils.waitUntilDeploymentsReady(60, List.of("nginx-deployment", "bla"), kubernetesClient);
103103
assertEquals(2, kubernetesClient.apps().deployments().withName("nginx-deployment").get().getStatus().getReadyReplicas());
104104
System.out.println("Deployment is ready");
105105
}

0 commit comments

Comments
 (0)