diff --git a/pkgs/applications/networking/cluster/k3s/1_32/versions.nix b/pkgs/applications/networking/cluster/k3s/1_32/versions.nix index d60771de68b2..9fee5f87e677 100644 --- a/pkgs/applications/networking/cluster/k3s/1_32/versions.nix +++ b/pkgs/applications/networking/cluster/k3s/1_32/versions.nix @@ -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 = ""; } diff --git a/pkgs/applications/networking/cluster/k3s/1_33/versions.nix b/pkgs/applications/networking/cluster/k3s/1_33/versions.nix index 83459b59dd75..e5943c31419c 100644 --- a/pkgs/applications/networking/cluster/k3s/1_33/versions.nix +++ b/pkgs/applications/networking/cluster/k3s/1_33/versions.nix @@ -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 = ""; } diff --git a/pkgs/applications/networking/cluster/k3s/1_34/versions.nix b/pkgs/applications/networking/cluster/k3s/1_34/versions.nix index 6e7d8df7cd9e..96778e2b9b5c 100644 --- a/pkgs/applications/networking/cluster/k3s/1_34/versions.nix +++ b/pkgs/applications/networking/cluster/k3s/1_34/versions.nix @@ -11,5 +11,11 @@ k3sCNISha256 = "04xig5spp81l81781ixmk99ghiz8lk0p16zhcbja5mslfdjmc7vg"; containerdVersion = "2.1.5-k3s1"; containerdSha256 = "0n0g58d352i8wz0bqn87vgrd7z54j268cbmbp19fz68wmifm7fl8"; + containerdPackage = ""; criCtlVersion = "1.34.0-k3s2"; + flannelVersion = ""; + flannelPluginVersion = ""; + kubeRouterVersion = ""; + criDockerdVersion = ""; + helmJobVersion = ""; } diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index 782460a6c02a..38835677408a 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -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 = { diff --git a/pkgs/applications/networking/cluster/k3s/update-script.sh b/pkgs/applications/networking/cluster/k3s/update-script.sh index ac4209ee8490..73c9b7348629 100755 --- a/pkgs/applications/networking/cluster/k3s/update-script.sh +++ b/pkgs/applications/networking/cluster/k3s/update-script.sh @@ -119,7 +119,13 @@ cat >versions.nix <