k3s: update Go version linker flags

We missed that flags were added in the past up to the point where a
missing flag for the default Helm job now blocks updates.

See
https://github.com/k3s-io/k3s/commit/4116b53e867fac659c43a3b9ca5cf112bbd101f4
This commit is contained in:
Robert Rose
2026-01-02 14:34:43 +01:00
parent 0cc8862013
commit be4ee5cc75
5 changed files with 90 additions and 19 deletions
@@ -11,5 +11,11 @@
k3sCNISha256 = "04xig5spp81l81781ixmk99ghiz8lk0p16zhcbja5mslfdjmc7vg";
containerdVersion = "2.1.5-k3s1.32";
containerdSha256 = "1fzld9q0ycfg9b3054qg70mif1p6i7xqikcbabrmxapk81fy83kn";
containerdPackage = "";
criCtlVersion = "1.31.0-k3s2";
flannelVersion = "";
flannelPluginVersion = "";
kubeRouterVersion = "";
criDockerdVersion = "";
helmJobVersion = "";
}
@@ -11,5 +11,11 @@
k3sCNISha256 = "04xig5spp81l81781ixmk99ghiz8lk0p16zhcbja5mslfdjmc7vg";
containerdVersion = "2.1.5-k3s1.33";
containerdSha256 = "15iw6px3710rlsx7j933i07qd4a2r7caagfjbhhfcp33m9k19v7h";
containerdPackage = "";
criCtlVersion = "1.33.0-k3s2";
flannelVersion = "";
flannelPluginVersion = "";
kubeRouterVersion = "";
criDockerdVersion = "";
helmJobVersion = "";
}
@@ -11,5 +11,11 @@
k3sCNISha256 = "04xig5spp81l81781ixmk99ghiz8lk0p16zhcbja5mslfdjmc7vg";
containerdVersion = "2.1.5-k3s1";
containerdSha256 = "0n0g58d352i8wz0bqn87vgrd7z54j268cbmbp19fz68wmifm7fl8";
containerdPackage = "";
criCtlVersion = "1.34.0-k3s2";
flannelVersion = "";
flannelPluginVersion = "";
kubeRouterVersion = "";
criDockerdVersion = "";
helmJobVersion = "";
}
@@ -6,7 +6,7 @@ lib:
k3sCommit,
k3sRepoSha256 ? lib.fakeHash,
k3sVendorHash ? lib.fakeHash,
# taken from ./scripts/version.sh VERSION_ROOT https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L47
# taken from ./scripts/version.sh VERSION_ROOT
k3sRootVersion,
k3sRootSha256 ? lib.fakeHash,
# Based on the traefik charts here: https://github.com/k3s-io/k3s/blob/d71ab6317e22dd34673faa307a412a37a16767f6/scripts/download#L29-L32
@@ -14,15 +14,27 @@ lib:
chartVersions,
# Air gap container images that are released as assets with every k3s release
imagesVersions,
# taken from ./scripts/version.sh VERSION_CNIPLUGINS https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L45
# taken from ./scripts/version.sh VERSION_CNIPLUGINS
k3sCNIVersion,
k3sCNISha256 ? lib.fakeHash,
# taken from ./scripts/version.sh VERSION_CONTAINERD
containerdVersion,
containerdSha256 ? lib.fakeHash,
# taken from ./scripts/version.sh PKG_CONTAINERD_K3S
containerdPackage,
# run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
criCtlVersion,
updateScript ? null,
# taken from ./scripts/version.sh VERSION_FLANNEL
flannelVersion,
# taken from ./scripts/version.sh VERSION_FLANNEL_PLUGIN
flannelPluginVersion,
# taken from ./scripts/version.sh VERSION_KUBE_ROUTER
kubeRouterVersion,
# taken from ./scripts/version.sh VERSION_CRI_DOCKERD
criDockerdVersion,
# taken from ./scripts/version.sh VERSION_HELM_JOB
helmJobVersion,
}@attrs:
# builder.nix contains a "builder" expression that, given k3s version and hash
@@ -109,23 +121,58 @@ let
priority = 5;
};
# https://github.com/k3s-io/k3s/blob/5fb370e53e0014dc96183b8ecb2c25a61e891e76/scripts/build#L19-L40
versionldflags = [
"-X github.com/k3s-io/k3s/pkg/version.Version=v${k3sVersion}"
"-X github.com/k3s-io/k3s/pkg/version.GitCommit=${lib.substring 0 8 k3sCommit}"
"-X github.com/k3s-io/k3s/pkg/version.UpstreamGolang=go${go.version}"
"-X k8s.io/client-go/pkg/version.gitVersion=v${k3sVersion}"
"-X k8s.io/client-go/pkg/version.gitCommit=${k3sCommit}"
"-X k8s.io/client-go/pkg/version.gitTreeState=clean"
"-X k8s.io/client-go/pkg/version.buildDate=1970-01-01T01:01:01Z"
"-X k8s.io/component-base/version.gitVersion=v${k3sVersion}"
"-X k8s.io/component-base/version.gitCommit=${k3sCommit}"
"-X k8s.io/component-base/version.gitTreeState=clean"
"-X k8s.io/component-base/version.buildDate=1970-01-01T01:01:01Z"
"-X github.com/kubernetes-sigs/cri-tools/pkg/version.Version=v${criCtlVersion}"
"-X github.com/containerd/containerd/version.Version=v${containerdVersion}"
"-X github.com/containerd/containerd/version.Package=github.com/k3s-io/containerd"
];
# https://github.com/k3s-io/k3s/blob/fd48cd623340a4a6e3b2717dede368283cedec1a/scripts/build#L23-L59
versionldflags =
let
PKG = "github.com/k3s-io/k3s";
PKG_CONTAINERD = "github.com/containerd/containerd/v2";
PKG_CRICTL = "sigs.k8s.io/cri-tools/pkg";
PKG_K8S_BASE = "k8s.io/component-base";
PKG_K8S_CLIENT = "k8s.io/client-go/pkg";
PKG_CNI_PLUGINS = "github.com/containernetworking/plugins";
PKG_KUBE_ROUTER = "github.com/cloudnativelabs/kube-router/v2";
PKG_CRI_DOCKERD = "github.com/Mirantis/cri-dockerd";
PKG_ETCD = "go.etcd.io/etcd";
PKG_HELM_CONTROLLER = "github.com/k3s-io/helm-controller";
buildDate = "1970-01-01T01:01:01Z";
in
[
"-X ${PKG}/pkg/version.Version=${k3sVersion}"
"-X ${PKG}/pkg/version.GitCommit=${lib.substring 0 8 k3sCommit}"
"-X ${PKG}/pkg/version.UpstreamGolang=go${go.version}"
"-X ${PKG_K8S_CLIENT}/version.gitVersion=v${k3sVersion}"
"-X ${PKG_K8S_CLIENT}/version.gitCommit=${k3sCommit}"
"-X ${PKG_K8S_CLIENT}/version.gitTreeState=clean"
"-X ${PKG_K8S_CLIENT}/version.buildDate=${buildDate}"
"-X ${PKG_K8S_BASE}/version.gitVersion=v${k3sVersion}"
"-X ${PKG_K8S_BASE}/version.gitCommit=${k3sCommit}"
"-X ${PKG_K8S_BASE}/version.gitTreeState=clean"
"-X ${PKG_K8S_BASE}/version.buildDate=${buildDate}"
"-X ${PKG_CRICTL}/version.Version=${criCtlVersion}"
"-X ${PKG_CONTAINERD}/version.Version=${containerdVersion}"
"-X ${PKG_CONTAINERD}/version.Package=${containerdPackage}"
"-X ${PKG_CNI_PLUGINS}/pkg/utils/buildversion.BuildVersion=${k3sCNIVersion}"
"-X ${PKG_CNI_PLUGINS}/plugins/meta/flannel.Program=flannel"
"-X ${PKG_CNI_PLUGINS}/plugins/meta/flannel.Version=${flannelPluginVersion}+${flannelVersion}"
"-X ${PKG_CNI_PLUGINS}/plugins/meta/flannel.Commit=HEAD"
"-X ${PKG_CNI_PLUGINS}/plugins/meta/flannel.buildDate=${buildDate}"
"-X ${PKG_KUBE_ROUTER}/pkg/version.Version=${kubeRouterVersion}"
"-X ${PKG_KUBE_ROUTER}/pkg/version.BuildDate=${buildDate}"
"-X ${PKG_CRI_DOCKERD}/cmd/version.Version=${criDockerdVersion}"
"-X ${PKG_CRI_DOCKERD}/cmd/version.GitCommit=HEAD"
"-X ${PKG_CRI_DOCKERD}/cmd/version.BuildTime=${buildDate}"
"-X ${PKG_ETCD}/api/v3/version.GitSHA=HEAD"
"-X ${PKG_HELM_CONTROLLER}/pkg/controllers/chart.DefaultJobImage=rancher/klipper-helm:${helmJobVersion}"
];
# bundled into the k3s binary
traefik = {
@@ -119,7 +119,13 @@ cat >versions.nix <<EOF
k3sCNISha256 = "${CNIPLUGINS_SHA256}";
containerdVersion = "${VERSION_CONTAINERD:1}";
containerdSha256 = "${CONTAINERD_SHA256}";
containerdPackage = "${PKG_CONTAINERD_K3S}";
criCtlVersion = "${VERSION_CRICTL:1}";
flannelVersion = "${VERSION_FLANNEL}";
flannelPluginVersion = "${VERSION_FLANNEL_PLUGIN}";
kubeRouterVersion = "${VERSION_KUBE_ROUTER}";
criDockerdVersion = "${VERSION_CRI_DOCKERD}";
helmJobVersion = "${VERSION_HELM_JOB}";
}
EOF