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

Commit fe97b54

Browse files
committed
Finalized keyless signature check for kubectl
1 parent d0c9bad commit fe97b54

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

tools/kubectl/Dockerfile.template

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
ARG ref=main
44

5-
FROM ghcr.io/nicholasdille/docker-setup/krew:${ref} AS krew
65
FROM ghcr.io/nicholasdille/docker-setup/cosign:${ref} AS cosign
76

87
FROM ghcr.io/nicholasdille/docker-setup/base:${ref} AS prepare
@@ -16,8 +15,8 @@ curl --silent --location --fail --output "${prefix}${target}/bin/kubectl" \
1615
"https://dl.k8s.io/release/v${version}/bin/linux/amd64/kubectl"
1716
chmod +x "${prefix}${target}/bin/kubectl"
1817

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"
18+
if test "$(echo -e "1.26.0-beta.0\n${version}" | sort -V | head -n 1)" == "1.26.0-beta.0"; then
19+
echo "Verifying keyless signature for kubectl"
2120
curl --silent --location --fail --output "/tmp/kubectl.sig" \
2221
"https://dl.k8s.io/release/v${version}/bin/linux/amd64/kubectl.sig"
2322
curl --silent --location --fail --output "/tmp/kubectl.cert" \
@@ -27,20 +26,31 @@ if test "$(echo -e "1.26.0-beta.0\n${version}\n" | sort -V | head -n 1)" == "1.2
2726
--certificate "/tmp/kubectl.cert" \
2827
--certificate-oidc-issuer https://accounts.google.com \
2928
--certificate-email krel-staging@k8s-releng-prod.iam.gserviceaccount.com
29+
rm -f \
30+
"/tmp/kubectl.sig" \
31+
"/tmp/kubectl.cert"
3032
fi
3133

3234
curl --silent --location --fail --output "${prefix}${target}/bin/kubectl-convert" \
3335
"https://dl.k8s.io/release/v${version}/bin/linux/${alt_arch}/kubectl-convert"
3436
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
37+
38+
if test "$(echo -e "1.26.0-beta.0\n${version}" | sort -V | head -n 1)" == "1.26.0-beta.0"; then
39+
echo "Verifying keyless signature for kubectl-convert"
40+
curl --silent --location --fail --output "/tmp/kubectl-convert.sig" \
41+
"https://dl.k8s.io/release/v${version}/bin/linux/amd64/kubectl-convert.sig"
42+
curl --silent --location --fail --output "/tmp/kubectl-convert.cert" \
43+
"https://dl.k8s.io/release/v${version}/bin/linux/amd64/kubectl-convert.cert"
44+
COSIGN_EXPERIMENTAL=1 cosign verify-blob "${prefix}${target}/bin/kubectl-convert" \
45+
--signature "/tmp/kubectl-convert.sig" \
46+
--certificate "/tmp/kubectl-convert.cert" \
47+
--certificate-oidc-issuer https://accounts.google.com \
48+
--certificate-email krel-staging@k8s-releng-prod.iam.gserviceaccount.com
49+
rm -f \
50+
"/tmp/kubectl-convert.sig" \
51+
"/tmp/kubectl-convert.cert"
52+
fi
53+
4454
"${prefix}${target}/bin/kubectl" completion bash >"${prefix}${target}/share/bash-completion/completions/kubectl"
4555
"${prefix}${target}/bin/kubectl" completion zsh >"${prefix}${target}/share/zsh/vendor-completions/_kubectl"
4656
EOF

tools/kubectl/manifest.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
name: kubectl
22
version: "1.25.4"
33
check: ${binary} version --client --short 2>/dev/null | grep ^Client | cut -d' ' -f3 | tr -d v
4-
dependencies:
5-
- krew
64
tags:
75
- org/cncf
86
- org/kubernetes

0 commit comments

Comments
 (0)