From 5e279455216398845b9393703ffb167994a37fb4 Mon Sep 17 00:00:00 2001 From: gillespeiffer-db <263405958+gillespeiffer-db@users.noreply.github.com> Date: Thu, 25 Jun 2026 11:58:28 +0000 Subject: [PATCH] [SPARK-57693][BUILD] Simplify k8s-client deps management by using BOM Import the `io.fabric8:kubernetes-client-bom` Bill of Materials in the root `pom.xml` `` section (at the existing `${kubernetes-client.version}`) and drop the now-redundant `${kubernetes-client.version}` pins from the five `io.fabric8` dependency declarations in the Kubernetes resource-manager modules (`kubernetes-client`, `volcano-client`, and `volcano-model`). Mirror the BOM in `project/SparkBuild.scala`, the same way the existing `jackson-bom` and `grpc-bom` imports are handled, because sbt-pom-reader does not process import-scope BOMs. This collapses five individually-pinned version references into a single BOM import and keeps every Fabric8 artifact aligned to one coherent version set, following the pattern already used for `jackson-bom`, `jjwt-bom`, and `grpc-bom`. It is a no-op: the BOM manages `kubernetes-client`, `volcano-client`, and `volcano-model` at the same version that was pinned before, so the resolved versions are unchanged. --- pom.xml | 7 +++++++ project/SparkBuild.scala | 6 ++++-- resource-managers/kubernetes/core/pom.xml | 3 --- resource-managers/kubernetes/integration-tests/pom.xml | 2 -- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 0d158b4d04b6d..fa6bc317bdc67 100644 --- a/pom.xml +++ b/pom.xml @@ -1117,6 +1117,13 @@ pom import + + io.fabric8 + kubernetes-client-bom + ${kubernetes-client.version} + pom + import + org.apache.ws.xmlschema xmlschema-core diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index 1863ac0842458..724b42942c7e5 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -1282,7 +1282,9 @@ object DependencyOverrides { lazy val jacksonDeps = Bom.dependencies("com.fasterxml.jackson" % "jackson-bom" % jacksonVersion) lazy val grpcVersion = sys.props.get("io.grpc.version").getOrElse("1.76.0") lazy val grpcDeps = Bom.dependencies("io.grpc" % "grpc-bom" % grpcVersion) - lazy val settings = jacksonDeps ++ grpcDeps ++ Seq( + lazy val k8sClientVersion = sys.props.get("kubernetes-client.version").getOrElse("7.7.0") + lazy val k8sClientDeps = Bom.dependencies("io.fabric8" % "kubernetes-client-bom" % k8sClientVersion) + lazy val settings = jacksonDeps ++ grpcDeps ++ k8sClientDeps ++ Seq( dependencyOverrides ++= { val guavaVersion = sys.props.get("guava.version").getOrElse( SbtPomKeys.effectivePom.value.getProperties.get("guava.version").asInstanceOf[String]) @@ -1304,7 +1306,7 @@ object DependencyOverrides { "org.slf4j" % "slf4j-api" % slf4jVersion, "org.tukaani" % "xz" % xzVersion, "org.scala-lang" % "scalap" % scalaVersion.value - ) ++ jacksonDeps.key.value ++ grpcDeps.key.value + ) ++ jacksonDeps.key.value ++ grpcDeps.key.value ++ k8sClientDeps.key.value } ) } diff --git a/resource-managers/kubernetes/core/pom.xml b/resource-managers/kubernetes/core/pom.xml index 26eba17295231..b640b60c4eab9 100644 --- a/resource-managers/kubernetes/core/pom.xml +++ b/resource-managers/kubernetes/core/pom.xml @@ -41,12 +41,10 @@ io.fabric8 volcano-model - ${kubernetes-client.version} io.fabric8 volcano-client - ${kubernetes-client.version} @@ -111,7 +109,6 @@ io.fabric8 kubernetes-client - ${kubernetes-client.version} com.fasterxml.jackson.core diff --git a/resource-managers/kubernetes/integration-tests/pom.xml b/resource-managers/kubernetes/integration-tests/pom.xml index fa516ca9064c9..68abadb9c883a 100644 --- a/resource-managers/kubernetes/integration-tests/pom.xml +++ b/resource-managers/kubernetes/integration-tests/pom.xml @@ -66,7 +66,6 @@ io.fabric8 kubernetes-client - ${kubernetes-client.version} io.vertx @@ -232,7 +231,6 @@ io.fabric8 volcano-client - ${kubernetes-client.version}