Skip to content
This repository was archived by the owner on Oct 3, 2023. It is now read-only.

Commit d0c9bad

Browse files
committed
Add cosign for k8s
1 parent 0106944 commit d0c9bad

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

tools/kubectl/Dockerfile.template

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,44 @@
33
ARG ref=main
44

55
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
77

8+
FROM ghcr.io/nicholasdille/docker-setup/base:${ref} AS prepare
89
ARG name
910
ARG version
10-
1111
COPY --from=krew / /
12-
12+
COPY --from=cosign / /
1313
COPY kubectl.sh ${prefix}/etc/profile.d/
14-
1514
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"
1817
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" \
2033
"https://dl.k8s.io/release/v${version}/bin/linux/${alt_arch}/kubectl-convert"
2134
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
2244
"${prefix}${target}/bin/kubectl" completion bash >"${prefix}${target}/share/bash-completion/completions/kubectl"
2345
"${prefix}${target}/bin/kubectl" completion zsh >"${prefix}${target}/share/zsh/vendor-completions/_kubectl"
2446
EOF

0 commit comments

Comments
 (0)