3
3
ARG ref=main
4
4
5
5
FROM ghcr.io/nicholasdille/docker-setup/krew:${ref} AS krew
6
- FROM ghcr.io/nicholasdille/docker-setup/base :${ref} AS prepare
6
+ FROM ghcr.io/nicholasdille/docker-setup/cosign :${ref} AS cosign
7
7
8
+ FROM ghcr.io/nicholasdille/docker-setup/base:${ref} AS prepare
8
9
ARG name
9
10
ARG version
10
-
11
11
COPY --from=krew / /
12
-
12
+ COPY --from=cosign / /
13
13
COPY kubectl.sh ${prefix}/etc/profile.d/
14
-
15
14
RUN <<EOF
16
- curl --silent --location --output "${prefix}${target}/bin/kubectl" \
17
- "https://storage.googleapis.com/kubernetes- release/release/ v${version}/bin/linux/${alt_arch} /kubectl"
15
+ curl --silent --location --fail -- output "${prefix}${target}/bin/kubectl" \
16
+ "https://dl.k8s.io/ release/v${version}/bin/linux/amd64 /kubectl"
18
17
chmod +x "${prefix}${target}/bin/kubectl"
19
- curl --silent --location --output "${prefix}${target}/bin/kubectl-convert" \
18
+
19
+ if test "$(echo -e "1.26.0-beta.0\n${version}\n" | sort -V | head -n 1)" == "1.26.0-beta.0"; then
20
+ echo "Verifying keyless signature"
21
+ curl --silent --location --fail --output "/tmp/kubectl.sig" \
22
+ "https://dl.k8s.io/release/v${version}/bin/linux/amd64/kubectl.sig"
23
+ curl --silent --location --fail --output "/tmp/kubectl.cert" \
24
+ "https://dl.k8s.io/release/v${version}/bin/linux/amd64/kubectl.cert"
25
+ COSIGN_EXPERIMENTAL=1 cosign verify-blob "${prefix}${target}/bin/kubectl" \
26
+ --signature "/tmp/kubectl.sig" \
27
+ --certificate "/tmp/kubectl.cert" \
28
+ --certificate-oidc-issuer https://accounts.google.com \
29
+ --certificate-email krel-staging@k8s-releng-prod.iam.gserviceaccount.com
30
+ fi
31
+
32
+ curl --silent --location --fail --output "${prefix}${target}/bin/kubectl-convert" \
20
33
"https://dl.k8s.io/release/v${version}/bin/linux/${alt_arch}/kubectl-convert"
21
34
chmod +x "${prefix}${target}/bin/kubectl-convert"
35
+ #curl --silent --location --fail --output "/tmp/kubectl-convert.sig" \
36
+ # "https://dl.k8s.io/release/v${version}/bin/linux/amd64/kubectl-convert.sig"
37
+ #curl --silent --location --fail --output "/tmp/kubectl-convert.cert" \
38
+ # "https://dl.k8s.io/release/v${version}/bin/linux/amd64/kubectl-convert.cert"
39
+ #COSIGN_EXPERIMENTAL=1 cosign verify-blob "${prefix}${target}/bin/kubectl-convert" \
40
+ # --signature "/tmp/kubectl-convert.sig" \
41
+ # --certificate "/tmp/kubectl-convert.cert" \
42
+ # --certificate-oidc-issuer https://accounts.google.com \
43
+ # --certificate-email krel-staging@k8s-releng-prod.iam.gserviceaccount.com
22
44
"${prefix}${target}/bin/kubectl" completion bash >"${prefix}${target}/share/bash-completion/completions/kubectl"
23
45
"${prefix}${target}/bin/kubectl" completion zsh >"${prefix}${target}/share/zsh/vendor-completions/_kubectl"
24
46
EOF
0 commit comments