Skip to content

Commit 0ca1c25

Browse files
committed
k3s: source k3s version.sh in update script to get component versions
Sourcing the upstream version script is easier and more reliable than grepping for component versions. This also fixes the containerd version used for 1_31 and 1_32, the update script set them wrongly previously.
1 parent 9aa8265 commit 0ca1c25

File tree

3 files changed

+25
-54
lines changed

3 files changed

+25
-54
lines changed

pkgs/applications/networking/cluster/k3s/1_31/versions.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
k3sRootSha256 = "0svbi42agqxqh5q2ri7xmaw2a2c70s7q5y587ls0qkflw5vx4sl7";
1010
k3sCNIVersion = "1.6.0-k3s1";
1111
k3sCNISha256 = "0g7zczvwba5xqawk37b0v96xysdwanyf1grxn3l3lhxsgjjsmkd7";
12-
containerdVersion = "1.7.23-k3s2";
13-
containerdSha256 = "0lp9vxq7xj74wa7hbivvl5hwg2wzqgsxav22wa0p1l7lc1dqw8dm";
12+
containerdVersion = "2.0.2-k3s2";
13+
containerdSha256 = "1883srp3rlap0a6rx5dnbnxl67aijbymjrqdg7zg3a162j21xz3s";
1414
criCtlVersion = "1.31.0-k3s2";
1515
}

pkgs/applications/networking/cluster/k3s/1_32/versions.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
k3sRootSha256 = "0svbi42agqxqh5q2ri7xmaw2a2c70s7q5y587ls0qkflw5vx4sl7";
1010
k3sCNIVersion = "1.6.0-k3s1";
1111
k3sCNISha256 = "0g7zczvwba5xqawk37b0v96xysdwanyf1grxn3l3lhxsgjjsmkd7";
12-
containerdVersion = "1.7.23-k3s2";
13-
containerdSha256 = "0lp9vxq7xj74wa7hbivvl5hwg2wzqgsxav22wa0p1l7lc1dqw8dm";
12+
containerdVersion = "2.0.2-k3s2";
13+
containerdSha256 = "1883srp3rlap0a6rx5dnbnxl67aijbymjrqdg7zg3a162j21xz3s";
1414
criCtlVersion = "1.31.0-k3s2";
1515
}

pkgs/applications/networking/cluster/k3s/update-script.sh

Lines changed: 21 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ trap "rm -rf ${WORKDIR}" EXIT
1111
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/
1212
NIXPKGS_K3S_PATH=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
1313
OLD_VERSION="$(nix-instantiate --eval -E "with import $NIXPKGS_ROOT. {}; k3s_1_${MINOR_VERSION}.version or (builtins.parseDrvName k3s_1_${MINOR_VERSION}.name).version" | tr -d '"')"
14-
cd ${NIXPKGS_K3S_PATH}
15-
16-
cd 1_${MINOR_VERSION}
17-
1814

1915
LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
2016
curl --silent -f ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
@@ -31,18 +27,24 @@ K3S_COMMIT=$(curl --silent -f ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
3127
https://api.github.com/repos/k3s-io/k3s/git/refs/tags \
3228
| jq -r "map(select(.ref == \"refs/tags/${LATEST_TAG_NAME}\")) | .[0] | .object.sha")
3329

34-
K3S_REPO_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/k3s-io/k3s/archive/refs/tags/${LATEST_TAG_NAME}.tar.gz)
35-
36-
FILE_SCRIPTS_DOWNLOAD=${WORKDIR}/scripts-download
37-
curl --silent -f https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts/download > $FILE_SCRIPTS_DOWNLOAD
30+
PREFETCH_META=$(nix-prefetch-url --unpack --print-path https://github.com/k3s-io/k3s/archive/refs/tags/${LATEST_TAG_NAME}.tar.gz)
31+
K3S_STORE_PATH=${PREFETCH_META#*$'\n'}
32+
K3S_REPO_SHA256=${PREFETCH_META%$'\n'*}
3833

39-
FILE_SCRIPTS_VERSION=${WORKDIR}/scripts-version.sh
40-
curl --silent -f https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts/version.sh > $FILE_SCRIPTS_VERSION
34+
cd "$K3S_STORE_PATH"
35+
# Set the DRONE variables as they are expected to be set in version.sh
36+
DRONE_TAG="$LATEST_TAG_NAME"
37+
DRONE_COMMIT="$K3S_COMMIT"
38+
source "${K3S_STORE_PATH}/scripts/version.sh"
4139

42-
FILE_TRAEFIK_MANIFEST=${WORKDIR}/traefik.yml
43-
curl --silent -f -o "$FILE_TRAEFIK_MANIFEST" https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/manifests/traefik.yaml
40+
K3S_ROOT_SHA256=$(nix-prefetch-url --quiet --unpack \
41+
"https://github.com/k3s-io/k3s-root/releases/download/${VERSION_ROOT}/k3s-root-amd64.tar")
42+
CNIPLUGINS_SHA256=$(nix-prefetch-url --quiet --unpack \
43+
"https://github.com/rancher/plugins/archive/refs/tags/${VERSION_CNIPLUGINS}.tar.gz")
44+
CONTAINERD_SHA256=$(nix-prefetch-url --quiet --unpack \
45+
"https://github.com/k3s-io/containerd/archive/refs/tags/${VERSION_CONTAINERD}.tar.gz")
4446

45-
CHART_FILES=( $(yq eval --no-doc .spec.chart "$FILE_TRAEFIK_MANIFEST" | xargs -n1 basename) )
47+
CHART_FILES=( $(yq eval --no-doc .spec.chart "${K3S_STORE_PATH}/manifests/traefik.yaml" | xargs -n1 basename) )
4648
# These files are:
4749
# 1. traefik-crd-20.3.1+up20.3.0.tgz
4850
# 2. traefik-20.3.1+up20.3.0.tgz
@@ -53,6 +55,8 @@ if [[ "${#CHART_FILES[@]}" != "2" ]]; then
5355
exit 1
5456
fi
5557

58+
cd "${NIXPKGS_K3S_PATH}/1_${MINOR_VERSION}"
59+
5660
CHARTS_URL=https://k3s.io/k3s-charts/assets
5761
# Get metadata for both files
5862
rm -f chart-versions.nix.update
@@ -95,39 +99,6 @@ while read -r name url; do
9599
'{$name: {"url": $url, "sha256": $sha256}}'
96100
done <<<"${IMAGES_ARCHIVES}" | jq --slurp 'reduce .[] as $item ({}; . * $item)' > images-versions.json
97101

98-
FILE_GO_MOD=${WORKDIR}/go.mod
99-
curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/go.mod > $FILE_GO_MOD
100-
101-
102-
K3S_ROOT_VERSION=$(grep 'VERSION_ROOT=' ${FILE_SCRIPTS_VERSION} \
103-
| cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//')
104-
K3S_ROOT_SHA256=$(nix-prefetch-url --quiet --unpack \
105-
"https://github.com/k3s-io/k3s-root/releases/download/v${K3S_ROOT_VERSION}/k3s-root-amd64.tar")
106-
107-
CNIPLUGINS_VERSION=$(grep 'VERSION_CNIPLUGINS=' ${FILE_SCRIPTS_VERSION} \
108-
| cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//')
109-
CNIPLUGINS_SHA256=$(nix-prefetch-url --quiet --unpack \
110-
"https://github.com/rancher/plugins/archive/refs/tags/v${CNIPLUGINS_VERSION}.tar.gz")
111-
112-
# mimics https://github.com/k3s-io/k3s/blob/v1.26.5%2Bk3s1/scripts/version.sh#L25
113-
CONTAINERD_VERSION=$(grep github.com/containerd/containerd ${FILE_GO_MOD} \
114-
| head -n1 | awk '{print $4}' | sed -e 's/^v//')
115-
CONTAINERD_SHA256=$(nix-prefetch-url --quiet --unpack \
116-
"https://github.com/k3s-io/containerd/archive/refs/tags/v${CONTAINERD_VERSION}.tar.gz")
117-
118-
# The repository of "cri-tools" changes for 1.31.x, this can likely be removed in future releases
119-
if [ "$MINOR_VERSION" -gt 30 ]; then
120-
CRI_CTL_REPO=sigs.k8s.io
121-
else
122-
CRI_CTL_REPO=github.com/kubernetes-sigs
123-
fi
124-
CRI_CTL_VERSION=$(grep "$CRI_CTL_REPO/cri-tools" ${FILE_GO_MOD} \
125-
| head -n1 | awk '{print $4}' | sed -e 's/"//g' -e 's/^v//')
126-
127-
setKV () {
128-
sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ${NIXPKGS_K3S_PATH}default.nix
129-
}
130-
131102
FAKE_HASH="sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
132103

133104
cat >versions.nix <<EOF
@@ -138,13 +109,13 @@ cat >versions.nix <<EOF
138109
k3sVendorHash = "${FAKE_HASH}";
139110
chartVersions = import ./chart-versions.nix;
140111
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
141-
k3sRootVersion = "${K3S_ROOT_VERSION}";
112+
k3sRootVersion = "${VERSION_ROOT:1}";
142113
k3sRootSha256 = "${K3S_ROOT_SHA256}";
143-
k3sCNIVersion = "${CNIPLUGINS_VERSION}";
114+
k3sCNIVersion = "${VERSION_CNIPLUGINS:1}";
144115
k3sCNISha256 = "${CNIPLUGINS_SHA256}";
145-
containerdVersion = "${CONTAINERD_VERSION}";
116+
containerdVersion = "${VERSION_CONTAINERD:1}";
146117
containerdSha256 = "${CONTAINERD_SHA256}";
147-
criCtlVersion = "${CRI_CTL_VERSION}";
118+
criCtlVersion = "${VERSION_CRICTL:1}";
148119
}
149120
EOF
150121

0 commit comments

Comments
 (0)