From 64910bb10d4111c11f00d95e3145b62e467b0907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Wed, 4 Nov 2026 12:17:06 -0800 Subject: [PATCH 1/4] feat: use the Vert.x HTTP client of the Fabric8 client by default The operator-framework artifact now brings kubernetes-httpclient-vertx-5, the default of the Fabric8 client itself, instead of kubernetes-httpclient-jdk. The migration guide describes how to keep using the JDK client. Co-Authored-By: Claude Sonnet 5.5 --- .../en/docs/migration/v5-7-migration.md | 29 +++++++++++++++++++ pom.xml | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/docs/content/en/docs/migration/v5-7-migration.md b/docs/content/en/docs/migration/v5-7-migration.md index a5fb257fd3..0034795e5c 100644 --- a/docs/content/en/docs/migration/v5-7-migration.md +++ b/docs/content/en/docs/migration/v5-7-migration.md @@ -41,3 +41,32 @@ Other notable Jackson 3 differences: ```java client.pods().withShardSelector((String) null); ``` + +## Default HTTP client is now Vert.x + +The `operator-framework` artifact now brings the Vert.x 5 based HTTP client of the Fabric8 client +(`kubernetes-httpclient-vertx-5`), which is also the default of the Fabric8 client itself, instead of +the JDK one (`kubernetes-httpclient-jdk`). If your operator doesn't declare an HTTP client +implementation of its own there is nothing to do, it gets the new default. To keep using the JDK +client, or to use another implementation, exclude the default from the `operator-framework` +dependency and add the one you want: + +```xml + + io.javaoperatorsdk + operator-framework + + + io.fabric8 + kubernetes-httpclient-vertx-5 + + + + + io.fabric8 + kubernetes-httpclient-jdk + +``` + +The implementations provided as part of the Fabric8 client all follow the +`kubernetes-httpclient-` pattern for their artifact identifier. diff --git a/pom.xml b/pom.xml index 7bb23fa1bd..6cfc9b84ee 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ ${java.version} java-operator-sdk https://sonarcloud.io - jdk + vertx-5 6.1.3 8.0.0 2.0.20 From 8aba5f6a84af2a04811232e010ee2f24db96ea67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Wed, 4 Nov 2026 21:23:51 +0100 Subject: [PATCH 2/4] Update kubernetes-httpclient-jdk version to 8.0.0 Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/content/en/docs/migration/v5-7-migration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/content/en/docs/migration/v5-7-migration.md b/docs/content/en/docs/migration/v5-7-migration.md index 0034795e5c..6e94700419 100644 --- a/docs/content/en/docs/migration/v5-7-migration.md +++ b/docs/content/en/docs/migration/v5-7-migration.md @@ -65,6 +65,7 @@ dependency and add the one you want: io.fabric8 kubernetes-httpclient-jdk + 8.0.0 ``` From fa9fe03849ed20c4ee58e5516d150815a3edeb5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Wed, 4 Nov 2026 12:39:53 -0800 Subject: [PATCH 3/4] fix: align remaining HTTP client dependencies with the Vert.x 5 default The tomcat sample and micrometer-support explicitly depended on kubernetes-httpclient-vertx (Vert.x 4), which clashed with kubernetes-httpclient-vertx-5 now brought by operator-framework. Drop the explicit dependency from the sample and make micrometer-support follow the fabric8-httpclient-impl.name property. Co-Authored-By: Claude Sonnet 5.5 --- micrometer-support/pom.xml | 2 +- sample-operators/tomcat-operator/pom.xml | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/micrometer-support/pom.xml b/micrometer-support/pom.xml index ae3c4d0be1..29dcf1f9f5 100644 --- a/micrometer-support/pom.xml +++ b/micrometer-support/pom.xml @@ -64,7 +64,7 @@ io.fabric8 - kubernetes-httpclient-vertx + kubernetes-httpclient-${fabric8-httpclient-impl.name} test diff --git a/sample-operators/tomcat-operator/pom.xml b/sample-operators/tomcat-operator/pom.xml index ea964a2b07..0a05fffc1c 100644 --- a/sample-operators/tomcat-operator/pom.xml +++ b/sample-operators/tomcat-operator/pom.xml @@ -53,10 +53,6 @@ - - io.fabric8 - kubernetes-httpclient-vertx - org.apache.logging.log4j log4j-slf4j2-impl From a8c44b3149ba21dce9d7ebebf2907153c29b6f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Wed, 4 Nov 2026 12:57:59 -0800 Subject: [PATCH 4/4] fix: default integration test HTTP client to vertx-5 and clarify migration guide The integration-tests workflow defaulted to the Vert.x 4 based client, so runs that did not pass http-client did not exercise the new default. The migration guide now names Vert.x 5 in the heading and explains how to update an exclusion of the previous default client. Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/integration-tests.yml | 2 +- docs/content/en/docs/migration/v5-7-migration.md | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 3f1353efea..d29d1f1d21 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -12,7 +12,7 @@ on: http-client: type: string required: false - default: 'vertx' + default: 'vertx-5' experimental: type: boolean required: false diff --git a/docs/content/en/docs/migration/v5-7-migration.md b/docs/content/en/docs/migration/v5-7-migration.md index 6e94700419..8d735c8acd 100644 --- a/docs/content/en/docs/migration/v5-7-migration.md +++ b/docs/content/en/docs/migration/v5-7-migration.md @@ -42,7 +42,7 @@ Other notable Jackson 3 differences: client.pods().withShardSelector((String) null); ``` -## Default HTTP client is now Vert.x +## Default HTTP client is now Vert.x 5 The `operator-framework` artifact now brings the Vert.x 5 based HTTP client of the Fabric8 client (`kubernetes-httpclient-vertx-5`), which is also the default of the Fabric8 client itself, instead of @@ -71,3 +71,10 @@ dependency and add the one you want: The implementations provided as part of the Fabric8 client all follow the `kubernetes-httpclient-` pattern for their artifact identifier. + +If your operator already replaced the default HTTP client, update the exclusion: excluding +`kubernetes-httpclient-jdk` no longer has any effect and `kubernetes-httpclient-vertx-5` would end up +on the classpath next to your implementation. This is especially important if you use the Vert.x 4 +based client (`kubernetes-httpclient-vertx`), since Vert.x 4 and Vert.x 5 cannot be used together. +If you want to keep the Vert.x 4 based client, use it in place of `kubernetes-httpclient-jdk` in the +snippet above.