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
2 changed files with 31 additions and 0 deletions
@@ -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 = [
@@ -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.