kubectl: add v1.30.0 -> v1.32.3 (#49082)

* kubectl: add all versions currently supported upstream

* kubectl: build same way as kubernetes

* kubectl: revert back to GoPackage

* kubectl: fix version command

* kubectl: add v1.30.11, v1.31.7, v1.32.3

* kubectl: remove new deprecated versions

* kubectl: refactor build deps
This commit is contained in:
Robert Maaskant 2025-03-18 18:16:57 +01:00 committed by GitHub
parent 9c255381b1
commit 33cd7d6033
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -11,20 +11,68 @@ class Kubectl(GoPackage):
"""
homepage = "https://kubernetes.io"
url = "https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.27.0.tar.gz"
url = "https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.32.2.tar.gz"
maintainers("alecbcs")
license("Apache-2.0")
version("1.32.0", sha256="3793859c53f09ebc92e013ea858b8916cc19d7fe288ec95882dada4e5a075d08")
version("1.31.1", sha256="83094915698a9c24f93d1ffda3f17804a4024d3b65eabf681e77a62b35137208")
version("1.31.0", sha256="6679eb90815cc4c3bef6c1b93f7a8451bf3f40d003f45ab57fdc9f8c4e8d4b4f")
version("1.27.1", sha256="3a3f7c6b8cf1d9f03aa67ba2f04669772b1205b89826859f1636062d5f8bec3f")
version("1.27.0", sha256="536025dba2714ee5e940bb0a6b1df9ca97c244fa5b00236e012776a69121c323")
version("1.32.3", sha256="b1ed5abe78a626804aadc49ecb8ade6fd33b27ab8c23d43cd59dc86f6462ac09")
version("1.31.7", sha256="92005ebd010a8d4fe3a532444c4645840e0af486062611a4d9c8d862414c3f56")
version("1.30.11", sha256="f30e4082b6a554d4a2bfedd8b2308a5e6012287e15bec94f72987f717bab4133")
depends_on("bash", type="build")
depends_on("go@1.22:", type="build", when="@1.30:")
depends_on("go@1.23:", type="build", when="@1.32:")
with default_args(deprecated=True):
version(
"1.32.0", sha256="3793859c53f09ebc92e013ea858b8916cc19d7fe288ec95882dada4e5a075d08"
)
version(
"1.31.1", sha256="83094915698a9c24f93d1ffda3f17804a4024d3b65eabf681e77a62b35137208"
)
version(
"1.31.0", sha256="6679eb90815cc4c3bef6c1b93f7a8451bf3f40d003f45ab57fdc9f8c4e8d4b4f"
)
version(
"1.27.1", sha256="3a3f7c6b8cf1d9f03aa67ba2f04669772b1205b89826859f1636062d5f8bec3f"
)
version(
"1.27.0", sha256="536025dba2714ee5e940bb0a6b1df9ca97c244fa5b00236e012776a69121c323"
)
with default_args(type="build"):
depends_on("bash")
depends_on("go@1.23:", when="@1.32:")
depends_on("go@1.22:", when="@1.30:")
depends_on("go@1.21:", when="@1.29:")
depends_on("go@1.20:", when="@1.27:")
build_directory = "cmd/kubectl"
# Required to correctly set the version
# Method discovered by following the trail below
#
# 1. https://github.com/kubernetes/kubernetes/blob/v1.32.2/Makefile#L1
# 2. https://github.com/kubernetes/kubernetes/blob/v1.32.2/build/root/Makefile#L97
# 3. https://github.com/kubernetes/kubernetes/blob/v1.32.2/hack/make-rules/build.sh#L25
# 4. https://github.com/kubernetes/kubernetes/blob/v1.32.2/hack/lib/init.sh#L61
# 5. https://github.com/kubernetes/kubernetes/blob/v1.32.2/hack/lib/version.sh#L151-L183
@property
def build_args(self):
kube_ldflags = [
f"-X 'k8s.io/client-go/pkg/version.gitVersion=v{self.version}'",
f"-X 'k8s.io/client-go/pkg/version.gitMajor={self.version.up_to(1)}'",
f"-X 'k8s.io/client-go/pkg/version.gitMinor={str(self.version).split('.')[1]}'",
f"-X 'k8s.io/component-base/version.gitVersion=v{self.version}'",
f"-X 'k8s.io/component-base/version.gitMajor={self.version.up_to(1)}'",
f"-X 'k8s.io/component-base/version.gitMinor={str(self.version).split('.')[1]}'",
]
args = super().build_args
if "-ldflags" in args:
ldflags_index = args.index("-ldflags") + 1
args[ldflags_index] = args[ldflags_index] + " " + " ".join(kube_ldflags)
else:
args.extend(["-ldflags", " ".join(kube_ldflags)])
return args