Skip to content

Commit 69b52ad

Browse files
authored
v46 (#64)
* feat: automate dependency updates The Dockerfile encodes many fixed versions of dependencies. This commit adds a Go program that updates the versions of dependencies. * fix script for cargo-nextest- with release prefix * setupt-tools bump * add umoci * bump go/rust in actions * fixup * fmt * pin rust patch version for now * bump k3s images * bump helm, yq * Update actions/setup-rust/action.yml
1 parent 0724be8 commit 69b52ad

File tree

18 files changed

+336
-58
lines changed

18 files changed

+336
-58
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "linkerd-dev",
3-
"image": "ghcr.io/linkerd/dev:v45",
3+
"image": "ghcr.io/linkerd/dev:v46",
44
"customizations": {
55
"vscode": {
66
"extensions": [

.gitmodules

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
[submodule "linkerd2-proxy-api"]
2020
path = repos/linkerd2-proxy-api
2121
url = [email protected]:linkerd/linkerd2-proxy-api
22-
[submodule "k8s-gateway-api-rs"]
23-
path = repos/k8s-gateway-api-rs
24-
url = [email protected]:linkerd/k8s-gateway-api-rs
2522
[submodule "website"]
2623
path = repos/website
2724
url = [email protected]:linkerd/website

Dockerfile

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
## Base layers used to build images
55
##
66

7+
8+
ARG GO_TAG=1.24
9+
ARG RUST_TAG=1.88.0
10+
711
# These layers include Debian apt caches, so layers that extend `apt-base`
812
# should not be published. Instead, these layers should be used to provide
913
# cached data to individual `RUN` commands.
@@ -35,19 +39,19 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update
3539

3640
# j5j Turns JSON5 into plain old JSON (i.e. to be processed by jq).
3741
FROM apt-base as j5j
38-
ARG J5J_VERSION=v0.2.0
42+
ARG J5J_VERSION=v0.2.0 # repo=olix0r/j5j
3943
RUN url="https://github.com/olix0r/j5j/releases/download/${J5J_VERSION}/j5j-${J5J_VERSION}-x86_64-unknown-linux-musl.tar.gz" ; \
4044
scurl "$url" | tar zvxf - -C /usr/local/bin j5j
4145

4246
# just runs build/test recipes. Like `make` but a bit more ergonomic.
4347
FROM apt-base as just
44-
ARG JUST_VERSION=1.37.0
48+
ARG JUST_VERSION=1.41.0 # repo=casey/just
4549
RUN url="https://github.com/casey/just/releases/download/${JUST_VERSION}/just-${JUST_VERSION}-x86_64-unknown-linux-musl.tar.gz" ; \
4650
scurl "$url" | tar zvxf - -C /usr/local/bin just
4751

4852
# yq is kind of like jq, but for YAML.
4953
FROM apt-base as yq
50-
ARG YQ_VERSION=v4.44.5
54+
ARG YQ_VERSION=v4.46.1 # repo=mikefarah/yq
5155
RUN url="https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" ; \
5256
scurl -o /yq "$url" && chmod +x /yq
5357

@@ -63,26 +67,26 @@ COPY --link bin/scurl /bin/
6367

6468
# helm templates kubernetes manifests.
6569
FROM apt-base as helm
66-
ARG HELM_VERSION=v3.16.3
70+
ARG HELM_VERSION=v3.18.4 # repo=helm/helm
6771
RUN url="https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" ; \
6872
scurl "$url" | tar xzvf - --strip-components=1 -C /usr/local/bin linux-amd64/helm
6973

7074

7175
# helm-docs generates documentation from helm charts.
7276
FROM apt-base as helm-docs
73-
ARG HELM_DOCS_VERSION=v1.14.2
77+
ARG HELM_DOCS_VERSION=v1.14.2 # repo=norwoodj/helm-docs
7478
RUN url="https://github.com/norwoodj/helm-docs/releases/download/$HELM_DOCS_VERSION/helm-docs_${HELM_DOCS_VERSION#v}_Linux_x86_64.tar.gz" ; \
7579
scurl "$url" | tar xzvf - -C /usr/local/bin helm-docs
7680

7781
# kubectl controls kubernetes clusters.
7882
FROM apt-base as kubectl
79-
ARG KUBECTL_VERSION=v1.31.3
83+
ARG KUBECTL_VERSION=v1.33.2 # repo=kubernetes/kubernetes
8084
RUN url="https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" ; \
8185
scurl -o /usr/local/bin/kubectl "$url" && chmod +x /usr/local/bin/kubectl
8286

8387
# k3d runs kubernetes clusters in docker.
8488
FROM apt-base as k3d
85-
ARG K3D_VERSION=v5.7.5
89+
ARG K3D_VERSION=v5.8.3 # repo=rancher/k3d
8690
RUN url="https://raw.githubusercontent.com/rancher/k3d/$K3D_VERSION/install.sh" ; \
8791
scurl "$url" | USE_SUDO=false K3D_INSTALL_DIR=/usr/local/bin bash
8892
# just-k3d is a utility that encodes many of the common k3d commands we use.
@@ -94,7 +98,7 @@ COPY --link k3s-images.json "$K3S_IMAGES_JSON"
9498

9599
# step is a tool for managing certificates.
96100
FROM apt-base as step
97-
ARG STEP_VERSION=v0.28.2
101+
ARG STEP_VERSION=v0.28.6 # repo=smallstep/cli
98102
RUN url="https://dl.smallstep.com/gh-release/cli/gh-release-header/${STEP_VERSION}/step_linux_${STEP_VERSION#v}_amd64.tar.gz" ; \
99103
scurl "$url" | tar xzvf - --strip-components=2 -C /usr/local/bin step_"${STEP_VERSION#v}"/bin/step
100104

@@ -113,19 +117,19 @@ COPY --link --from=step /usr/local/bin/step /bin/
113117

114118
# actionlint lints github actions workflows.
115119
FROM apt-base as actionlint
116-
ARG ACTIONLINT_VERSION=v1.7.4
120+
ARG ACTIONLINT_VERSION=v1.7.7 # repo=rhysd/actionlint
117121
RUN url="https://github.com/rhysd/actionlint/releases/download/${ACTIONLINT_VERSION}/actionlint_${ACTIONLINT_VERSION#v}_linux_amd64.tar.gz" ; \
118122
scurl "$url" | tar xzvf - -C /usr/local/bin actionlint
119123

120124
# checksec checks binaries for security issues.
121125
FROM apt-base as checksec
122-
ARG CHECKSEC_VERSION=2.5.0
123-
RUN url="https://raw.githubusercontent.com/slimm609/checksec.sh/${CHECKSEC_VERSION}/checksec" ; \
126+
ARG CHECKSEC_VERSION=2.7.1 # ignore
127+
RUN url="https://raw.githubusercontent.com/slimm609/checksec/${CHECKSEC_VERSION}/checksec" ; \
124128
scurl -o /usr/local/bin/checksec "$url" && chmod 755 /usr/local/bin/checksec
125129

126130
# shellcheck lints shell scripts.
127131
FROM apt-base as shellcheck
128-
ARG SHELLCHECK_VERSION=v0.10.0
132+
ARG SHELLCHECK_VERSION=v0.10.0 # repo=koalaman/shellcheck
129133
RUN url="https://github.com/koalaman/shellcheck/releases/download/${SHELLCHECK_VERSION}/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" ; \
130134
scurl "$url" | tar xJvf - --strip-components=1 -C /usr/local/bin "shellcheck-${SHELLCHECK_VERSION}/shellcheck"
131135
COPY --link bin/just-sh /usr/local/bin/
@@ -141,7 +145,7 @@ COPY --link bin/action-* bin/just-dev bin/just-sh /bin/
141145
##
142146

143147
FROM apt-base as protobuf
144-
ARG PROTOC_VERSION=v29.0
148+
ARG PROTOC_VERSION=v31.1 # repo=protocolbuffers/protobuf
145149
RUN url="https://github.com/google/protobuf/releases/download/$PROTOC_VERSION/protoc-${PROTOC_VERSION#v}-linux-$(uname -m).zip" ; \
146150
cd $(mktemp -d) && \
147151
scurl -o protoc.zip "$url" && \
@@ -157,25 +161,25 @@ RUN url="https://github.com/google/protobuf/releases/download/$PROTOC_VERSION/pr
157161

158162
# cargo-action-fmt formats `cargo build` JSON output to Github Actions annotations.
159163
FROM apt-base as cargo-action-fmt
160-
ARG CARGO_ACTION_FMT_VERSION=1.0.2
161-
RUN url="https://github.com/olix0r/cargo-action-fmt/releases/download/release%2Fv${CARGO_ACTION_FMT_VERSION}/cargo-action-fmt-x86_64-unknown-linux-gnu" ; \
162-
scurl -o /usr/local/bin/cargo-action-fmt "$url" && chmod +x /usr/local/bin/cargo-action-fmt
164+
ARG CARGO_ACTION_FMT_VERSION=v1.0.4 # ignore
165+
RUN url="https://github.com/olix0r/cargo-action-fmt/releases/download/release%2F${CARGO_ACTION_FMT_VERSION}/cargo-action-fmt-${CARGO_ACTION_FMT_VERSION}-x86_64-unknown-linux-musl.tar.gz" ; \
166+
scurl "$url" | tar zvxf - -C /usr/local/bin cargo-action-fmt
163167

164168
# cargo-deny checks cargo dependencies for licensing and RUSTSEC security issues.
165169
FROM apt-base as cargo-deny
166-
ARG CARGO_DENY_VERSION=0.16.3
170+
ARG CARGO_DENY_VERSION=0.18.3 # repo=EmbarkStudios/cargo-deny
167171
RUN url="https://github.com/EmbarkStudios/cargo-deny/releases/download/${CARGO_DENY_VERSION}/cargo-deny-${CARGO_DENY_VERSION}-x86_64-unknown-linux-musl.tar.gz" ; \
168172
scurl "$url" | tar zvxf - --strip-components=1 -C /usr/local/bin "cargo-deny-${CARGO_DENY_VERSION}-x86_64-unknown-linux-musl/cargo-deny"
169173

170174
# cargo-nextest is a nicer test runner.
171175
FROM apt-base as cargo-nextest
172-
ARG NEXTEST_VERSION=0.9.85
176+
ARG NEXTEST_VERSION=0.9.100 # repo=nextest-rs/nextest,prefix=cargo-nextest-
173177
RUN url="https://github.com/nextest-rs/nextest/releases/download/cargo-nextest-${NEXTEST_VERSION}/cargo-nextest-${NEXTEST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" ; \
174178
scurl "$url" | tar zvxf - -C /usr/local/bin cargo-nextest
175179

176180
# cargo-tarpaulin is a code coverage tool.
177181
FROM apt-base as cargo-tarpaulin
178-
ARG CARGO_TARPAULIN_VERSION=0.31.3
182+
ARG CARGO_TARPAULIN_VERSION=0.32.8 # repo=xd009642/tarpaulin
179183
RUN url="https://github.com/xd009642/tarpaulin/releases/download/${CARGO_TARPAULIN_VERSION}/cargo-tarpaulin-x86_64-unknown-linux-musl.tar.gz" ;\
180184
scurl "$url" | tar xzvf - -C /usr/local/bin cargo-tarpaulin
181185

@@ -190,40 +194,40 @@ COPY --link bin/just-cargo /bin/
190194
## Go tools
191195
##
192196

193-
FROM docker.io/library/golang:1.23 as go-delve
197+
FROM docker.io/library/golang:${GO_TAG} as go-delve
194198
RUN go install github.com/go-delve/delve/cmd/dlv@latest
195199

196-
FROM docker.io/library/golang:1.23 as go-impl
200+
FROM docker.io/library/golang:${GO_TAG} as go-impl
197201
RUN go install github.com/josharian/impl@latest
198202

199-
FROM docker.io/library/golang:1.23 as go-outline
203+
FROM docker.io/library/golang:${GO_TAG} as go-outline
200204
RUN go install github.com/ramya-rao-a/go-outline@latest
201205

202-
FROM docker.io/library/golang:1.23 as go-protoc
203-
ARG PROTOC_GEN_GO_VERSION=v1.35.2
206+
FROM docker.io/library/golang:${GO_TAG} as go-protoc
207+
ARG PROTOC_GEN_GO_TAG=v1.35.2
204208
ARG PROTOC_GEN_GO_GRPC_VERSION=v1.5.1
205-
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@${PROTOC_GEN_GO_VERSION}
209+
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@${PROTOC_GEN_GO_TAG}
206210
RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@${PROTOC_GEN_GO_GRPC_VERSION}
207211

208-
FROM docker.io/library/golang:1.23 as golangci-lint
212+
FROM docker.io/library/golang:${GO_TAG} as golangci-lint
209213
RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
210214

211-
FROM docker.io/library/golang:1.23 as gomodifytags
215+
FROM docker.io/library/golang:${GO_TAG} as gomodifytags
212216
RUN go install github.com/fatih/gomodifytags@latest
213217

214-
FROM docker.io/library/golang:1.23 as gopkgs
218+
FROM docker.io/library/golang:${GO_TAG} as gopkgs
215219
RUN go install github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest
216220

217-
FROM docker.io/library/golang:1.23 as goplay
221+
FROM docker.io/library/golang:${GO_TAG} as goplay
218222
RUN go install github.com/haya14busa/goplay/cmd/goplay@latest
219223

220-
FROM docker.io/library/golang:1.23 as gopls
224+
FROM docker.io/library/golang:${GO_TAG} as gopls
221225
RUN go install golang.org/x/tools/gopls@latest
222226

223-
FROM docker.io/library/golang:1.23 as gotests
227+
FROM docker.io/library/golang:${GO_TAG} as gotests
224228
RUN go install github.com/cweill/gotests/gotests@latest
225229

226-
FROM docker.io/library/golang:1.23 as gotestsum
230+
FROM docker.io/library/golang:${GO_TAG} as gotestsum
227231
ARG GOTESTSUM_VERSION=v1.12.0
228232
RUN go install gotest.tools/gotestsum@${GOTESTSUM_VERSION}
229233

@@ -263,7 +267,7 @@ COPY --link --from=tools-script /bin/* /bin/
263267
##
264268

265269
# A Go build environment.
266-
FROM docker.io/library/golang:1.23 as go
270+
FROM docker.io/library/golang:${GO_TAG} as go
267271
RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
268272
--mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
269273
--mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
@@ -277,7 +281,7 @@ ENV PROTOC_NO_VENDOR=1 \
277281
PROTOC_INCLUDE=/usr/local/include
278282

279283
# A Rust build environment.
280-
FROM docker.io/library/rust:1.83-slim-bookworm as rust
284+
FROM docker.io/library/rust:${RUST_TAG}-slim-bookworm as rust
281285
RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
282286
--mount=type=cache,from=apt-base,source=/var/cache/apt,target=/var/cache/apt,sharing=locked \
283287
--mount=type=cache,from=apt-base,source=/var/lib/apt/lists,target=/var/lib/apt/lists,sharing=locked \
@@ -352,6 +356,7 @@ RUN --mount=type=cache,from=apt-base,source=/etc/apt,target=/etc/apt,ro \
352356
sudo \
353357
time \
354358
tshark \
359+
umoci \
355360
unzip
356361

357362
# Link the gnu versions of ranlib to the musl toolchain.

actions/setup-go/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ inputs:
55
# TODO(ver): CI should validate at this version matches that in the Dockerfile
66
version:
77
description: Go version
8-
default: 1.23
8+
default: 1.24
99

1010
runs:
1111
using: composite

actions/setup-rust/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ inputs:
66
# TODO(ver): CI should validate at this version matches that in the Dockerfile
77
version:
88
description: Container image version
9-
default: 1.83.0
9+
default: 1.88.0
1010

1111
components:
1212
description: Rust components to install

actions/setup-tools/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ inputs:
55
# TODO(ver): CI should validate at this version matches the most recent release tag
66
version:
77
description: Container image version
8-
default: v45
8+
default: v46
99

1010
runs:
1111
using: composite

justfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ sync-k3s-images:
7575

7676
minimum-k8s := '20'
7777

78+
update-versions:
79+
go run ./update-versions.go --in-place
80+
7881
# Inspect a k3s image by tag
7982
_k3s-inspect tag:
8083
skopeo inspect 'docker://{{ k3s-image }}:{{ tag }}'

k3s-images.json

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "docker.io/rancher/k3s",
33
"channels": {
4-
"stable": "v1.31.4-k3s1",
5-
"latest": "v1.31.4-k3s1",
4+
"stable": "v1.32.6-k3s1",
5+
"latest": "v1.33.2-k3s1",
66
"v1.20": "v1.20.15-k3s1",
77
"v1.21": "v1.21.14-k3s1",
88
"v1.22": "v1.22.17-k3s1",
@@ -12,9 +12,11 @@
1212
"v1.26": "v1.26.15-k3s1",
1313
"v1.27": "v1.27.16-k3s1",
1414
"v1.28": "v1.28.15-k3s1",
15-
"v1.29": "v1.29.12-k3s1",
16-
"v1.30": "v1.30.8-k3s1",
17-
"v1.31": "v1.31.4-k3s1"
15+
"v1.29": "v1.29.15-k3s1",
16+
"v1.30": "v1.30.14-k3s1",
17+
"v1.31": "v1.31.10-k3s1",
18+
"v1.32": "v1.32.6-k3s1",
19+
"v1.33": "v1.33.2-k3s1"
1820
},
1921
"digests": {
2022
"v1.20.15-k3s1": "sha256:0e49b63b8ee234e308ff578682f8f4f2f95bffda7ba75077e5da29548cd2a6b3",
@@ -26,8 +28,10 @@
2628
"v1.26.15-k3s1": "sha256:fabb4a57b34c67c0dfab602bd6ae54b34598a9f9218004089d1202431088fdb1",
2729
"v1.27.16-k3s1": "sha256:b7bca8255da9e25a9fdd95bae61f99f8cd424d90691fc5125621b2955bebdfd2",
2830
"v1.28.15-k3s1": "sha256:af4f882a4cfaf418cb03d52c59cd150f42bf2b72f084c4592c6a133f4856660d",
29-
"v1.29.12-k3s1": "sha256:ad78b356f746320ed6e4b5b8404349b9a92c800b24b46d7372b50723e397ace9",
30-
"v1.30.8-k3s1": "sha256:72c67f37faed25521d21e4743e964d325dcb9dc807d38a3c3d6708fc137baf3c",
31-
"v1.31.4-k3s1": "sha256:627fc392e5e7992fb8aa738fb04bc0c9ae9a068999cb4cfbea5858661cd79d04"
31+
"v1.29.15-k3s1": "sha256:8f782bd47a41509e89c1ad1d60b02998cc5b0f1310a36c65aa0f331cde866c80",
32+
"v1.30.14-k3s1": "sha256:cbed71f50f16fc98a7f64c6ecf21fd8fc04efc41ad7d664fb46b199c7bd3fda7",
33+
"v1.31.10-k3s1": "sha256:8c7032ab267c3a571bac4fafffbb54e249386dbc73ebe5532fb390fa998a7936",
34+
"v1.32.6-k3s1": "sha256:4cd4ccd268089f92e4efcc64916b1313ecdd38291a48129508cf47fa32934006",
35+
"v1.33.2-k3s1": "sha256:d8f05b9043d136c3fb01d6cf677caaef304568b8c99bdd359b86d3d7286de1df"
3236
}
3337
}

repos/k8s-gateway-api-rs

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)