-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
Describe the bug
I'm using the Quarkus Kubernetes Client's Dev Service in order to integration test my Quarkus Kubernetes Operators. After migrating to Quarkus Operator SDK v7, I observed that I'm not able to run a shared dev service accross multiple integration anymore which worked nicely before.
My properties look as follows:
quarkus.kubernetes-client.devservices.enabled=true
quarkus.kubernetes-client.devservices.flavor=k3s
quarkus.kubernetes-client.devservices.override-kubeconfig=true
quarkus.kubernetes-client.devservices.shared=true
After further debugging, I noticed that this boolean https://github.com/quarkusio/quarkus/blob/main/extensions/kubernetes-client/deployment/src/main/java/io/quarkus/kubernetes/client/deployment/DevServicesKubernetesProcessor.java#L114 is always true in my tests which leads to the cluster being shutdown.
After noticing this, I looked at the equals method https://github.com/quarkusio/quarkus/blob/main/extensions/kubernetes-client/deployment/src/main/java/io/quarkus/kubernetes/client/deployment/DevServicesKubernetesProcessor.java#L429 and noticed that there is a check flavor == other.flavor
even though flavor is an Optional. For all other Optionals the equals method uses Objects.equals(...)
, so I assume Objects.equals(flavor, other.flavor)
would be required here as well so that the equals method works properly.
Expected behavior
When configuring a shared Kubernetes Dev Service, it should not be immediately shutdown after the first test case but only after all test case were executed.
Actual behavior
When executing multiple tests at once the Kubernetes Dev Service is shutdown after the first test immediately.
How to Reproduce?
Configure a Quarkus Kubernetes Dev Service in the same way as I did, run the application in the debugger and add a breakpoint here: https://github.com/quarkusio/quarkus/blob/main/extensions/kubernetes-client/deployment/src/main/java/io/quarkus/kubernetes/client/deployment/DevServicesKubernetesProcessor.java#L114 - shouldShutdownTheCluster
will always be true.
Output of uname -a
or ver
Darwin 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:30 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6020 arm64
Output of java -version
openjdk 24.0.1 2025-04-15
Quarkus version or git rev
3.25.1
Build tool (ie. output of mvnw --version
or gradlew --version
)
Gradle 8.14.2
Additional information
My Quarkus Kubernetes operators are written in Kotlin.