Skip to content

Commit fed4e4b

Browse files
committed
Creates a task page to verify signed control plane container images
1 parent 297bd6a commit fed4e4b

File tree

5 files changed

+93
-3
lines changed

5 files changed

+93
-3
lines changed

content/en/docs/tasks/administer-cluster/verify-signed-images.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ For a complete list of images that are signed please refer to [releases](release
2020
Let's pick one image from this list and verify its signature using `cosign verify` command.
2121

2222
```shell
23-
cosign verify us.gcr.io/k8s-artifacts-prod/kube-apiserver:v1.24.0
23+
COSIGN_EXPERIMENTAL=1 cosign verify k8s.gcr.io/kube-apiserver-amd64:v1.24.0
2424
```
2525
### All control plane images
2626

@@ -33,5 +33,4 @@ while IFS= read -r image
3333
do
3434
COSIGN_EXPERIMENTAL=1 cosign verify "$image"
3535
done < "$input"
36-
```
37-
36+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
k8s.gcr.io/kube-apiserver-amd64:v1.24.0
2+
k8s.gcr.io/kube-apiserver-arm:v1.24.0
3+
k8s.gcr.io/kube-apiserver-arm64:v1.24.0
4+
k8s.gcr.io/kube-apiserver-ppc64le:v1.24.0
5+
k8s.gcr.io/kube-apiserver-s390x:v1.24.0
6+
k8s.gcr.io/kube-scheduler-amd64:v1.24.0
7+
k8s.gcr.io/kube-scheduler-arm:v1.24.0
8+
k8s.gcr.io/kube-scheduler-arm64:v1.24.0
9+
k8s.gcr.io/kube-scheduler-ppc64le:v1.24.0
10+
k8s.gcr.io/kube-scheduler-s390x:v1.24.0
11+
k8s.gcr.io/kube-controller-manager-amd64:v1.24.0
12+
k8s.gcr.io/kube-controller-manager-arm:v1.24.0
13+
k8s.gcr.io/kube-controller-manager-arm64:v1.24.0
14+
k8s.gcr.io/kube-controller-manager-ppc64le:v1.24.0
15+
k8s.gcr.io/kube-controller-manager-s390x:v1.24.0
16+
k8s.gcr.io/kube-proxy-amd64:v1.24.0
17+
k8s.gcr.io/kube-proxy-arm:v1.24.0
18+
k8s.gcr.io/kube-proxy-arm64:v1.24.0
19+
k8s.gcr.io/kube-proxy-ppc64le:v1.24.0
20+
k8s.gcr.io/kube-proxy-s390x:v1.24.0
21+
k8s.gcr.io/kube-conformance-amd64:v1.24.0
22+
k8s.gcr.io/kube-conformance-arm:v1.24.0
23+
k8s.gcr.io/kube-conformance-arm64:v1.24.0
24+
k8s.gcr.io/kube-conformance-ppc64le:v1.24.0
25+
k8s.gcr.io/kube-conformance-s390x:v1.24.0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#/bin/sh
2+
go run verify-all-signed-control-plane-images.go > auto-generated-list-of-all-signed-images.txt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# This file is input to generate the full list of images that are signed.
2+
# Please update this file when more images are signed and then run
3+
# ./content/en/examples/admin/signed-images/generate-list-of-all-signed-images.sh
4+
# to update content/en/examples/admin/signed-images/auto-generated-list-of-all-signed-images.txt
5+
domains:
6+
- "k8s.gcr.io"
7+
names:
8+
- "kube-apiserver"
9+
- "kube-scheduler"
10+
- "kube-controller-manager"
11+
- "kube-proxy"
12+
- "kube-conformance"
13+
architectures:
14+
- "amd64"
15+
- "arm"
16+
- "arm64"
17+
- "ppc64le"
18+
- "s390x"
19+
versions:
20+
- "v1.24.0"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"io/ioutil"
6+
"log"
7+
8+
"gopkg.in/yaml.v3"
9+
)
10+
11+
func main() {
12+
13+
data, err := ioutil.ReadFile("list-of-all-signed-images.yaml")
14+
15+
if err != nil {
16+
17+
log.Fatal(err)
18+
}
19+
20+
images := make(map[string][]string)
21+
22+
err2 := yaml.Unmarshal(data, &images)
23+
24+
if err2 != nil {
25+
26+
log.Fatal(err2)
27+
}
28+
domains := images["domains"]
29+
names := images["names"]
30+
architectures := images["architectures"]
31+
versions := images["versions"]
32+
33+
//anything better than 4 for loops is welcome!
34+
for _, d := range domains {
35+
for _, n := range names {
36+
for _, a := range architectures {
37+
for _, v := range versions {
38+
image := d + "/" + n + "-" + a + ":" + v
39+
fmt.Println(image)
40+
}
41+
}
42+
}
43+
}
44+
}

0 commit comments

Comments
 (0)