Skip to content

Commit f676fd2

Browse files
committed
Merge branch 'faster-namespace-deletion' into cleanup-after-refactor-fabric8-tests
2 parents df46dc2 + 3bb163d commit f676fd2

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/FixedPortsK3sContainer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ final class FixedPortsK3sContainer extends K3sContainer {
4848
* Command to use when starting rancher. Without "server" option, traefik is not
4949
* installed
5050
*/
51-
private static final String RANCHER_COMMAND = "server";
51+
private static final String RANCHER_COMMAND = "server --disable=metric-server";
5252

5353
static final K3sContainer CONTAINER = new FixedPortsK3sContainer(DockerImageName.parse(RANCHER_VERSION))
5454
.configureFixedPorts()

spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.Map;
2323
import java.util.concurrent.TimeUnit;
2424

25+
import io.fabric8.kubernetes.api.model.APIService;
2526
import io.fabric8.kubernetes.api.model.ConfigMap;
2627
import io.fabric8.kubernetes.api.model.NamespaceBuilder;
2728
import io.fabric8.kubernetes.api.model.Pod;
@@ -207,6 +208,21 @@ public void createNamespace(String name) {
207208

208209
public void deleteNamespace(String name) {
209210
try {
211+
212+
// sometimes we get errors like :
213+
214+
// "message": "Discovery failed for some groups,
215+
// 1 failing: unable to retrieve the complete list of server APIs:
216+
// metrics.k8s.io/v1beta1: stale GroupVersion discovery: metrics.k8s.io/v1beta1"
217+
218+
// but even when it works OK, the finalizers are slowing down the deletion
219+
List<APIService> apiServices = client.apiServices().list().getItems();
220+
apiServices.stream()
221+
.map(apiService -> apiService.getMetadata().getName())
222+
.filter(apiServiceName -> apiServiceName.contains("metrics.k8s.io"))
223+
.findFirst()
224+
.ifPresent(apiServiceName -> client.apiServices().withName(apiServiceName).delete());
225+
210226
client.namespaces()
211227
.resource(new NamespaceBuilder().withNewMetadata().withName(name).and().build())
212228
.delete();

0 commit comments

Comments
 (0)