kubernetes-controller-tools: set version

controller-gen likes to embed its internal version in generated files.
As such, while the generated code is compile time equivalent to official
releases, there is some thrashing if some users use nix and others us
upstream artefacts. This change patches the version package and runtime
value via ldflags.
This commit is contained in:
Colin Arnott 2022-12-12 08:43:44 +00:00
parent 3b7307700e
commit d2e710716a
No known key found for this signature in database
GPG key ID: 0447A663F7F3E236
2 changed files with 31 additions and 0 deletions

View file

@ -11,8 +11,16 @@ buildGoModule rec {
sha256 = "sha256-244o+QZ0BGVe8t8AWf1wU6VHgYyzkATpr5ZTbZezk10=";
};
patches = [ ./version.patch ];
vendorSha256 = "sha256-sVdSKu6TDGIDV2o+kuCvGCItbFe9MwlM2Qjiz8n2rZU=";
ldflags = [
"-s"
"-w"
"-X sigs.k8s.io/controller-tools/pkg/version.version=v${version}"
];
doCheck = false;
subPackages = [

View file

@ -0,0 +1,23 @@
diff --git a/pkg/version/version.go b/pkg/version/version.go
index 09c8efcf..b9ec798a 100644
--- a/pkg/version/version.go
+++ b/pkg/version/version.go
@@ -20,14 +20,12 @@ import (
"runtime/debug"
)
+var version string
+
// Version returns the version of the main module
func Version() string {
- info, ok := debug.ReadBuildInfo()
- if !ok || info == nil || info.Main.Version == "" {
- // binary has not been built with module support or doesn't contain a version.
- return "(unknown)"
- }
- return info.Main.Version
+ _ = debug.ReadBuildInfo
+ return version
}
// Print prints the main module version on stdout.