Merge pull request #16439 from justinsb/store_hashes_for_assets

Use embedded hashes for our well-known assets
This commit is contained in:
Kubernetes Prow Robot 2024-05-10 21:11:43 -07:00 committed by GitHub
commit 22eea4ed74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with 1255 additions and 491 deletions

View File

@ -132,7 +132,7 @@ func RunGetAssets(ctx context.Context, f *util.Factory, out io.Writer, options *
file := File{
Canonical: fileAsset.CanonicalURL.String(),
Download: fileAsset.DownloadURL.String(),
SHA: fileAsset.SHAValue,
SHA: fileAsset.SHAValue.Hex(),
}
if !seen[file.Canonical] {
result.Files = append(result.Files, &file)

View File

@ -35,7 +35,7 @@ filestores:
files:
EOF
for ((patch = 0 ; patch < max_patch ; patch++ )); do
for ((patch = 0 ; patch <= max_patch ; patch++ )); do
version="${prefix}.${patch}"
echo "k8s ${version}"
@ -62,12 +62,12 @@ function generate_runc_hashes() {
# This file is generated by generate-asset-hashes.sh
filestores:
- base: https://dl.k8s.io/release/
- base: https://github.com/opencontainers/runc/releases/download/
files:
EOF
for ((patch = 0 ; patch < max_patch ; patch++ )); do
for ((patch = 0 ; patch <= max_patch ; patch++ )); do
version="${prefix}.${patch}"
echo "runc ${version}"
@ -83,9 +83,10 @@ EOF
generate_k8s_hashes 1.24 17
generate_k8s_hashes 1.25 16
generate_k8s_hashes 1.26 15
generate_k8s_hashes 1.27 12
generate_k8s_hashes 1.28 8
generate_k8s_hashes 1.29 3
generate_k8s_hashes 1.27 13
generate_k8s_hashes 1.28 9
generate_k8s_hashes 1.29 4
generate_k8s_hashes 1.30 0
generate_runc_hashes 1.1 12

View File

@ -26,7 +26,22 @@ func TestGetHash(t *testing.T) {
Name string
Hash string
}{
{Name: "https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubelet", Hash: "sha256:b64949fe696c77565edbe4100a315b6bf8f0e2325daeb762f7e865f16a6e54b5"},
{
Name: "https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubelet",
Hash: "b64949fe696c77565edbe4100a315b6bf8f0e2325daeb762f7e865f16a6e54b5",
},
{
Name: "https://github.com/opencontainers/runc/releases/download/v1.1.0/runc.amd64",
Hash: "ab1c67fbcbdddbe481e48a55cf0ef9a86b38b166b5079e0010737fd87d7454bb",
},
{
Name: "https://github.com/opencontainers/runc/releases/download/v1.1.0/runc.arm64",
Hash: "9ec8e68feabc4e7083a4cfa45ebe4d529467391e0b03ee7de7ddda5770b05e68",
},
{
Name: "https://github.com/opencontainers/runc/releases/download/v1.1.12/runc.amd64",
Hash: "aadeef400b8f05645768c1476d1023f7875b78f52c7ff1967a6dbce236b8cbd8",
},
}
for _, g := range grid {
@ -41,7 +56,7 @@ func TestGetHash(t *testing.T) {
if !found {
t.Fatalf("hash for %q was not found", g.Name)
}
got := h.String()
got := h.Hex()
want := g.Hash
if got != g.Hash {
t.Errorf("unexpected hash for %q; got %q, want %q", g.Name, got, want)

View File

@ -1653,3 +1653,100 @@ files:
sha256: c21615a59254e931323e939bc79627ce4a98006b3632108c372dcfbe739eb147
- name: v1.24.16/kubernetes-source.spdx
sha256: a69f3779e7c117327d4a48d76f0ad7b6f413414106c36149beda3663d6da022b
# kubernetes 1.24.17
- name: v1.24.17/bin/darwin/amd64/kubectl
sha256: 1eb904b2c1148ff8431b0bd86677287a48bff000f93fd2d36377fbe956bd1e49
- name: v1.24.17/bin/darwin/amd64/kubectl-convert
sha256: 7f4d03fbaa6b1c860c3e895894b97592cca55f166d5de482595029ea453d4bca
- name: v1.24.17/bin/darwin/arm64/kubectl
sha256: 7addbe3f1e22a366fa05aed4f268e77e83d902b40a5854e192b4205ed92e5f8d
- name: v1.24.17/bin/darwin/arm64/kubectl-convert
sha256: a0e5ea01668501c93184aaa8164726c0d5cd8259a141ecbd81481373ecd3b449
- name: v1.24.17/bin/linux/386/kubectl
sha256: b0cde7ca2973a4420aaaca967fe45fe3d763a319a4850955333f0e2c1036b4a4
- name: v1.24.17/bin/linux/386/kubectl-convert
sha256: 119d814d9e6df5dcdcc07cd603efe5a0288d9a7142e33c2fc277b169e3e89499
- name: v1.24.17/bin/linux/amd64/apiextensions-apiserver
sha256: d9597f0bb60747e7f10370c7c544d541421b095db7580f0bc48a24ddfc5f7dcf
- name: v1.24.17/bin/linux/amd64/kube-aggregator
sha256: 922207c55954e51723ad1e1895374b0fa3f36139ffeabb68d1f2160382ef9883
- name: v1.24.17/bin/linux/amd64/kube-apiserver
sha256: b92a2631a9aa741b268b71844ed8920039bdbdaa8aee0d595562a8fb9b58bf99
- name: v1.24.17/bin/linux/amd64/kube-apiserver.docker_tag
sha256: 92969c8802c0bcabebb3fc8a117a41bb1a383ac3a1c3d71e18e39098d8fea2e9
- name: v1.24.17/bin/linux/amd64/kube-apiserver.tar
sha256: 3b65d653386b0d6dd00160c0e85f36ae131c0f2b47eab364cd70c7fbfbe8b4ab
- name: v1.24.17/bin/linux/amd64/kube-controller-manager
sha256: c8801bca5d80e31607b24c3979a843e4da4ab8cf2145d5cfa88db6ce9e0b93d1
- name: v1.24.17/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: 92969c8802c0bcabebb3fc8a117a41bb1a383ac3a1c3d71e18e39098d8fea2e9
- name: v1.24.17/bin/linux/amd64/kube-controller-manager.tar
sha256: 45fc89995bd17a201a67eecf8ea0e3744622daa3a8f30c6967f1894b1a4480fb
- name: v1.24.17/bin/linux/amd64/kube-log-runner
sha256: f97e37714ca0a0a3585f714235f9a51c1f8fa07deab2b53a5a5bd376226a1998
- name: v1.24.17/bin/linux/amd64/kube-proxy
sha256: d6663ca58e29da5ad54c8ab0846efbce9eb07568bbf6f728e1ec0a5c835b58d1
- name: v1.24.17/bin/linux/amd64/kube-proxy.docker_tag
sha256: 92969c8802c0bcabebb3fc8a117a41bb1a383ac3a1c3d71e18e39098d8fea2e9
- name: v1.24.17/bin/linux/amd64/kube-proxy.tar
sha256: b89dc9686b81bbbb0989c64b34e27fc1c84d7e14b768ea93733386bfc4f5485a
- name: v1.24.17/bin/linux/amd64/kube-scheduler
sha256: ce2f040ffed8e7e75e4733b26d9c58e197264a603bb9a04e1b8cb8d863acdf12
- name: v1.24.17/bin/linux/amd64/kube-scheduler.docker_tag
sha256: 92969c8802c0bcabebb3fc8a117a41bb1a383ac3a1c3d71e18e39098d8fea2e9
- name: v1.24.17/bin/linux/amd64/kube-scheduler.tar
sha256: e7193255c9ece8f49004a0649be006613d2299d89f0f352b1084bbc077a2a36a
- name: v1.24.17/bin/linux/amd64/kubeadm
sha256: 774bae9f86c093fd28c7649cf4a84cb3555a70d29ea5dba438abc990dd0febc9
- name: v1.24.17/bin/linux/amd64/kubectl
sha256: 3e9588e3326c7110a163103fc3ea101bb0e85f4d6fd228cf928fa9a2a20594d5
- name: v1.24.17/bin/linux/amd64/kubectl-convert
sha256: d5d0ebf549345a622106740ec3bfa43f7a0389778b14e032b44df59ad1333941
- name: v1.24.17/bin/linux/amd64/kubelet
sha256: babf327f3089982b271ac0acff51009eb0d649f7d1f4fbd976419ee76864f633
- name: v1.24.17/bin/linux/amd64/mounter
sha256: af57e269cce129610b5b70c8f48d5153e4e094a5fe46c5da39481387707d6e08
- name: v1.24.17/bin/linux/arm64/apiextensions-apiserver
sha256: a9cb5b9597b194d747bd432c246ee1a4062bf390748d8c81ee7037e99eaf9895
- name: v1.24.17/bin/linux/arm64/kube-aggregator
sha256: 54430f0fcfd106e470fb019c143a1f84fec69b102f4600d46d26233cb29a468c
- name: v1.24.17/bin/linux/arm64/kube-apiserver
sha256: cd1025d49b69907aa1b0abd98a4569de15ffbdd4252a7a36479894988803d095
- name: v1.24.17/bin/linux/arm64/kube-apiserver.docker_tag
sha256: 92969c8802c0bcabebb3fc8a117a41bb1a383ac3a1c3d71e18e39098d8fea2e9
- name: v1.24.17/bin/linux/arm64/kube-apiserver.tar
sha256: 1908ea1c29c601836273878a0d5e49bb0703b8bd492d9b28c66a38b7ec440ece
- name: v1.24.17/bin/linux/arm64/kube-controller-manager
sha256: dd5bf9c31597975dcae53a650b682b34f77f5c1d375ca597a413852a887988d2
- name: v1.24.17/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: 92969c8802c0bcabebb3fc8a117a41bb1a383ac3a1c3d71e18e39098d8fea2e9
- name: v1.24.17/bin/linux/arm64/kube-controller-manager.tar
sha256: 1bf59c33803796a84f8f99622417222cd2fe43e53d5b7ce3e8051e416952464d
- name: v1.24.17/bin/linux/arm64/kube-log-runner
sha256: b54f4ed74a47797e02b51266de1ff87c64eae3745f236057f1a5d92fa43a0f62
- name: v1.24.17/bin/linux/arm64/kube-proxy
sha256: df7173fef6ed86c1d776898b83c0148928c7b6a146304111d17d2c3497eda172
- name: v1.24.17/bin/linux/arm64/kube-proxy.docker_tag
sha256: 92969c8802c0bcabebb3fc8a117a41bb1a383ac3a1c3d71e18e39098d8fea2e9
- name: v1.24.17/bin/linux/arm64/kube-proxy.tar
sha256: 4e7d53a4ab6201c619484be9692229419e9bf8a93d5b5c0bbf7cc69bc8a790fa
- name: v1.24.17/bin/linux/arm64/kube-scheduler
sha256: 6cf8ae89e4f777df6d330ec755a8972ffdec28243513711b71063eb0e8ff4fdf
- name: v1.24.17/bin/linux/arm64/kube-scheduler.docker_tag
sha256: 92969c8802c0bcabebb3fc8a117a41bb1a383ac3a1c3d71e18e39098d8fea2e9
- name: v1.24.17/bin/linux/arm64/kube-scheduler.tar
sha256: 4ae7812152bd6bfd303abe12b833ec44033a960ef02d110148c2ebf28dee32a6
- name: v1.24.17/bin/linux/arm64/kubeadm
sha256: 1d484faddd1b789c67cdadb315d53250d9906e5b727c9254131c01b2f8f17beb
- name: v1.24.17/bin/linux/arm64/kubectl
sha256: 66885bda3a202546778c77f0b66dcf7f576b5a49ff9456acf61329da784a602d
- name: v1.24.17/bin/linux/arm64/kubectl-convert
sha256: cfc733d10193f887ffefbada494f9734c084df947269db3cb249c2a06a69a965
- name: v1.24.17/bin/linux/arm64/kubelet
sha256: dc83bc7a47715f1fa29ea7f1e1d13e3626a8bfbe3a6793d8cb97273289fe9bba
- name: v1.24.17/bin/linux/arm64/mounter
sha256: eee629ce9443b9dd57e47cbca163ebd8e156cf11e0880d905b976296810ec55f
- name: v1.24.17/kubernetes-release.spdx
sha256: 78f6454e018213006313ffdc4713d63cbd1e160f9dbf84240366c2ce1ec437a7
- name: v1.24.17/kubernetes-source.spdx
sha256: bd288ea8af006ce0581b55f3f25a40d279e24276bf54e5a637ee2cca8e752202

View File

@ -1556,3 +1556,100 @@ files:
sha256: e6e3d6c49279b2b97b3447ce262ff3ce142a0e2b7b0d8eb2156b140fcf06b687
- name: v1.25.15/kubernetes-source.spdx
sha256: 86c51af4c39254848e8ab4a0e6292de20c4513c36fab3ca00fc0cafaab48da90
# kubernetes 1.25.16
- name: v1.25.16/bin/darwin/amd64/kubectl
sha256: 34e87fdf0613502edbd2a2b00de5ee8c7789ab10e33257d14423dc6879321920
- name: v1.25.16/bin/darwin/amd64/kubectl-convert
sha256: a91a6d8a8d12984876518b72e2f3412b89b162d7539a5ee6c9a16e7027d9c5ae
- name: v1.25.16/bin/darwin/arm64/kubectl
sha256: d364f73df218b02642d06f3fa9b7345d64c03567b96ca21d361b487f48a33ccc
- name: v1.25.16/bin/darwin/arm64/kubectl-convert
sha256: a334e7d78e6a0ad48cab54a70347b727bf01f2da5eb1b0d0f55a3953c2cd2ee8
- name: v1.25.16/bin/linux/386/kubectl
sha256: fc402605202b90c8fe4461ec57ce444c1e6f4eeec8d8713bc9bd13c836750c2d
- name: v1.25.16/bin/linux/386/kubectl-convert
sha256: 90bd36fc98aa95f9f95c58dbb1a3f06a0b8c815b436a0effc635666c6469e92b
- name: v1.25.16/bin/linux/amd64/apiextensions-apiserver
sha256: 8a40ed7a2da5407d43e7379327f6ba9c4afce784d7bcc38a31181a4bb44a4d63
- name: v1.25.16/bin/linux/amd64/kube-aggregator
sha256: d47663a21e983e113c62c4e1f53a831a8ce260c00ee1ce10772f5f970d6618d0
- name: v1.25.16/bin/linux/amd64/kube-apiserver
sha256: ed78a3575f238061f8602f1f0f6f2097499c855390c7af4bcb7530bcc8a1ec82
- name: v1.25.16/bin/linux/amd64/kube-apiserver.docker_tag
sha256: b9e46e7e6810dc6e288be45503d778aa48dd64fd805f91e8ee20f5319aabec6c
- name: v1.25.16/bin/linux/amd64/kube-apiserver.tar
sha256: 6002cf0d62fcbb0ab1c526a2efe1aa5de3bd3f220ffcbc160e442efbccc62a95
- name: v1.25.16/bin/linux/amd64/kube-controller-manager
sha256: e22f880e14233ad056699de1ea65f0e9cf94ac0391ad9342228be78feac646b4
- name: v1.25.16/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: b9e46e7e6810dc6e288be45503d778aa48dd64fd805f91e8ee20f5319aabec6c
- name: v1.25.16/bin/linux/amd64/kube-controller-manager.tar
sha256: 41ead11c6cf132bcdbf1fce92a2758b4a2103f81475863f51805b74613f31d08
- name: v1.25.16/bin/linux/amd64/kube-log-runner
sha256: 1c2102e73829c1f8f4be7d62c706b14f11aba91ff7e784f693ea409a73d6e8e1
- name: v1.25.16/bin/linux/amd64/kube-proxy
sha256: 1e42e209c389c2f24665f986d0bba931ba00c066dcd0baea2d4baf62288b7b9c
- name: v1.25.16/bin/linux/amd64/kube-proxy.docker_tag
sha256: b9e46e7e6810dc6e288be45503d778aa48dd64fd805f91e8ee20f5319aabec6c
- name: v1.25.16/bin/linux/amd64/kube-proxy.tar
sha256: 8a245fee7e05e220723d98b6f762e5deaec33ae34c5634f193632eb077a16a21
- name: v1.25.16/bin/linux/amd64/kube-scheduler
sha256: 9b6bd6fe686d8c6121b8c370edf5e2d00f54809f73403af32297d83215e4181e
- name: v1.25.16/bin/linux/amd64/kube-scheduler.docker_tag
sha256: b9e46e7e6810dc6e288be45503d778aa48dd64fd805f91e8ee20f5319aabec6c
- name: v1.25.16/bin/linux/amd64/kube-scheduler.tar
sha256: a14f440c8c22688b259d262d04a64b831f0a5811e2b01f499c8fac8b848b4af7
- name: v1.25.16/bin/linux/amd64/kubeadm
sha256: 11c70502ac5bad303b5b4103b9eb5b2a83376cf6a1bce878b6018c6ca44a7d6e
- name: v1.25.16/bin/linux/amd64/kubectl
sha256: 5a9bc1d3ebfc7f6f812042d5f97b82730f2bdda47634b67bddf36ed23819ab17
- name: v1.25.16/bin/linux/amd64/kubectl-convert
sha256: f0f3db15a1c5107c032edad1b72a25c5bd584548ad2627d7be396d5c191e7599
- name: v1.25.16/bin/linux/amd64/kubelet
sha256: b159f4b0ce7987385902faf6b97530489a6340d728a9688c5791d8d18144b4b7
- name: v1.25.16/bin/linux/amd64/mounter
sha256: d4db60a86ce606a43c85f0b34a7fc16a4f7413d22a4227560e42ae3967099dad
- name: v1.25.16/bin/linux/arm64/apiextensions-apiserver
sha256: 43fdae4029ff69a0c7bd1cab09107e367aeb40c2debffd674e64db9ae28b4afb
- name: v1.25.16/bin/linux/arm64/kube-aggregator
sha256: a7eb1535fc33d1f8a5554f198e5669d9fd173b686689398c6b8f3f0a3637542c
- name: v1.25.16/bin/linux/arm64/kube-apiserver
sha256: bb7a54deeda14d113fe9ef04412dfa70ed1c81283da118d367c224546d8d0d5f
- name: v1.25.16/bin/linux/arm64/kube-apiserver.docker_tag
sha256: b9e46e7e6810dc6e288be45503d778aa48dd64fd805f91e8ee20f5319aabec6c
- name: v1.25.16/bin/linux/arm64/kube-apiserver.tar
sha256: afbc4d5847c422277546e96d62f1e459864e910e1dad077d43d3e7f9501e46d6
- name: v1.25.16/bin/linux/arm64/kube-controller-manager
sha256: a2cc5e2ce6bccc692dfea1278d0437ae2abf4532f707726701047cc5be89a9d3
- name: v1.25.16/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: b9e46e7e6810dc6e288be45503d778aa48dd64fd805f91e8ee20f5319aabec6c
- name: v1.25.16/bin/linux/arm64/kube-controller-manager.tar
sha256: ab3a272dfd688b660a49139f38bf9c96d8afe26647bc787546032b935ee9d3f6
- name: v1.25.16/bin/linux/arm64/kube-log-runner
sha256: 90e2e6207ca963af538c9e6bdd60efe6201bd0d59f183ac35ba0ba5057251b9a
- name: v1.25.16/bin/linux/arm64/kube-proxy
sha256: 0d180ce4259200319d58c802e0dd336627665511f5e6017df59596486b5c5ff0
- name: v1.25.16/bin/linux/arm64/kube-proxy.docker_tag
sha256: b9e46e7e6810dc6e288be45503d778aa48dd64fd805f91e8ee20f5319aabec6c
- name: v1.25.16/bin/linux/arm64/kube-proxy.tar
sha256: d2ebd32194eee7973de03139ec5e339205f3366bdeb884a4ad20e89fe8c415a4
- name: v1.25.16/bin/linux/arm64/kube-scheduler
sha256: d9cfbad115d9118ff353e8882c621eb213e1fedd65d0fb7df0c39700214287a7
- name: v1.25.16/bin/linux/arm64/kube-scheduler.docker_tag
sha256: b9e46e7e6810dc6e288be45503d778aa48dd64fd805f91e8ee20f5319aabec6c
- name: v1.25.16/bin/linux/arm64/kube-scheduler.tar
sha256: 14e3a028a84d64cc4aeed966c32a5efdee0771d949370ee3575418859d623408
- name: v1.25.16/bin/linux/arm64/kubeadm
sha256: 55cc8e3c5985858b9f683bf6c7352d76f073d3dc136f450e8761c0ed7092c0f3
- name: v1.25.16/bin/linux/arm64/kubectl
sha256: d6c23c80828092f028476743638a091f2f5e8141273d5228bf06c6671ef46924
- name: v1.25.16/bin/linux/arm64/kubectl-convert
sha256: bae6df75b4d397e6cbaf38fa46043f51b88909a1a6532a077313176e9c0279dd
- name: v1.25.16/bin/linux/arm64/kubelet
sha256: 5f379fc59db0efc288236dbd0abd32b1b0206d1c435001b9c0c3996171e20ffd
- name: v1.25.16/bin/linux/arm64/mounter
sha256: 34741a7956e5c54ccb227ee8de554c702163757a9db5963b9dd228dd9d239ef7
- name: v1.25.16/kubernetes-release.spdx
sha256: a1acde1a9164f7cec948e375141e88167d3589167fa54c57526c095e27c44251
- name: v1.25.16/kubernetes-source.spdx
sha256: c50966fc9a676330b1c85f4a21440f676550419959dd2dd2798e78f2b14676d8

View File

@ -1459,3 +1459,100 @@ files:
sha256: daf52d99a2dbaad95f670bbf3566091bf7f1bad80861ca5fb3bf964e961886c5
- name: v1.26.14/kubernetes-source.spdx
sha256: 1111e203ea2dcfd3deed9ebbfffd2a7379624ab42d3662d0f293455c6f0ffad6
# kubernetes 1.26.15
- name: v1.26.15/bin/darwin/amd64/kubectl
sha256: ad4e980f9c304840ec9227a78a998e132ea23f3ca1bc0df7718ed160341bad0b
- name: v1.26.15/bin/darwin/amd64/kubectl-convert
sha256: 14fadcebeee205967b7546be2680c463de8ad9ad701f8762c7829007428aa42e
- name: v1.26.15/bin/darwin/arm64/kubectl
sha256: c20b920d7e8e3ce3209c7c109fcfc4c09ad599613bc04b72c3f70d9fee598b68
- name: v1.26.15/bin/darwin/arm64/kubectl-convert
sha256: 3068f54693737ad0a9b1c2b17873e87d5d927876e7ad8f998141357f9bc5f633
- name: v1.26.15/bin/linux/386/kubectl
sha256: 5522ebc742d12e12ac616ccc5c33d15db952ad3b5c63724841209bc0acf6578d
- name: v1.26.15/bin/linux/386/kubectl-convert
sha256: aa56734619ab3239ae2c7b94bf9dfeae2a99a996a4adfc4850df3ff531a70dc9
- name: v1.26.15/bin/linux/amd64/apiextensions-apiserver
sha256: f1e3b3d29ebb834d95554c27d2c48745665d8e89ff42781f9ffd519101773826
- name: v1.26.15/bin/linux/amd64/kube-aggregator
sha256: 714356703264bcf02ee4991a9847476aedce167ede30bf6fe7a5016a60cfcf2d
- name: v1.26.15/bin/linux/amd64/kube-apiserver
sha256: 678d12bccc05b62939a6b88d0f259e74b0a8f89a948683fa8384ed45f96ecb36
- name: v1.26.15/bin/linux/amd64/kube-apiserver.docker_tag
sha256: fa944786bbc3f02d583c2ec221039346bbf782208f8850634690d1f82c8aefb7
- name: v1.26.15/bin/linux/amd64/kube-apiserver.tar
sha256: 03f7cfbbf4fcdcc587b9dd0ed233a52d033d2d0d1a48a2bdf74fcd8c13a4222e
- name: v1.26.15/bin/linux/amd64/kube-controller-manager
sha256: c28537f358853704a8f81ae295d8fe16cb9f5708a45395a8f03df35f8afc37b1
- name: v1.26.15/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: fa944786bbc3f02d583c2ec221039346bbf782208f8850634690d1f82c8aefb7
- name: v1.26.15/bin/linux/amd64/kube-controller-manager.tar
sha256: ea38cb930791e9064571ecbd32ee81fb43fb1ff24b11100cdf8ac05fce644e73
- name: v1.26.15/bin/linux/amd64/kube-log-runner
sha256: a5df27dd50e3cda5e0dcc70589968184948945f42c6156f2040c3c1ad03c5db8
- name: v1.26.15/bin/linux/amd64/kube-proxy
sha256: eeb52b9c27b368b14e078720be5fc7f6c203469ce49b89bbfa60164965afc74f
- name: v1.26.15/bin/linux/amd64/kube-proxy.docker_tag
sha256: fa944786bbc3f02d583c2ec221039346bbf782208f8850634690d1f82c8aefb7
- name: v1.26.15/bin/linux/amd64/kube-proxy.tar
sha256: 916220ee9be1b0d795c8d67c8d651b10c2bf062f7e54b51c92aaeb85c3b2ddda
- name: v1.26.15/bin/linux/amd64/kube-scheduler
sha256: 6a48bed17b490ae94fa17738523422f1d541c405a5f308225d46962c6d7351cc
- name: v1.26.15/bin/linux/amd64/kube-scheduler.docker_tag
sha256: fa944786bbc3f02d583c2ec221039346bbf782208f8850634690d1f82c8aefb7
- name: v1.26.15/bin/linux/amd64/kube-scheduler.tar
sha256: 54af7a5b73de2c33918871ab856e914ef220bf4c34a2c065f6403287d9862471
- name: v1.26.15/bin/linux/amd64/kubeadm
sha256: 7e0f5bd34ddc6fac932cf9a137c57ade150ec53f9558d693e336ed9948d6ba76
- name: v1.26.15/bin/linux/amd64/kubectl
sha256: b75f359e6fad3cdbf05a0ee9d5872c43383683bb8527a9e078bb5b8a44350a41
- name: v1.26.15/bin/linux/amd64/kubectl-convert
sha256: f2c0018e9532ca51964f55f8e8fcb15dc038042f5ba84a163b08528b1282e2f7
- name: v1.26.15/bin/linux/amd64/kubelet
sha256: 20db3c21d8e7215a581e48393be5b924267f1bb82ac69e22bd701a10df9f3974
- name: v1.26.15/bin/linux/amd64/mounter
sha256: c835edbd8fe6f1fbd2d95d400eb6457620d761336a6b2ecf8bbe0c9952c61b5b
- name: v1.26.15/bin/linux/arm64/apiextensions-apiserver
sha256: cd190390392e8554474defdb156b3a5d3163b76cecb9c4e98b0b8dca0b1e80a8
- name: v1.26.15/bin/linux/arm64/kube-aggregator
sha256: ae42919851062832866b8cba58177a8eecafef4d9e9283ff1cf75185eb2b2bca
- name: v1.26.15/bin/linux/arm64/kube-apiserver
sha256: 01c28100b8c6525d86ad108db95bf84b3190cfc721f882487d12d4eedab44dc1
- name: v1.26.15/bin/linux/arm64/kube-apiserver.docker_tag
sha256: fa944786bbc3f02d583c2ec221039346bbf782208f8850634690d1f82c8aefb7
- name: v1.26.15/bin/linux/arm64/kube-apiserver.tar
sha256: 7ecd9095d604e18c5fb331f6dac671061089649277070a23a20bcf55aacae6d9
- name: v1.26.15/bin/linux/arm64/kube-controller-manager
sha256: 2eb867bac54b008ed3c82712ca18439bf489c4415d1d4dc4f0180e4f36f6139b
- name: v1.26.15/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: fa944786bbc3f02d583c2ec221039346bbf782208f8850634690d1f82c8aefb7
- name: v1.26.15/bin/linux/arm64/kube-controller-manager.tar
sha256: 077efeb0efec1edcc2e2b896da6194c6b6a577d5fc33442e0fe68b621e15f072
- name: v1.26.15/bin/linux/arm64/kube-log-runner
sha256: be0764213a3905a02a3de81a5258a1247bcde23b97531179327f5511eb694815
- name: v1.26.15/bin/linux/arm64/kube-proxy
sha256: ddfd38ea10b7874897d551495b32daf44ca6faaf987752fbf97239f85845ad21
- name: v1.26.15/bin/linux/arm64/kube-proxy.docker_tag
sha256: fa944786bbc3f02d583c2ec221039346bbf782208f8850634690d1f82c8aefb7
- name: v1.26.15/bin/linux/arm64/kube-proxy.tar
sha256: 9b59fde21fbed04f74f936eaf4fce63956c739050871c4bda3d62b3a1c14d2c1
- name: v1.26.15/bin/linux/arm64/kube-scheduler
sha256: 578e17236a1aae8b6c11a919013a3ab8d40afeef16e2c823299b5e59363851aa
- name: v1.26.15/bin/linux/arm64/kube-scheduler.docker_tag
sha256: fa944786bbc3f02d583c2ec221039346bbf782208f8850634690d1f82c8aefb7
- name: v1.26.15/bin/linux/arm64/kube-scheduler.tar
sha256: 47d72ddd6223e1e43d6fdaa37807baac7c48fcfc01fac5dc6c95841fd76851f4
- name: v1.26.15/bin/linux/arm64/kubeadm
sha256: 881a76cc98da0fe91394cb26f909186d0dcbf378262d11803ccf76f2a84a9039
- name: v1.26.15/bin/linux/arm64/kubectl
sha256: 1396313f0f8e84ab1879757797992f1af043e1050283532e0fd8469902632216
- name: v1.26.15/bin/linux/arm64/kubectl-convert
sha256: f7e7fee8402bd5d19e85d8b4a75bb8528c47ab88aff8e2dbf998b5d4ba88b810
- name: v1.26.15/bin/linux/arm64/kubelet
sha256: 4de64168aa08fe2149ec4a29cfaa683947a8ad866090aaf2c75336ce547b85b0
- name: v1.26.15/bin/linux/arm64/mounter
sha256: a181bd30aace153710639b537b9e9826da69a2ac5a8ad26d0adeff380e13a804
- name: v1.26.15/kubernetes-release.spdx
sha256: 786d5c7e452de913b985f9c0cddb9293a3d6d8b417f9c6d166989e61568ce837
- name: v1.26.15/kubernetes-source.spdx
sha256: 840d3227c4870b332517ba86c316de084bdd3f5fe77aa6a40433006ddaa60523

View File

@ -1168,3 +1168,197 @@ files:
sha256: 4646c6595a2def16f3451f27f93023006edb9e8dd204c3524434cbef6fbfef8f
- name: v1.27.11/kubernetes-source.spdx
sha256: 00afb60ac7bc600d3c86a098d778172ba8d265e93996f125907c619cd39f2bea
# kubernetes 1.27.12
- name: v1.27.12/bin/darwin/amd64/kubectl
sha256: bb4cb346b20fdb40a20f6f55c527974f5e5f2eb7bcf7950c545ac6d65f00eeaf
- name: v1.27.12/bin/darwin/amd64/kubectl-convert
sha256: 4c56a869c778a9d5e16dd4038c5b9572ec89d14fe7294fde2110a83385bcffdb
- name: v1.27.12/bin/darwin/arm64/kubectl
sha256: ad6191bca8a725596ec67181c1c541ab919f87444ed149ed0b1cf30a28a6d1bf
- name: v1.27.12/bin/darwin/arm64/kubectl-convert
sha256: 15e7bb1c2ddf2a10100ee50450579b23b392b769903dd6889bad4e3b3a8170b5
- name: v1.27.12/bin/linux/386/kubectl
sha256: bff8f2ae918cdf244abe020c601e770200bd06700e2ed68952846c4d637feb82
- name: v1.27.12/bin/linux/386/kubectl-convert
sha256: b6f3587cd89d742c416dd5d50790a09fb5fa74ed65f76cd638f9fdb478b5a327
- name: v1.27.12/bin/linux/amd64/apiextensions-apiserver
sha256: 7a7d2e862d4f5cb102265f18aea9ab8ba26ec78b2394c9102ae04c5528d5fbfc
- name: v1.27.12/bin/linux/amd64/kube-aggregator
sha256: 6b85c6aa3d104599ce7e229f8c785bd1894a25773e889dd63dc28cb5e2f0cd40
- name: v1.27.12/bin/linux/amd64/kube-apiserver
sha256: 7bcd89a3e0f4dea0f2c3148759a18f71267e508c47109c731422a0d959f22852
- name: v1.27.12/bin/linux/amd64/kube-apiserver.docker_tag
sha256: e7c0d1b99ada69614fc13bcfb368a3bddfe2cdd93f6426179be3f36663567203
- name: v1.27.12/bin/linux/amd64/kube-apiserver.tar
sha256: cf65348a11aba99e7c768c24298f5793412f227e6a34979843e11b2ab6948f91
- name: v1.27.12/bin/linux/amd64/kube-controller-manager
sha256: dbb9e0eecfc8205a5d5d754ae2a491708c15ba65d36d5a8e70fabe63e8648424
- name: v1.27.12/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: e7c0d1b99ada69614fc13bcfb368a3bddfe2cdd93f6426179be3f36663567203
- name: v1.27.12/bin/linux/amd64/kube-controller-manager.tar
sha256: 48b96dec18a6c0bfa86325b6703de5474810cc5e63d0183b0f3517e8b42228e4
- name: v1.27.12/bin/linux/amd64/kube-log-runner
sha256: 1f1e0b4617ad04fd408b7a76442b87e2c940b61652192d8a69883495694ac900
- name: v1.27.12/bin/linux/amd64/kube-proxy
sha256: c12d70708c68d8819dbcb3dc569d0b2d9e876130d4ba2c594509d02b5d82f619
- name: v1.27.12/bin/linux/amd64/kube-proxy.docker_tag
sha256: e7c0d1b99ada69614fc13bcfb368a3bddfe2cdd93f6426179be3f36663567203
- name: v1.27.12/bin/linux/amd64/kube-proxy.tar
sha256: 393d1f0e2edfd8f95cbd7ddbf34897817d9ea040b7bff420ca3154189b215c2e
- name: v1.27.12/bin/linux/amd64/kube-scheduler
sha256: 0221a56b98803ddad3cfff722deb742b3fb697df42ac442b58a0f614abae4f52
- name: v1.27.12/bin/linux/amd64/kube-scheduler.docker_tag
sha256: e7c0d1b99ada69614fc13bcfb368a3bddfe2cdd93f6426179be3f36663567203
- name: v1.27.12/bin/linux/amd64/kube-scheduler.tar
sha256: 29517a962d66aef3f02ea96cead4d7a57059e09706a4d2d53a5aaee2478598b0
- name: v1.27.12/bin/linux/amd64/kubeadm
sha256: 06ee36cc80cfdfc01c937d750783d3ca6169a3da76382c7af3dd172d9f6bfa4e
- name: v1.27.12/bin/linux/amd64/kubectl
sha256: d639eda39be2dce42fbec21e038942ab5734541715e3ea5fb29c9ad76686bd7f
- name: v1.27.12/bin/linux/amd64/kubectl-convert
sha256: dec3650fdd6ed74dacc73b647432f9817e7d81e65e0a3328c04adebea026b96c
- name: v1.27.12/bin/linux/amd64/kubelet
sha256: aae861a21913c274228ccdad1609b370e5198c9f4b39b8924b20a7ffe7f148e0
- name: v1.27.12/bin/linux/amd64/mounter
sha256: cffdb89f07c8a6b5f2afd7b096af01cb2a14f84330cf793b5feae1a3d69277d6
- name: v1.27.12/bin/linux/arm64/apiextensions-apiserver
sha256: 5fd8a9941745e4ff7dfcd4a09547754041668f037b7280b05a6c56861f6de0ac
- name: v1.27.12/bin/linux/arm64/kube-aggregator
sha256: 0bc32e26a319adb65444f46e89b0d296523637be9cd7a55e85948990260c701c
- name: v1.27.12/bin/linux/arm64/kube-apiserver
sha256: f8281ef811a70b5bb97d4ae267c9fda7749c9edfafb6e45afecca994f5edeb75
- name: v1.27.12/bin/linux/arm64/kube-apiserver.docker_tag
sha256: e7c0d1b99ada69614fc13bcfb368a3bddfe2cdd93f6426179be3f36663567203
- name: v1.27.12/bin/linux/arm64/kube-apiserver.tar
sha256: 4ccc9baba8cf869f7a870b3511db719701918a2660406c09c6b2aa09e4b0ec34
- name: v1.27.12/bin/linux/arm64/kube-controller-manager
sha256: 93ed31fc2efffde1f916e7108bcda16cbdf450855da5993182ddcf4d88d2d292
- name: v1.27.12/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: e7c0d1b99ada69614fc13bcfb368a3bddfe2cdd93f6426179be3f36663567203
- name: v1.27.12/bin/linux/arm64/kube-controller-manager.tar
sha256: 3ea5d8b11bb3f0bd2956d587b68913af62e5870e9e29a6e69014e427767fd982
- name: v1.27.12/bin/linux/arm64/kube-log-runner
sha256: de7e400ffba205718b1129ecd2b37e3c6ec00adeadf103a1e39129274ea3f119
- name: v1.27.12/bin/linux/arm64/kube-proxy
sha256: 4215d48faab6c17cc8ae581d748dd4b6cac0b208c311af042cba504af1380223
- name: v1.27.12/bin/linux/arm64/kube-proxy.docker_tag
sha256: e7c0d1b99ada69614fc13bcfb368a3bddfe2cdd93f6426179be3f36663567203
- name: v1.27.12/bin/linux/arm64/kube-proxy.tar
sha256: 0537d692635ee878539f4d678526dbd459bafbd340ecacc4ef0d3b7dde728271
- name: v1.27.12/bin/linux/arm64/kube-scheduler
sha256: 708f334d7eadc1c4a2d854a2f331c59a538b86c846753eb8e4c03522176eba30
- name: v1.27.12/bin/linux/arm64/kube-scheduler.docker_tag
sha256: e7c0d1b99ada69614fc13bcfb368a3bddfe2cdd93f6426179be3f36663567203
- name: v1.27.12/bin/linux/arm64/kube-scheduler.tar
sha256: 2b4c5e1ae3de84e5f93c25ee19779d4154d60d1d08aee7d354b6347d03e01b28
- name: v1.27.12/bin/linux/arm64/kubeadm
sha256: e74d47c14b5a251cff961dcce92cd632abcfd0fba4a07e78f0a5a5b2796e4b84
- name: v1.27.12/bin/linux/arm64/kubectl
sha256: bfc6cb71041ebc0f048402988eccc107cfff2b866c864231c9ada05ab328e5bf
- name: v1.27.12/bin/linux/arm64/kubectl-convert
sha256: 0ec6a7ed22e99725522022126d5c16afc0615cba5d9f362a76779437cdb22817
- name: v1.27.12/bin/linux/arm64/kubelet
sha256: 0d7d2d25c8b909d6cec7c1c2a5bfe51428ec33eaa5e8b209c718b77983e9dcba
- name: v1.27.12/bin/linux/arm64/mounter
sha256: 94d7bed9e8358c5c57d355273022e97c139b5a9847f489cb38630072c5b2269d
- name: v1.27.12/kubernetes-release.spdx
sha256: 964a9e521278f9d2c9ae0eb18dafce43582d0ebe2ec3504eb53c99ad2de30629
- name: v1.27.12/kubernetes-source.spdx
sha256: 4b0a9319351c548d1e64337e39979cd4b5ed51219f7331c893d71131f2b072fb
# kubernetes 1.27.13
- name: v1.27.13/bin/darwin/amd64/kubectl
sha256: 7f39c78f21b1181638789253b8d19a8ae93d2e57152f20c9a672a45927b7c501
- name: v1.27.13/bin/darwin/amd64/kubectl-convert
sha256: 6c6d771e4306f944efe45634b9739464bc2e190e1f61fd7cbfa1915c5d1be88a
- name: v1.27.13/bin/darwin/arm64/kubectl
sha256: 959cb92818559ed81ac9260e83211f7075a19e4856b2f37a09f4ccf37d379e6e
- name: v1.27.13/bin/darwin/arm64/kubectl-convert
sha256: c43d981ea9edd91428d62e5662b1dd01c74934684895690e10f888b361d6d050
- name: v1.27.13/bin/linux/386/kubectl
sha256: ca654a9ff05fcfb9408d6a7dae8bbdd237920c2aa863773bfb4a1c69b3d1751e
- name: v1.27.13/bin/linux/386/kubectl-convert
sha256: 7636a8e8d1b8e6ac9f80e24a1681be8d7e0306577b61a483e0ee740bc83b87fb
- name: v1.27.13/bin/linux/amd64/apiextensions-apiserver
sha256: a0bd58ff4e4c60b2065bbd345bac3deacbfd2620aec87aa1a68156082b500273
- name: v1.27.13/bin/linux/amd64/kube-aggregator
sha256: 0481e7e20fd9de179d504128cd47aa9121598465869d35bd6fcd2c42a53cfd41
- name: v1.27.13/bin/linux/amd64/kube-apiserver
sha256: c893071cc87a35e85cc3719daf53d3acbac36b911c170108db4a1cba4dbce7a2
- name: v1.27.13/bin/linux/amd64/kube-apiserver.docker_tag
sha256: c46f3cbd5c675eb78035dd8d78b5c3f9a1907a99f0456e7b55a841f6f057dd55
- name: v1.27.13/bin/linux/amd64/kube-apiserver.tar
sha256: 0618693cd212bfac4996a1027c43f853de148d48c6f07aed44208cc15f4c43e0
- name: v1.27.13/bin/linux/amd64/kube-controller-manager
sha256: 633d79e1b543f4cb51dc038a9f253ed3e1b8267ae6bab78b50b430f02f8c9196
- name: v1.27.13/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: c46f3cbd5c675eb78035dd8d78b5c3f9a1907a99f0456e7b55a841f6f057dd55
- name: v1.27.13/bin/linux/amd64/kube-controller-manager.tar
sha256: 3d2a0e7ccd14aec5c47f41bd00f83d5e57887c809482c2676baf9b9e2193fe38
- name: v1.27.13/bin/linux/amd64/kube-log-runner
sha256: e5fadc3274e7be50d9ed2047c568e24ee9f1023070a34336af4e92cadd1e1329
- name: v1.27.13/bin/linux/amd64/kube-proxy
sha256: 3b1c38f3af95f68a840319b6002719f12f2f23ad7a924ac962182aa232f44d89
- name: v1.27.13/bin/linux/amd64/kube-proxy.docker_tag
sha256: c46f3cbd5c675eb78035dd8d78b5c3f9a1907a99f0456e7b55a841f6f057dd55
- name: v1.27.13/bin/linux/amd64/kube-proxy.tar
sha256: 0310561b64aa425c93be070d6bce5e3f4941a47bac7eda9d3229529137692ee9
- name: v1.27.13/bin/linux/amd64/kube-scheduler
sha256: ee6263f19c706f56676c698b2c1ddad615d770898e588e7a222ea991e77eaf8c
- name: v1.27.13/bin/linux/amd64/kube-scheduler.docker_tag
sha256: c46f3cbd5c675eb78035dd8d78b5c3f9a1907a99f0456e7b55a841f6f057dd55
- name: v1.27.13/bin/linux/amd64/kube-scheduler.tar
sha256: 59704f83c35f5bdbc8b899259b372298272498f3fd8be8270fbab06136ae0d6a
- name: v1.27.13/bin/linux/amd64/kubeadm
sha256: b88c30b7067f095b7fa02c5560cc50d6e69a5a9fecc606ef477dc7efc86453b9
- name: v1.27.13/bin/linux/amd64/kubectl
sha256: e991f163197cbd85bbff22f656a74d48b69db5addfa43cc04cca0cf5328f57f1
- name: v1.27.13/bin/linux/amd64/kubectl-convert
sha256: 71006a6a89738cb246755c05a52ed874edc6ab6bbfbf0f9807bd1ada4f7abbcb
- name: v1.27.13/bin/linux/amd64/kubelet
sha256: ed68df2a77f3057ab47f57eacb6e9310e91731e4f43c58a3c3b5c857d78d0080
- name: v1.27.13/bin/linux/amd64/mounter
sha256: eb12327d4d520aaab4a70e433a6cbf7cd12634d48a804220809c730327773269
- name: v1.27.13/bin/linux/arm64/apiextensions-apiserver
sha256: 3d8c6fd107e34a6dea9ea2d73f47ccf7abbd02615b8cfcd5e1f311803c5a2449
- name: v1.27.13/bin/linux/arm64/kube-aggregator
sha256: bc58d290486f060c2a529668af262ce1905a1f43ff24e5e8ce57e54a4a76b6b5
- name: v1.27.13/bin/linux/arm64/kube-apiserver
sha256: b59e0978eca381dfaddec83ade254ef2c00ce8b3a47fc3caa39452194343e093
- name: v1.27.13/bin/linux/arm64/kube-apiserver.docker_tag
sha256: c46f3cbd5c675eb78035dd8d78b5c3f9a1907a99f0456e7b55a841f6f057dd55
- name: v1.27.13/bin/linux/arm64/kube-apiserver.tar
sha256: e6bb6a44460f0fdde87a25cd6a14d4294546be2b39e269dfd4004550c3591e43
- name: v1.27.13/bin/linux/arm64/kube-controller-manager
sha256: 4afd7df70d894574682e048f9323c0df4c1a3d03669671ff13842f3b633d3e10
- name: v1.27.13/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: c46f3cbd5c675eb78035dd8d78b5c3f9a1907a99f0456e7b55a841f6f057dd55
- name: v1.27.13/bin/linux/arm64/kube-controller-manager.tar
sha256: e3d5ddf0c1a3292ff6d900fe886959e79b2008390cafe1261d58e72876a74d18
- name: v1.27.13/bin/linux/arm64/kube-log-runner
sha256: f6766a609f695b34a249a449299e1b8e002e87cec0e9f9ebaa85bb5746ecb1df
- name: v1.27.13/bin/linux/arm64/kube-proxy
sha256: 31dab5ef8e4160a43ab573e47ec78fec0bd3383ec128c60783b11d64b6942a88
- name: v1.27.13/bin/linux/arm64/kube-proxy.docker_tag
sha256: c46f3cbd5c675eb78035dd8d78b5c3f9a1907a99f0456e7b55a841f6f057dd55
- name: v1.27.13/bin/linux/arm64/kube-proxy.tar
sha256: 1a387b8294b4d7250c02b55593f396e90a3a26e36ba03b9fc8b9a48196e3d63d
- name: v1.27.13/bin/linux/arm64/kube-scheduler
sha256: 7c0cce53bfb90ba3326648fe938c7c74bef173488f0d52b3f21759f22fa47cfd
- name: v1.27.13/bin/linux/arm64/kube-scheduler.docker_tag
sha256: c46f3cbd5c675eb78035dd8d78b5c3f9a1907a99f0456e7b55a841f6f057dd55
- name: v1.27.13/bin/linux/arm64/kube-scheduler.tar
sha256: 22845273722c5e8c7400fd18e0e2306c14a6b6704ef76f5e1cdfdae3b9613008
- name: v1.27.13/bin/linux/arm64/kubeadm
sha256: f334ba0612fada50e98a7ea56b686b35c22f0e3243ec2210f2a6a87e841a139f
- name: v1.27.13/bin/linux/arm64/kubectl
sha256: 4838ad8f3902c928f6139d69eba962b1cc2471511c828885650d728d970594d1
- name: v1.27.13/bin/linux/arm64/kubectl-convert
sha256: cd58adba8fddee3c8b2f9ed8bae10d582223934496ff4d791cf1e24069a72134
- name: v1.27.13/bin/linux/arm64/kubelet
sha256: d7bfb14d0b0fc2c41074baf02617cf98589fd029fb3539ea017825e36371f19c
- name: v1.27.13/bin/linux/arm64/mounter
sha256: 24a75d659fb5ecfa2c19cf0a9abb4011e352ecfaf9ae355dac6c410fbc867a5a
- name: v1.27.13/kubernetes-release.spdx
sha256: e3f2a31e60adff5f0430e765c4a2ddcc9e068b883e9515394476574c76ea746d
- name: v1.27.13/kubernetes-source.spdx
sha256: 53fb7101380a039edf3d0e1c7c0f56b834c4bda0e22562a76a2033de3766715f

View File

@ -844,3 +844,213 @@ files:
sha256: 5e9b68fae70eaa95d14304cb3fc5f00aa0ba6a317d82b75da6aa84ae60690ee4
- name: v1.28.7/kubernetes-source.spdx
sha256: 31c7e3e216e7cc5c8eb9210b9980c3913da55a240003c60e7a57a8f620cfe36f
# kubernetes 1.28.8
- name: v1.28.8/bin/darwin/amd64/kubectl
sha256: 959acd160b2c858c08426c64f533e768581182428bf9afd6965e1d0f37909b16
- name: v1.28.8/bin/darwin/amd64/kubectl-convert
sha256: f0e8469497f0597d466002e01a77dba9d20abbd5bb371dbec3f3b979cbfcbdf4
- name: v1.28.8/bin/darwin/arm64/kubectl
sha256: 280b9ad125bb648ef81839349e2b921db6d674cc153b3c6116d65383260aeae5
- name: v1.28.8/bin/darwin/arm64/kubectl-convert
sha256: 4782890b85961dc635ce1900eb21d1cfe6d7899e895b4d05857ee9ad5d948a2d
- name: v1.28.8/bin/linux/386/kubectl
sha256: 9f838e7a362883e59d81326dd5c12bfa0a4b84d93bb0951f42ec791cf43014df
- name: v1.28.8/bin/linux/386/kubectl-convert
sha256: 4d50fb8c25651c48404fcfb27a6ba679aa15e57221fe4448fe80f011e42c4033
- name: v1.28.8/bin/linux/amd64/apiextensions-apiserver
sha256: ce382f17cb65d4905e2eed69c04c2acc838a614578affa0c26031fa363834552
- name: v1.28.8/bin/linux/amd64/kube-aggregator
sha256: 77964336af70db35ef3d3b09ec2440235e9a329b866c8b53668b587b450365cd
- name: v1.28.8/bin/linux/amd64/kube-apiserver
sha256: 806948e92bd457df2a8939288d5cf8ae16417c773e1cd775af76bdd49c8c5515
- name: v1.28.8/bin/linux/amd64/kube-apiserver.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/amd64/kube-apiserver.tar
sha256: 63948c8c6aea5e1e4d6c1f8c2d77927c3250449510f4d19430db21c9cec2e910
- name: v1.28.8/bin/linux/amd64/kube-controller-manager
sha256: b0eeb001fb88a12c3dba2e018bb456b3755b1f37d959915085f42adfba0e7b7a
- name: v1.28.8/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/amd64/kube-controller-manager.tar
sha256: a9695b6093cd8a72fb84314ca8a8a5e079ac6bffb8a078a08a159c43d624f125
- name: v1.28.8/bin/linux/amd64/kube-log-runner
sha256: efa94f04e01c57a0734a55250838fd66051d1a9cae740a023e396634024cb275
- name: v1.28.8/bin/linux/amd64/kube-proxy
sha256: d5173215724ceff91fbe4b6e578eb8eb3c4ad8a7d9c5d4acef63c8656a037dc8
- name: v1.28.8/bin/linux/amd64/kube-proxy.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/amd64/kube-proxy.tar
sha256: 99ca70d5d604b715ad2cf8d3a9bf558a8b1df53212aa78b5e48fbdb32855fd9e
- name: v1.28.8/bin/linux/amd64/kube-scheduler
sha256: aec8a2f263073f3926820845067b8173f0fbaaa37f619eaea2447f7d743d3d96
- name: v1.28.8/bin/linux/amd64/kube-scheduler.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/amd64/kube-scheduler.tar
sha256: 87793c7836e87ad94e0cb1daa905da2c09f18d0c631fdca4abbcc034fe29b79a
- name: v1.28.8/bin/linux/amd64/kubeadm
sha256: c11946cbfd962e1197062534514226cfd70230349e6343ff3ecebfca5476ee64
- name: v1.28.8/bin/linux/amd64/kubectl
sha256: e02aad5c0bac52c970700b814645b62c4f18b634144398ac344875dbaf1072f8
- name: v1.28.8/bin/linux/amd64/kubectl-convert
sha256: c5df18fa1101b8a132d0e7d958aefd19bec1d286eb68219a707d43de775046f9
- name: v1.28.8/bin/linux/amd64/kubectl.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/amd64/kubectl.tar
sha256: a973c176948625979a0037086a627bc9c3fc313ba17cdfa90cac0ed707b22b33
- name: v1.28.8/bin/linux/amd64/kubelet
sha256: 049b412a5861255cd3922f612acb79ab51135e166c5d80acf12fba9179eebf0c
- name: v1.28.8/bin/linux/amd64/mounter
sha256: 056bd46c62418abf8cb496b3862cfebffca81ff3c31bfcf3ff1b0489e21141cf
- name: v1.28.8/bin/linux/arm64/apiextensions-apiserver
sha256: f5161554fbfb121a6fd2d32d40f43ca99674e78184bd59429d8e7b66f96b49c0
- name: v1.28.8/bin/linux/arm64/kube-aggregator
sha256: 671d06201060860cdb3aee6ed0a30c3d7b5d4dd0999d046a3ca29def2ece54ec
- name: v1.28.8/bin/linux/arm64/kube-apiserver
sha256: acd838174985e346c43830a67069f7409617b42e3610b8f4a16a94335552da3e
- name: v1.28.8/bin/linux/arm64/kube-apiserver.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/arm64/kube-apiserver.tar
sha256: b9e1267974a0cf53715eac97f2e5a01dfe72891abdc581dfc8b4160eeb6ba44d
- name: v1.28.8/bin/linux/arm64/kube-controller-manager
sha256: c89dec0d77800b24d593c9c92004c238f99f01a608bb9986037c6db023cb19c2
- name: v1.28.8/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/arm64/kube-controller-manager.tar
sha256: 2defb0dc52c4c1cca097dca363a71f3e21673f83c9ce00dca0980b99bdebec3f
- name: v1.28.8/bin/linux/arm64/kube-log-runner
sha256: cb24ed0db3314d86e7325b5f8a89b646c6bb9efc85ca15c050871d4e22e4c0cf
- name: v1.28.8/bin/linux/arm64/kube-proxy
sha256: 9de85012ba9a8f5139706b591658fffc2e6d5147f3310ce3b0fb356dcbc311cc
- name: v1.28.8/bin/linux/arm64/kube-proxy.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/arm64/kube-proxy.tar
sha256: 7cd43cc491c431c68d69653f7fb8efa19178fb3ea24f2356a574b16ccd21f5e1
- name: v1.28.8/bin/linux/arm64/kube-scheduler
sha256: a82d5095e0ca4b9adeb3f5a15654505128ec9838698273be47ae063d8d66a632
- name: v1.28.8/bin/linux/arm64/kube-scheduler.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/arm64/kube-scheduler.tar
sha256: 0a75121d976747d177f88fa3e9737505942902a0dc3ebc6d4643432e18bb7240
- name: v1.28.8/bin/linux/arm64/kubeadm
sha256: e0f47adc69ef84e2f6c42cc341b8a790904a929ad10ed1c23c2e822ec804e247
- name: v1.28.8/bin/linux/arm64/kubectl
sha256: 93d60dd36093b4c719f1f1bafcf59437c17cb2209341c7c94771e7dd9acdab33
- name: v1.28.8/bin/linux/arm64/kubectl-convert
sha256: 7b0ffe3c7f7aaa35ac0228e1fc59ded186b194203f0891c54fa722c434167ce4
- name: v1.28.8/bin/linux/arm64/kubectl.docker_tag
sha256: 834bdb13463382fed1a432a6c02ca238b63ede1d3eb0fcb38097b26a79896f19
- name: v1.28.8/bin/linux/arm64/kubectl.tar
sha256: 4201ff688bf2e41b35a89a31deb16a5e7a0321531f8747ae9b2ec0a77bb6d041
- name: v1.28.8/bin/linux/arm64/kubelet
sha256: 90d61f40b7bb061b0fc6d08b8b9ddae51f90863c899b098e19eaa89dc855f2c0
- name: v1.28.8/bin/linux/arm64/mounter
sha256: 0fdc9d4d208a6d82f5169c2fb7adcb68b4bc592327bd4dd0aef7e6b38ac4a7d6
- name: v1.28.8/kubernetes-release.spdx
sha256: e22101fc465d1748a96bda053fea257b54b63c0493f645d70b338b5753fe7c8d
- name: v1.28.8/kubernetes-source.spdx
sha256: 6b3eb33858c08c5d1748d0119b637e1a31acb029c6be765c304e2c9f70c43f13
# kubernetes 1.28.9
- name: v1.28.9/bin/darwin/amd64/kubectl
sha256: 99df1db1c735e7f6aceb1f53a0c8c313f51be34cda9d964b0764e96dd7275d09
- name: v1.28.9/bin/darwin/amd64/kubectl-convert
sha256: d2a85d12784be2f1381a7ff5cfbb74e3d1cbf38d0dfce3a2ac625cca5e9897a3
- name: v1.28.9/bin/darwin/arm64/kubectl
sha256: 48cb2db4cc76a9a3a0f5d7f4dd9bd839196b39d9726247384b91e32e6a83be94
- name: v1.28.9/bin/darwin/arm64/kubectl-convert
sha256: c22e420d2d6b6de1709f23bb6767d58fd22b6be8b0797eeec8ecdd7211632ddc
- name: v1.28.9/bin/linux/386/kubectl
sha256: 6276afaedda301cf206e7379b61c6f9f67aa8dfd1ba0a20a996f32ca334c2df2
- name: v1.28.9/bin/linux/386/kubectl-convert
sha256: 5826f924ab9ddcddd27c0390766f904eed6536bfa8552290305857a10c38e158
- name: v1.28.9/bin/linux/amd64/apiextensions-apiserver
sha256: b5587db3d971f7f926dec7c76bb77581bb607de38c8d71db76d8e67f8f047265
- name: v1.28.9/bin/linux/amd64/kube-aggregator
sha256: 5ee49ccc3f1be4db35ca1fd114907d5f01464c27957510cd6c11845789bf43a5
- name: v1.28.9/bin/linux/amd64/kube-apiserver
sha256: 2c610d30b9247894616d4338961956667c59b68972a2a7c45169466dd9cb94d6
- name: v1.28.9/bin/linux/amd64/kube-apiserver.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/amd64/kube-apiserver.tar
sha256: c4884836477f78a1b370a20eb8fc7d0a9fb0da250d644242bf02108a8d6d2925
- name: v1.28.9/bin/linux/amd64/kube-controller-manager
sha256: 051f046185e4baf8e1a84eab0e33ae6e2079f6c51b85648de8e169fceb7ef7f1
- name: v1.28.9/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/amd64/kube-controller-manager.tar
sha256: 58289664a27b0ee9b944fd97196d62ae2c17e75f637292543cfc9f3189f68488
- name: v1.28.9/bin/linux/amd64/kube-log-runner
sha256: db46e7005239640446105187341d31d3bfec67f86df3557ee7e54e1620e146a2
- name: v1.28.9/bin/linux/amd64/kube-proxy
sha256: 2bc4fa17e70e0fadb394c2bc25b725c3a520f19ba89c8fa22e3b76f6ca850cbe
- name: v1.28.9/bin/linux/amd64/kube-proxy.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/amd64/kube-proxy.tar
sha256: 31a58c962e7b2c0a1a4b408c9c2a71650bdd7a00a47c62a30b9f7abbcca20395
- name: v1.28.9/bin/linux/amd64/kube-scheduler
sha256: 3190b3134a244e22dcc970cf9153b7b92db0de8980e5b288d59fe43458d0d749
- name: v1.28.9/bin/linux/amd64/kube-scheduler.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/amd64/kube-scheduler.tar
sha256: fe546936528152203fee9f34fb6d4cd130851d7c5fc6ec72e3b3e9fae446171b
- name: v1.28.9/bin/linux/amd64/kubeadm
sha256: a4d8acf0a74cb1d07d96a1a34148f54c6420874221af16d8ec902d9bffc7ef89
- name: v1.28.9/bin/linux/amd64/kubectl
sha256: b4693d0b22f509250694b10c7727c42b427d570af04f2065fe23a55d6c0051f1
- name: v1.28.9/bin/linux/amd64/kubectl-convert
sha256: 123800ccb87976d5a400b17fa5bf80e90e1e27a2eace03b174d23495bbee8679
- name: v1.28.9/bin/linux/amd64/kubectl.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/amd64/kubectl.tar
sha256: 61ed7250b9c96897a6206d85d92e5469418027c1ad86f4f2f51da41f7f206079
- name: v1.28.9/bin/linux/amd64/kubelet
sha256: f3af46cff11c675a80d91ebb38ebc4e85a9f813ce93e56ee131e7fea1491b786
- name: v1.28.9/bin/linux/amd64/mounter
sha256: 7e8a70d588d3d8b1a795ea2c0cf6f7cda0b9d53a0fdd09c4315914025cb75e68
- name: v1.28.9/bin/linux/arm64/apiextensions-apiserver
sha256: cdb04eb7f0eab1ac26ea86abd803c3a0f1be74ec93af68c2f96251786a729dcf
- name: v1.28.9/bin/linux/arm64/kube-aggregator
sha256: 474c78741a84ac40dc6b0040ac8d2822865ca1f2cfdbd8858cc0711c20f6d66b
- name: v1.28.9/bin/linux/arm64/kube-apiserver
sha256: bf949010d1539eca6c88ddd04968b72472950596e8c5d15a963ece326edea74c
- name: v1.28.9/bin/linux/arm64/kube-apiserver.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/arm64/kube-apiserver.tar
sha256: 73175fff359746ec787f03052861cc88dc9b809037745b43cc6f0fff84251f0f
- name: v1.28.9/bin/linux/arm64/kube-controller-manager
sha256: 5d25a7e78e9675a9e8cc4a64ede3223e2cd935f4f58f6b224cbccdecff603b80
- name: v1.28.9/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/arm64/kube-controller-manager.tar
sha256: 25d9a5d9b0e70ff7162f07bc155265644c1920668315baa2ddf0a83bf3d863e5
- name: v1.28.9/bin/linux/arm64/kube-log-runner
sha256: d72aec47b06035c1d14ac339e058ac3f88b9be2b204776a894253d540b79f617
- name: v1.28.9/bin/linux/arm64/kube-proxy
sha256: 3dcb1be85043d6531dc09e4d1b8acb8ec59d061baf6da0035b50265834a43376
- name: v1.28.9/bin/linux/arm64/kube-proxy.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/arm64/kube-proxy.tar
sha256: 12d06480c69f609e54daf09ea24b136996423b29ecb95c668feb23091603d0e0
- name: v1.28.9/bin/linux/arm64/kube-scheduler
sha256: 13d530bc06906a32d83b26a3c7aa2388ad833850de9f000cb1c8b70bc8c7f7bc
- name: v1.28.9/bin/linux/arm64/kube-scheduler.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/arm64/kube-scheduler.tar
sha256: 99f5fb39de1f24214ea423054cd2d4cca9f5ebe9dc6530ccca88dde9e669bb83
- name: v1.28.9/bin/linux/arm64/kubeadm
sha256: cd6aefad8144a9771fd470529ff14be2675df7b561f7c56dee3fed4f81332dc4
- name: v1.28.9/bin/linux/arm64/kubectl
sha256: e0341d3973213f8099e7fcbbf6d1d506967bc2b7a4faac3fb3b4340f226e9b2f
- name: v1.28.9/bin/linux/arm64/kubectl-convert
sha256: b84db8452a1c1afb65ad657dc9c22f7d7058208ca7181e5e098bde12d532568e
- name: v1.28.9/bin/linux/arm64/kubectl.docker_tag
sha256: 32192680368746e9227a60039333e369efced8806f170140d9ef9885879f06f0
- name: v1.28.9/bin/linux/arm64/kubectl.tar
sha256: 75904f8700a7af393755782839deb49ceec694bcf7f291d430810c5682f418bf
- name: v1.28.9/bin/linux/arm64/kubelet
sha256: 312471ad255acfcdeea2c5849b171467af4518e96d69d727a3197ff334e9299d
- name: v1.28.9/bin/linux/arm64/mounter
sha256: 00ecc66b1755c09cbe06645b819e9d9f5def8442dc00b3f1a149d29319cf4634
- name: v1.28.9/kubernetes-release.spdx
sha256: e4fbb482ef77676b693644171a9f1f8bac54ce82ebfacf883440ce4862a1873a
- name: v1.28.9/kubernetes-source.spdx
sha256: d84695cd53a8ff8b83cc60d65ca8923ab292036913b91cf9bcd064910657d089

View File

@ -319,3 +319,213 @@ files:
sha256: 88bb79bfb535fa98ac12f3f519e92a2f361dd664bd923b638a53f5bd9d21d47b
- name: v1.29.2/kubernetes-source.spdx
sha256: dcf6b496b5736e8d5c633230cbbfb95050722ff0ad0aded3e8fc50ed4af2d9cb
# kubernetes 1.29.3
- name: v1.29.3/bin/darwin/amd64/kubectl
sha256: 1a1f9040bce74fb28c475dc157a86565fcabf883a697ca576993ab8372935836
- name: v1.29.3/bin/darwin/amd64/kubectl-convert
sha256: f9d827bc18747ef981eaecbb449cde1a12d6179f998afc2ed4eacfac3fe23561
- name: v1.29.3/bin/darwin/arm64/kubectl
sha256: b54bf7a3f4d52117b79e4d4f0d7273a93cb60bad54a87f3ab35c6800243cbb8e
- name: v1.29.3/bin/darwin/arm64/kubectl-convert
sha256: d8e49fc40ee63145ac22ef2e35c4114aa250a363260c0742a1bfa5ace0b07435
- name: v1.29.3/bin/linux/386/kubectl
sha256: 2365d1e9e720683d4e670dbca2ede2c4c598ac28eabea989be57519d83447937
- name: v1.29.3/bin/linux/386/kubectl-convert
sha256: 05f229b4c6b744f2473f63b00187b473864e6b3666932b8ccd30081e1130dbdf
- name: v1.29.3/bin/linux/amd64/apiextensions-apiserver
sha256: 3c1d28c4749133d0c30e4c6f038274bfc660effbfc22e72a130ca2387f0c037f
- name: v1.29.3/bin/linux/amd64/kube-aggregator
sha256: e0e2f3081464851124d1d73ceac174a27e00304b63bbabd8ff440eaba1b110dc
- name: v1.29.3/bin/linux/amd64/kube-apiserver
sha256: 54471e8a527f4b354f9abaa3b4feea2bd40ec57df5e0662fb574225719c52c9d
- name: v1.29.3/bin/linux/amd64/kube-apiserver.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/amd64/kube-apiserver.tar
sha256: ac5a68a34069bce0d1cb807bfdafaee2b5bc47612345e41022ca534295ce8184
- name: v1.29.3/bin/linux/amd64/kube-controller-manager
sha256: 4fa41c4fd71bd3dccaed11919cf38ad2f2d2de1549d48aed74f71bf76be5d4bb
- name: v1.29.3/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/amd64/kube-controller-manager.tar
sha256: cc43b44c3929e40d9ed9d91dde5b3690be288139fea43f8ae8d363a1b10d3190
- name: v1.29.3/bin/linux/amd64/kube-log-runner
sha256: 4039c65c971b93849291a7eac802e83f314884ba856cca7744c743addf58aa81
- name: v1.29.3/bin/linux/amd64/kube-proxy
sha256: fd6f866edb5565881ae91a04293259450fdb68973617d60f09f2e58a9e6bc650
- name: v1.29.3/bin/linux/amd64/kube-proxy.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/amd64/kube-proxy.tar
sha256: 1913e2f3c8a49dde3f15d5e66057ddaa99ff8b20ef6812ec74b96be36f345911
- name: v1.29.3/bin/linux/amd64/kube-scheduler
sha256: 574f383c46fd7c933ba0a8aa3f5e2ca9639ed5b060a1eeecefaf64d7ef898366
- name: v1.29.3/bin/linux/amd64/kube-scheduler.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/amd64/kube-scheduler.tar
sha256: 1ddf78e81325bd1e2ab593be931fc6093e7b4aa3cd95b1c8fc7ed3793828a3fd
- name: v1.29.3/bin/linux/amd64/kubeadm
sha256: 6abaa1208bf40b6d1f49e518bd68c8ae4a1be0c5b7d3e45d87979999ab070d8b
- name: v1.29.3/bin/linux/amd64/kubectl
sha256: 89c0435cec75278f84b62b848b8c0d3e15897d6947b6c59a49ddccd93d7312bf
- name: v1.29.3/bin/linux/amd64/kubectl-convert
sha256: 10d6a5eef8dcf6ab8bfba02d1978fa9d87b7c507b3ea5be4ed39a646785f4f62
- name: v1.29.3/bin/linux/amd64/kubectl.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/amd64/kubectl.tar
sha256: 2131554d92494ed554cdec3795edf7d4f2c08e46ec8a457284a4c48f5f9335df
- name: v1.29.3/bin/linux/amd64/kubelet
sha256: d8b55a2f8a87c8cd2cbf867d76d1d7f98b7198a740db19bad6ed7b8b813de771
- name: v1.29.3/bin/linux/amd64/mounter
sha256: 25fcb5a6871276518f5e3cb1d4e974d381adac970c5596b19a644f8cf2bc9925
- name: v1.29.3/bin/linux/arm64/apiextensions-apiserver
sha256: 6507c99d8dabf1528c36dbf759adba91d6cbed123f19000a2d6fe1714ae74efa
- name: v1.29.3/bin/linux/arm64/kube-aggregator
sha256: fea533974b16654f4b781bb3103a6c467922417aaa8327d8545348c30f7e83e0
- name: v1.29.3/bin/linux/arm64/kube-apiserver
sha256: 09cbb16dbd86fcfbc1ceb37fc56580adebf64fa6dd7d07d27ffaf5dd54757c17
- name: v1.29.3/bin/linux/arm64/kube-apiserver.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/arm64/kube-apiserver.tar
sha256: 923611c70e4d17d04b985605c92942338449931e96f59b6be9eb38b84b88d9dd
- name: v1.29.3/bin/linux/arm64/kube-controller-manager
sha256: d30fd85c63d0e9fa89e04445fc8def70f13662c6312f1e75b4b708dd95c7e54d
- name: v1.29.3/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/arm64/kube-controller-manager.tar
sha256: 18aa501dfd0e4ed4a5bb39aaa9f0faa6ac857e36effe7e35d2d4a3623d086901
- name: v1.29.3/bin/linux/arm64/kube-log-runner
sha256: 13d15f424d9332bf6a4ac594c75a72c6d0e8ebaeb6b16bc6ac515adc2d607bae
- name: v1.29.3/bin/linux/arm64/kube-proxy
sha256: 509c3c8e00e158392526624f53761b53ebc8f881750c3b0d8598e7784575b23b
- name: v1.29.3/bin/linux/arm64/kube-proxy.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/arm64/kube-proxy.tar
sha256: c90e511285bf716b587353d96bce340ccfa30e5a63e0959a2633676d56fdf973
- name: v1.29.3/bin/linux/arm64/kube-scheduler
sha256: 1e9f85f352f622a6815ae4a4568d28af6cc95739cace90279666695189646e49
- name: v1.29.3/bin/linux/arm64/kube-scheduler.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/arm64/kube-scheduler.tar
sha256: 206b2caeeda00551a9813662c26a5810cc318b7568292a52a8380a15e468f50e
- name: v1.29.3/bin/linux/arm64/kubeadm
sha256: ce2e4c230f954e59ae77e34c4ff2ae08cad3970505ae1e21b6337e6d83b21682
- name: v1.29.3/bin/linux/arm64/kubectl
sha256: 191a96b27e3c6ae28b330da4c9bfefc9592762670727df4fcf124c9f1d5a466a
- name: v1.29.3/bin/linux/arm64/kubectl-convert
sha256: 5f046c0c804530e34509a842d40605531563501f977b6145514b329d1c4f2d17
- name: v1.29.3/bin/linux/arm64/kubectl.docker_tag
sha256: b4160dee41ae422a3d66925330fd0f6a1db780500998158ca0851897674844b1
- name: v1.29.3/bin/linux/arm64/kubectl.tar
sha256: 64ccfdcbb7625e2277b06701694bf0a1198a313c16fe51bad6ad75c984489dfd
- name: v1.29.3/bin/linux/arm64/kubelet
sha256: 891dce19ed0eae34050c2eca0454204892e97bfe1a926f988cd044a987a9c7c9
- name: v1.29.3/bin/linux/arm64/mounter
sha256: 5846beff45fb5c75b4e74a91eb0d34779158551aa4b9bd169eb24384922628fc
- name: v1.29.3/kubernetes-release.spdx
sha256: 25eb24e3d2589286f7079e2ffe5946d678ae506e052910940aa4b2db3bbd5c66
- name: v1.29.3/kubernetes-source.spdx
sha256: 6b3cfb7d10bc583757c1085b1baa03706b5905fe554cc524ef280d4d9b3591f2
# kubernetes 1.29.4
- name: v1.29.4/bin/darwin/amd64/kubectl
sha256: 7af9b8a233c49ad5eecb59004719e0bc07972492b674ebbce2919e53326b55b2
- name: v1.29.4/bin/darwin/amd64/kubectl-convert
sha256: 5c4523bbf517ff13d17e2682b8f6df03b3f2e2a63e0d4a01a2b2039d5e03cb4e
- name: v1.29.4/bin/darwin/arm64/kubectl
sha256: b3a881e6208aa41275a97481676a8c8a3c16282f3cd7b441b17f258a054012f1
- name: v1.29.4/bin/darwin/arm64/kubectl-convert
sha256: 6656102d28f432643f03a529e81b15c72888c557f5aca29a32514d4b7edfa218
- name: v1.29.4/bin/linux/386/kubectl
sha256: 2fb69b7a38cfc5733786593662f5bde264ef802c4678fd397b4b033beae774c9
- name: v1.29.4/bin/linux/386/kubectl-convert
sha256: c418a77218d46d255a9528a54418439786771039a802241053026b5a4b975543
- name: v1.29.4/bin/linux/amd64/apiextensions-apiserver
sha256: 4a8a7e7b3572fb3527f9ef25665144f4d4fb4f4c1be5665b10db4362b17b2b47
- name: v1.29.4/bin/linux/amd64/kube-aggregator
sha256: 78b99d217c60ed664e61195438ce98ec3694dd3fff6fd03f18ad3138f315ab7a
- name: v1.29.4/bin/linux/amd64/kube-apiserver
sha256: 0a6f3e63e4cbd8c829bb4397737075cd4331d490310d7a0745197f8701786c80
- name: v1.29.4/bin/linux/amd64/kube-apiserver.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/amd64/kube-apiserver.tar
sha256: 307568b0a3b18a1ae5cf13e4e140048854c4a385c3403cdba16dec3fa441bf78
- name: v1.29.4/bin/linux/amd64/kube-controller-manager
sha256: 78a68f3bec6d72aee4fa6ca5f4b0ced62e57b6da10e0cf9a2bf7d9f07708605a
- name: v1.29.4/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/amd64/kube-controller-manager.tar
sha256: 5a6a1fa8f8935499eb52ea86f2e7951548640f57b4ec1e0a5547977bacc42506
- name: v1.29.4/bin/linux/amd64/kube-log-runner
sha256: 7cb342fe43f39bc2384f11c1ce6e9209228b7a5f1cbec23224e0e07a29a753e4
- name: v1.29.4/bin/linux/amd64/kube-proxy
sha256: e451681d865bfe7bde3ef513c182c06a5be97c73ecf7216092ee05484f888002
- name: v1.29.4/bin/linux/amd64/kube-proxy.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/amd64/kube-proxy.tar
sha256: 099015a09b34f002042a9aecefc08eceacd31cefd7b76b7c608c35e55296d846
- name: v1.29.4/bin/linux/amd64/kube-scheduler
sha256: 73392f5e6befe0c0c8c75e9d9547a6681d5f19c72e1dc34aed3c9a99af2f1df1
- name: v1.29.4/bin/linux/amd64/kube-scheduler.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/amd64/kube-scheduler.tar
sha256: 1d64ae0760938d25df60230b6703d5fcc139fb9e7941af1eb9c3070c3dce400c
- name: v1.29.4/bin/linux/amd64/kubeadm
sha256: ea20ab064f716ab7f69a36d72df340257b31c9721ea86e1cf9d70b35999ddeea
- name: v1.29.4/bin/linux/amd64/kubectl
sha256: 10e343861c3cb0010161e703307ba907add2aeeeaffc6444779ad915f9889c88
- name: v1.29.4/bin/linux/amd64/kubectl-convert
sha256: 91ae60e4dc6f7c405b006cfaf1322606ffd38cc1d04bd59b7b8110e87ad1d9e6
- name: v1.29.4/bin/linux/amd64/kubectl.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/amd64/kubectl.tar
sha256: 33f6170daff1385600c7152030f5f7f2be22842f4f2f599ac3bca98aec02f727
- name: v1.29.4/bin/linux/amd64/kubelet
sha256: 58571f0ed62543a9bbac541e52c15d8385083113a463e23aec1341d0b5043939
- name: v1.29.4/bin/linux/amd64/mounter
sha256: 3e14baf659d5577fa607b7e2e317f9a96ec02872dc2312c428e1592f1d84c92c
- name: v1.29.4/bin/linux/arm64/apiextensions-apiserver
sha256: 0fedb7c7274a264d539b086ac2c1c7d24ee83871beeafaf1feae10e960ed11f2
- name: v1.29.4/bin/linux/arm64/kube-aggregator
sha256: bc31138f295e54e6e3726f15df74f26e3136192de5d9e9c7169f10f33122e66c
- name: v1.29.4/bin/linux/arm64/kube-apiserver
sha256: d97d8c7c9de073d3a89d6c3e64a91f4d23e9a4f957eb5fcc435e7a87e2338a7f
- name: v1.29.4/bin/linux/arm64/kube-apiserver.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/arm64/kube-apiserver.tar
sha256: 51ce6c29a0efc9cb9a9468612db78174d1c7eae9ab050704a8857d56e79eddfe
- name: v1.29.4/bin/linux/arm64/kube-controller-manager
sha256: 5835ebb1bc5661dd52a89ba94ca55f3b377b49998256dcd9d5206954370138b9
- name: v1.29.4/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/arm64/kube-controller-manager.tar
sha256: f18639240e752baf803f0503e043f5af1724cdd71f57392250353f7cf695efef
- name: v1.29.4/bin/linux/arm64/kube-log-runner
sha256: 64847c93b17f8208fb70a6f0e256fd9c0efa53e7a51cb08838fdccdd08e8d39d
- name: v1.29.4/bin/linux/arm64/kube-proxy
sha256: 326b8369cabc790a0a9bf8986a22c75906e1e82f129fac82f6a0bc29662a0acc
- name: v1.29.4/bin/linux/arm64/kube-proxy.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/arm64/kube-proxy.tar
sha256: d1d95c14343c4ea50a707408e8e9e56147b677afe59af0a0acdcb90d27ccd23a
- name: v1.29.4/bin/linux/arm64/kube-scheduler
sha256: 9e110675b0119cd2fb083e8812c15b865aabf647588b0efa937bde7745b98f5c
- name: v1.29.4/bin/linux/arm64/kube-scheduler.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/arm64/kube-scheduler.tar
sha256: c078e840f3bd4026e2f6b95685ca2c518ae48d79d755f6e4c472c5a7d24d85dc
- name: v1.29.4/bin/linux/arm64/kubeadm
sha256: 438287a91e08cbefecab79be8ac893a935c3dbf6e87bea895fb99f2bc38cf06e
- name: v1.29.4/bin/linux/arm64/kubectl
sha256: 61537408eedcad064d7334384aed508a8aa1ea786311b87b505456a2e0535d36
- name: v1.29.4/bin/linux/arm64/kubectl-convert
sha256: 42ec80da5d9a7e98c2e1d63915a172284f3d11c9921821985c0758fd790deaca
- name: v1.29.4/bin/linux/arm64/kubectl.docker_tag
sha256: 337757a3a9a8869b0f9e2b390526723f96b899207eb3c0f5034e43138f0b0435
- name: v1.29.4/bin/linux/arm64/kubectl.tar
sha256: ce1d768f4f43cce49e790275ec638b50cc2528ea4b6e96a353dab34e9f42ce94
- name: v1.29.4/bin/linux/arm64/kubelet
sha256: dc4bb6ea6cd35b024d63cc20d1c1800a9c695bd6f70411c57358d7c407513b00
- name: v1.29.4/bin/linux/arm64/mounter
sha256: 464db7903314a01d844560d219a4232c19dd7a6f1f847883ffd349adb68ffd48
- name: v1.29.4/kubernetes-release.spdx
sha256: 9c10b8690b6d1e085bdd83221f608f0f02622185e88ec100b9a63c09494d9ea3
- name: v1.29.4/kubernetes-source.spdx
sha256: cb041148213d3c36e39fe7a658f349d86ad4f025186eb21e944929bc7d126b9d

View File

@ -0,0 +1,111 @@
# This file is generated by generate-asset-hashes.sh
filestores:
- base: https://dl.k8s.io/release/
files:
# kubernetes 1.30.0
- name: v1.30.0/bin/darwin/amd64/kubectl
sha256: bcfa57d020b8d07d0ea77235ce8012c2c28fefdfd7cb9738f33674a7b16cef08
- name: v1.30.0/bin/darwin/amd64/kubectl-convert
sha256: f9e39f6fb2b36214bbe6a68a593e4d27220b69e3dfa0febb013798316319bd75
- name: v1.30.0/bin/darwin/arm64/kubectl
sha256: 45cfa208151320153742062824398f22bb6bfb5a142bf6238476d55dacbd1bdd
- name: v1.30.0/bin/darwin/arm64/kubectl-convert
sha256: 6193878910f20aa61a879fe1290afd278539589b6998dc63280209f204ecc892
- name: v1.30.0/bin/linux/386/kubectl
sha256: aca92cb70665b769bb9a50cba6b47abb92904a8a7abd428f79e42e2b659524d5
- name: v1.30.0/bin/linux/386/kubectl-convert
sha256: a32099261b0deebc95f5c3aaadac2c485dd3fe482324ad130068c62556048c48
- name: v1.30.0/bin/linux/amd64/apiextensions-apiserver
sha256: 2c38d4c815e0cd4abfc95377cec79e31120c6049e9a3633c12df7d9fc31ae62b
- name: v1.30.0/bin/linux/amd64/kube-aggregator
sha256: c68e969b1812983479ecfa76b2cfe4f5f995b5b65b65392506c8c4b24a76f11a
- name: v1.30.0/bin/linux/amd64/kube-apiserver
sha256: d2ade134a8a3c74c585bdba35ce60ce7462b97465015be0923aa62096ec4d281
- name: v1.30.0/bin/linux/amd64/kube-apiserver.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/amd64/kube-apiserver.tar
sha256: 68681234ef834eec18cf48f078bf5648e256567d48f01243086bb6954dbf80fa
- name: v1.30.0/bin/linux/amd64/kube-controller-manager
sha256: 2d1eca23dd39ee3c24bf6dab1a4bddbcc229b93db5ed50b0b1d5173a9545f044
- name: v1.30.0/bin/linux/amd64/kube-controller-manager.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/amd64/kube-controller-manager.tar
sha256: b295936543ed5861fcb44b98ebd1f2025f67a120ea6b194e2271df7cab1f325f
- name: v1.30.0/bin/linux/amd64/kube-log-runner
sha256: 180de2f720879abdfaa6df72bf8e882199dda8a1a85a5f6726098d0b05918dcf
- name: v1.30.0/bin/linux/amd64/kube-proxy
sha256: b71d28dda9f35a57fd72caae0bd574f68eb63b3d7724b2d45feac126cdee67fe
- name: v1.30.0/bin/linux/amd64/kube-proxy.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/amd64/kube-proxy.tar
sha256: ab82094df1f0c19fece52785e2ccf7e3816e3bfbfd79e8e6d987ba7d161da427
- name: v1.30.0/bin/linux/amd64/kube-scheduler
sha256: 5a7085ca550fb9107b362d17355b2dfb7c4455467d5c1774a5eeaa87994bbd94
- name: v1.30.0/bin/linux/amd64/kube-scheduler.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/amd64/kube-scheduler.tar
sha256: f546fc56f4fbd0f2e55baa3c9c10a1b8420e22381bf0f778373d004127edf4c4
- name: v1.30.0/bin/linux/amd64/kubeadm
sha256: 29f4232c50e6524abba3443ff3b9948d386964d79eb8dfefb409e1f8a8434c14
- name: v1.30.0/bin/linux/amd64/kubectl
sha256: 7c3807c0f5c1b30110a2ff1e55da1d112a6d0096201f1beb81b269f582b5d1c5
- name: v1.30.0/bin/linux/amd64/kubectl-convert
sha256: c1db77cae58382852090306602ae40d0c648ee344de28eadce660de7c68c882d
- name: v1.30.0/bin/linux/amd64/kubectl.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/amd64/kubectl.tar
sha256: 8be22d241e6c355b67f78d672d3d6b5d7d04ffef2e44df2c52858e4657ad3e50
- name: v1.30.0/bin/linux/amd64/kubelet
sha256: 32a32ec3d7e7f8b2648c9dd503ce9ef63b4af1d1677f5b5aed7846fb02d66f18
- name: v1.30.0/bin/linux/amd64/mounter
sha256: ca7d59af2b1ff9ff3dbabcb90c65d33d665b4f9a803232c1f17a7d51c3faa14a
- name: v1.30.0/bin/linux/arm64/apiextensions-apiserver
sha256: 2592485903bf74efc70211aabcd62b10c64de84e29db57ae68a15c026453a02d
- name: v1.30.0/bin/linux/arm64/kube-aggregator
sha256: 894d262c6aea268dec376ece5998a9628eafa119430d76fd23a9779a81716d1c
- name: v1.30.0/bin/linux/arm64/kube-apiserver
sha256: b866b2cacc835d304d63861320f2c98e0c20171ff34978a8d084599786854921
- name: v1.30.0/bin/linux/arm64/kube-apiserver.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/arm64/kube-apiserver.tar
sha256: 03fdc91ef9ff16f32c70ef30dfd3f939f925b8cad552f549096761c87e26892f
- name: v1.30.0/bin/linux/arm64/kube-controller-manager
sha256: a876d86750778382a0baf1f1af814e7cc9b6293c3ebe2b2c641852cc3911e5be
- name: v1.30.0/bin/linux/arm64/kube-controller-manager.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/arm64/kube-controller-manager.tar
sha256: a5649a9bf33aac70b0408dd726105815192b6bf32b3c58743cbed5c8eed63309
- name: v1.30.0/bin/linux/arm64/kube-log-runner
sha256: af7abe38592c271575703569a872a44879add6ff656f0182ede74c6c9fd9a3f9
- name: v1.30.0/bin/linux/arm64/kube-proxy
sha256: 9f6b72b255c34af14552f1f5269b5cd7661dbbb60ff61db8b929e9e0073c17ed
- name: v1.30.0/bin/linux/arm64/kube-proxy.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/arm64/kube-proxy.tar
sha256: 1194b42196f58ae36b570a2c280e531a2ffe4ad0c47efc043a75c030eaf325dc
- name: v1.30.0/bin/linux/arm64/kube-scheduler
sha256: 74defc82cedbdc5ebaa8c729efa9d586bb7284c8994a9f4a6bb5eef7d276e1f9
- name: v1.30.0/bin/linux/arm64/kube-scheduler.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/arm64/kube-scheduler.tar
sha256: 1998ae9e73d52410c999e120b236920ddcafcac7ac34555bf23a6ddb63a343f7
- name: v1.30.0/bin/linux/arm64/kubeadm
sha256: c36afd28921303e6db8e58274de16c60a80a1e75030fc3c4e9c4ed6249b6b696
- name: v1.30.0/bin/linux/arm64/kubectl
sha256: 669af0cf520757298ea60a8b6eb6b719ba443a9c7d35f36d3fb2fd7513e8c7d2
- name: v1.30.0/bin/linux/arm64/kubectl-convert
sha256: 724cc290f8d0ae0ea7e35df011098ac5b63c6fbba3817749bf19650f286730af
- name: v1.30.0/bin/linux/arm64/kubectl.docker_tag
sha256: af249e1588764d7d22c33474330a69889d729659d32b5250c4c44f5067bc0d2d
- name: v1.30.0/bin/linux/arm64/kubectl.tar
sha256: 26b6232675b1523910ebf6b2d5a1d10f3979d155f9bba5efb73eccde8cef7124
- name: v1.30.0/bin/linux/arm64/kubelet
sha256: fa887647422d34f3c7cc5b30fefcf97084d2c3277eff237c5808685ba8e4b15a
- name: v1.30.0/bin/linux/arm64/mounter
sha256: 5fde932a28c974b2dabcbfc420562252f7bb18d42908b0959589bd5b35801ba0
- name: v1.30.0/kubernetes-release.spdx
sha256: a54c6622cb4a13a9ef7aea93b1a5115f73056d47cd7f207a1ac16d4802494a37
- name: v1.30.0/kubernetes-source.spdx
sha256: a1f5231ffc17c2e3c4e875ec2ea069012193d5c6d0ac15264d941de9a5f4df1e

View File

@ -1,7 +1,7 @@
# This file is generated by generate-asset-hashes.sh
filestores:
- base: https://dl.k8s.io/release/
- base: https://github.com/opencontainers/runc/releases/download/
files:
# runc 1.1.0
@ -192,3 +192,20 @@ files:
sha256: af2387aab26bc862b121515dde0b928a0d7933a140b2c574b8801edc595a963a
- name: v1.1.11/runc.tar.xz
sha256: 90a9f8a0093f9e06900e393c11c6b61c597eaf7f9e149aa3aad743961ed25478
# runc 1.1.12
- name: v1.1.12/runc.amd64
sha256: aadeef400b8f05645768c1476d1023f7875b78f52c7ff1967a6dbce236b8cbd8
- name: v1.1.12/runc.arm64
sha256: 879f910a05c95c10c64ad8eb7d5e3aa8e4b30e65587b3d68e009a3565aed5bb8
- name: v1.1.12/runc.armel
sha256: 27f978f848bb06635897333e706a5668f8832252eeea701cc04be780c081bae0
- name: v1.1.12/runc.armhf
sha256: d0d1c7828eacb28bfec21d437c99308c380b31c4898a36c2c4a23c79e036295f
- name: v1.1.12/runc.ppc64le
sha256: 4069d1d57724126e116ad6dbd84409082d1b0afee1ee960b17558f146a742bb6
- name: v1.1.12/runc.riscv64
sha256: 2437db8883422714e7bce3dc6759e31263470e25f854ffa043b1972449a08cc2
- name: v1.1.12/runc.s390x
sha256: 8fd751c034f751ec7b34d1c404c36009adcd3ef1c8f22f6031df3f69e9454b6f
- name: v1.1.12/runc.tar.xz
sha256: 47d9e34500e478d860512b3b646724ee4b9e638692122ddaa82af417668ca4d7

View File

@ -32,6 +32,7 @@ import (
"k8s.io/klog/v2"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/apis/kops/util"
"k8s.io/kops/pkg/assets/assetdata"
"k8s.io/kops/pkg/featureflag"
"k8s.io/kops/pkg/kubemanifest"
"k8s.io/kops/pkg/values"
@ -97,7 +98,7 @@ type FileAsset struct {
// CanonicalURL is the canonical location of the asset, for example as distributed by the kops project
CanonicalURL *url.URL
// SHAValue is the SHA hash of the FileAsset.
SHAValue string
SHAValue *hashing.Hash
}
// NewAssetBuilder creates a new AssetBuilder.
@ -235,73 +236,49 @@ func (a *AssetBuilder) RemapImage(image string) (string, error) {
return image + "@" + digest, nil
}
// RemapFileAndSHA returns a remapped URL for the file, if AssetsLocation is defined.
// It also returns the SHA hash of the file.
func (a *AssetBuilder) RemapFileAndSHA(fileURL *url.URL) (*url.URL, *hashing.Hash, error) {
if fileURL == nil {
return nil, nil, fmt.Errorf("unable to remap a nil URL")
}
fileAsset := &FileAsset{
DownloadURL: fileURL,
CanonicalURL: fileURL,
}
if a.AssetsLocation != nil && a.AssetsLocation.FileRepository != nil {
normalizedFile, err := a.remapURL(fileURL)
if err != nil {
return nil, nil, err
}
if fileURL.Host != normalizedFile.Host {
fileAsset.DownloadURL = normalizedFile
klog.V(4).Infof("adding remapped file: %q", fileAsset.DownloadURL.String())
}
}
h, err := a.findHash(fileAsset)
if err != nil {
return nil, nil, err
}
fileAsset.SHAValue = h.Hex()
klog.V(8).Infof("adding file: %+v", fileAsset)
a.FileAssets = append(a.FileAssets, fileAsset)
return fileAsset.DownloadURL, h, nil
}
// RemapFileAndSHAValue returns a remapped URL for the file without a SHA file in object storage, if AssetsLocation is defined.
func (a *AssetBuilder) RemapFileAndSHAValue(fileURL *url.URL, shaValue string) (*url.URL, error) {
if fileURL == nil {
// RemapFile returns a remapped URL for the file, if AssetsLocation is defined.
// It is returns in a FileAsset, alongside the SHA hash of the file.
// The SHA hash is is knownHash is provided, and otherwise will be found first by
// checking the canonical URL against our well-known hashes, and failing that via download.
func (a *AssetBuilder) RemapFile(canonicalURL *url.URL, knownHash *hashing.Hash) (*FileAsset, error) {
if canonicalURL == nil {
return nil, fmt.Errorf("unable to remap a nil URL")
}
fileAsset := &FileAsset{
DownloadURL: fileURL,
CanonicalURL: fileURL,
SHAValue: shaValue,
DownloadURL: canonicalURL,
CanonicalURL: canonicalURL,
}
if a.AssetsLocation != nil && a.AssetsLocation.FileRepository != nil {
normalizedFile, err := a.remapURL(fileURL)
normalizedFile, err := a.remapURL(canonicalURL)
if err != nil {
return nil, err
}
if fileURL.Host != normalizedFile.Host {
if canonicalURL.Host != normalizedFile.Host {
fileAsset.DownloadURL = normalizedFile
klog.V(4).Infof("adding remapped file: %q", fileAsset.DownloadURL.String())
}
}
if knownHash == nil {
h, err := a.findHash(fileAsset)
if err != nil {
return nil, err
}
knownHash = h
}
fileAsset.SHAValue = knownHash
klog.V(8).Infof("adding file: %+v", fileAsset)
a.FileAssets = append(a.FileAssets, fileAsset)
return fileAsset.DownloadURL, nil
return fileAsset, nil
}
// FindHash returns the hash value of a FileAsset.
// findHash returns the hash value of a FileAsset.
func (a *AssetBuilder) findHash(file *FileAsset) (*hashing.Hash, error) {
// If the phase is "assets" we use the CanonicalFileURL,
// but during other phases we use the hash from the FileRepository or the base kops path.
@ -324,6 +301,16 @@ func (a *AssetBuilder) findHash(file *FileAsset) (*hashing.Hash, error) {
return nil, fmt.Errorf("file url is not defined")
}
knownHash, found, err := assetdata.GetHash(file.CanonicalURL)
if err != nil {
return nil, err
}
if found {
return knownHash, nil
}
klog.Infof("asset %q is not well-known, downloading hash", file.CanonicalURL)
// We now prefer sha256 hashes
for backoffSteps := 1; backoffSteps <= 3; backoffSteps++ {
// We try first with a short backoff, so we don't
@ -338,7 +325,7 @@ func (a *AssetBuilder) findHash(file *FileAsset) (*hashing.Hash, error) {
for _, ext := range []string{".sha256", ".sha256sum"} {
for _, mirror := range FindURLMirrors(u.String()) {
hashURL := mirror + ext
klog.V(3).Infof("Trying to read hash fie: %q", hashURL)
klog.V(3).Infof("Trying to read hash file: %q", hashURL)
b, err := a.vfsContext.ReadFile(hashURL, vfs.WithBackoff(backoff))
if err != nil {
// Try to log without being too alarming - issue #7550

View File

@ -56,7 +56,7 @@ func Copy(imageAssets []*ImageAsset, fileAssets []*FileAsset, vfsContext *vfs.VF
Name: fileAsset.CanonicalURL.String(),
TargetFile: fileAsset.DownloadURL.String(),
SourceFile: fileAsset.CanonicalURL.String(),
SHA: fileAsset.SHAValue,
SHA: fileAsset.SHAValue.Hex(),
VFSContext: vfsContext,
Cluster: cluster,
}

View File

@ -17,7 +17,6 @@ limitations under the License.
package assets
import (
"net/url"
"strings"
"k8s.io/klog/v2"
@ -30,12 +29,14 @@ type MirroredAsset struct {
}
// BuildMirroredAsset checks to see if this is a file under the standard base location, and if so constructs some mirror locations
func BuildMirroredAsset(u *url.URL, hash *hashing.Hash) *MirroredAsset {
func BuildMirroredAsset(asset *FileAsset) *MirroredAsset {
u := asset.DownloadURL
a := &MirroredAsset{
Hash: hash,
Hash: asset.SHAValue,
}
if hash == nil {
if asset.SHAValue == nil {
klog.Warningf("not using mirrors for asset %s as it does not have a known hash", u)
a.Locations = []string{u.String()}
} else {

View File

@ -75,11 +75,11 @@ func (c *FileAssets) AddFileAssets(assetBuilder *assets.AssetBuilder) error {
}
k.Path = path.Join(k.Path, an)
u, hash, err := assetBuilder.RemapFileAndSHA(k)
asset, err := assetBuilder.RemapFile(k, nil)
if err != nil {
return err
}
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(u, hash))
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(asset))
}
kubernetesVersion, _ := util.ParseKubernetesVersion(c.Cluster.Spec.KubernetesVersion)
@ -98,6 +98,7 @@ func (c *FileAssets) AddFileAssets(assetBuilder *assets.AssetBuilder) error {
return err
}
// TODO: Move these hashes to assetdata
hashes := map[architectures.Architecture]string{
"amd64": "827d558953d861b81a35c3b599191a73f53c1f63bce42c61e7a3fee21a717a89",
"arm64": "f1617c0ef77f3718e12a3efc6f650375d5b5e96eebdbcbad3e465e89e781bdfa",
@ -106,70 +107,69 @@ func (c *FileAssets) AddFileAssets(assetBuilder *assets.AssetBuilder) error {
if err != nil {
return fmt.Errorf("unable to parse auth-provider-gcp binary asset hash %q: %v", hashes[arch], err)
}
u, err := assetBuilder.RemapFileAndSHAValue(k, hashes[arch])
asset, err := assetBuilder.RemapFile(k, hash)
if err != nil {
return err
}
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(u, hash))
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(asset))
case kops.CloudProviderAWS:
binaryLocation := c.Cluster.Spec.CloudProvider.AWS.BinariesLocation
if binaryLocation == nil {
binaryLocation = fi.PtrTo("https://artifacts.k8s.io/binaries/cloud-provider-aws/v1.27.1")
}
k, err := url.Parse(fmt.Sprintf("%s/linux/%s/ecr-credential-provider-linux-%s", *binaryLocation, arch, arch))
u, err := url.Parse(fmt.Sprintf("%s/linux/%s/ecr-credential-provider-linux-%s", *binaryLocation, arch, arch))
if err != nil {
return err
}
u, hash, err := assetBuilder.RemapFileAndSHA(k)
asset, err := assetBuilder.RemapFile(u, nil)
if err != nil {
return err
}
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(u, hash))
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(asset))
}
}
{
cniAsset, cniAssetHash, err := wellknownassets.FindCNIAssets(c.Cluster, assetBuilder, arch)
cniAsset, err := wellknownassets.FindCNIAssets(c.Cluster, assetBuilder, arch)
if err != nil {
return err
}
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(cniAsset, cniAssetHash))
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(cniAsset))
}
if c.Cluster.Spec.Containerd == nil || !c.Cluster.Spec.Containerd.SkipInstall {
containerdAssetUrl, containerdAssetHash, err := wellknownassets.FindContainerdAsset(c.Cluster, assetBuilder, arch)
containerdAsset, err := wellknownassets.FindContainerdAsset(c.Cluster, assetBuilder, arch)
if err != nil {
return err
}
if containerdAssetUrl != nil && containerdAssetHash != nil {
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(containerdAssetUrl, containerdAssetHash))
if containerdAsset != nil {
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(containerdAsset))
}
runcAssetUrl, runcAssetHash, err := wellknownassets.FindRuncAsset(c.Cluster, assetBuilder, arch)
runcAsset, err := wellknownassets.FindRuncAsset(c.Cluster, assetBuilder, arch)
if err != nil {
return err
}
if runcAssetUrl != nil && runcAssetHash != nil {
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(runcAssetUrl, runcAssetHash))
if runcAsset != nil {
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(runcAsset))
}
nerdctlAssetUrl, nerdctlAssetHash, err := wellknownassets.FindNerdctlAsset(c.Cluster, assetBuilder, arch)
nerdctlAsset, err := wellknownassets.FindNerdctlAsset(c.Cluster, assetBuilder, arch)
if err != nil {
return err
}
if nerdctlAssetUrl != nil && nerdctlAssetHash != nil {
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(nerdctlAssetUrl, nerdctlAssetHash))
if nerdctlAsset != nil {
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(nerdctlAsset))
}
}
crictlAssetUrl, crictlAssetHash, err := wellknownassets.FindCrictlAsset(c.Cluster, assetBuilder, arch)
crictlAsset, err := wellknownassets.FindCrictlAsset(c.Cluster, assetBuilder, arch)
if err != nil {
return err
}
if crictlAssetUrl != nil && crictlAssetHash != nil {
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(crictlAssetUrl, crictlAssetHash))
if crictlAsset != nil {
c.Assets[arch] = append(c.Assets[arch], assets.BuildMirroredAsset(crictlAsset))
}
asset, err := wellknownassets.NodeUpAsset(assetBuilder, arch)

View File

@ -117,14 +117,14 @@ func NewNodeUpConfigBuilder(cluster *kops.Cluster, assetBuilder *assets.AssetBui
baseURL.Path = path.Join(baseURL.Path, "/bin/linux", string(arch), component+".tar")
u, hash, err := assetBuilder.RemapFileAndSHA(baseURL)
asset, err := assetBuilder.RemapFile(baseURL, nil)
if err != nil {
return nil, err
}
image := &nodeup.Image{
Sources: []string{u.String()},
Hash: hash.Hex(),
Sources: []string{asset.DownloadURL.String()},
Hash: asset.SHAValue.Hex(),
}
images[role][arch] = append(images[role][arch], image)
}
@ -143,14 +143,14 @@ func NewNodeUpConfigBuilder(cluster *kops.Cluster, assetBuilder *assets.AssetBui
baseURL.Path = path.Join(baseURL.Path, "/images/"+name+"-"+string(arch)+".tar.gz")
u, hash, err := assetBuilder.RemapFileAndSHA(baseURL)
asset, err := assetBuilder.RemapFile(baseURL, nil)
if err != nil {
return nil, err
}
image := &nodeup.Image{
Sources: []string{u.String()},
Hash: hash.Hex(),
Sources: []string{asset.DownloadURL.String()},
Hash: asset.SHAValue.Hex(),
}
images[role][arch] = append(images[role][arch], image)
}
@ -166,14 +166,14 @@ func NewNodeUpConfigBuilder(cluster *kops.Cluster, assetBuilder *assets.AssetBui
baseURL.Path = path.Join(baseURL.Path, "/images/"+name+"-"+string(arch)+".tar.gz")
u, hash, err := assetBuilder.RemapFileAndSHA(baseURL)
asset, err := assetBuilder.RemapFile(baseURL, nil)
if err != nil {
return nil, err
}
image := &nodeup.Image{
Sources: []string{u.String()},
Hash: hash.Hex(),
Sources: []string{asset.DownloadURL.String()},
Hash: asset.SHAValue.Hex(),
}
images[role][arch] = append(images[role][arch], image)
}

View File

@ -47,7 +47,7 @@ const (
ENV_VAR_CNI_ASSET_HASH = "CNI_ASSET_HASH_STRING"
)
func FindCNIAssets(c *kopsapi.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*url.URL, *hashing.Hash, error) {
func FindCNIAssets(c *kopsapi.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*assets.FileAsset, error) {
// Override CNI packages from env vars
cniAssetURL := os.Getenv(ENV_VAR_CNI_ASSET_URL)
cniAssetHash := os.Getenv(ENV_VAR_CNI_ASSET_HASH)
@ -58,20 +58,20 @@ func FindCNIAssets(c *kopsapi.Cluster, assetBuilder *assets.AssetBuilder, arch a
u, err := url.Parse(cniAssetURL)
if err != nil {
return nil, nil, fmt.Errorf("unable to parse CNI plugin binaries asset URL %q: %v", cniAssetURL, err)
return nil, fmt.Errorf("unable to parse CNI plugin binaries asset URL %q: %v", cniAssetURL, err)
}
h, err := hashing.FromString(cniAssetHash)
if err != nil {
return nil, nil, fmt.Errorf("unable to parse CNI plugin binaries asset hash %q: %v", cniAssetHash, err)
return nil, fmt.Errorf("unable to parse CNI plugin binaries asset hash %q: %v", cniAssetHash, err)
}
u, err = assetBuilder.RemapFileAndSHAValue(u, cniAssetHash)
asset, err := assetBuilder.RemapFile(u, h)
if err != nil {
return nil, nil, fmt.Errorf("unable to remap CNI plugin binaries asset: %v", err)
return nil, fmt.Errorf("unable to remap CNI plugin binaries asset: %v", err)
}
return u, h, nil
return asset, nil
}
switch arch {
@ -90,18 +90,18 @@ func FindCNIAssets(c *kopsapi.Cluster, assetBuilder *assets.AssetBuilder, arch a
}
klog.V(2).Infof("Adding default AMD64 CNI plugin binaries asset: %s", cniAssetURL)
default:
return nil, nil, fmt.Errorf("unknown arch for CNI plugin binaries asset: %s", arch)
return nil, fmt.Errorf("unknown arch for CNI plugin binaries asset: %s", arch)
}
u, err := url.Parse(cniAssetURL)
if err != nil {
return nil, nil, fmt.Errorf("unable to parse CNI plugin binaries asset URL %q: %v", cniAssetURL, err)
return nil, fmt.Errorf("unable to parse CNI plugin binaries asset URL %q: %v", cniAssetURL, err)
}
u, h, err := assetBuilder.RemapFileAndSHA(u)
asset, err := assetBuilder.RemapFile(u, nil)
if err != nil {
return nil, nil, fmt.Errorf("unable to remap CNI plugin binaries asset: %v", err)
return nil, fmt.Errorf("unable to remap CNI plugin binaries asset: %v", err)
}
return u, h, nil
return asset, nil
}

View File

@ -36,17 +36,17 @@ func Test_FindCNIAssetFromEnvironmentVariable(t *testing.T) {
cluster.Spec.KubernetesVersion = "v1.18.0"
assetBuilder := assets.NewAssetBuilder(vfs.Context, cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
cniAsset, cniAssetHash, err := FindCNIAssets(cluster, assetBuilder, architectures.ArchitectureAmd64)
asset, err := FindCNIAssets(cluster, assetBuilder, architectures.ArchitectureAmd64)
if err != nil {
t.Errorf("Unable to parse CNI version %s", err)
t.Fatalf("Unable to parse CNI version: %v", err)
}
if cniAsset.String() != desiredCNIVersion {
t.Errorf("Expected CNI version from env var %q, but got %q instead", desiredCNIVersion, cniAsset)
if asset.DownloadURL.String() != desiredCNIVersion {
t.Errorf("Expected CNI version from env var %q, but got %q instead", desiredCNIVersion, asset.DownloadURL.String())
}
if cniAssetHash.String() != desiredCNIVersionHash {
t.Errorf("Expected empty CNI version hash, but got %v instead", cniAssetHash)
if asset.SHAValue.String() != desiredCNIVersionHash {
t.Errorf("Expected empty CNI version hash, but got %v instead", asset.SHAValue.String())
}
}
@ -58,16 +58,16 @@ func Test_FindCNIAssetFromDefaults122(t *testing.T) {
cluster.Spec.KubernetesVersion = "v1.22.0"
assetBuilder := assets.NewAssetBuilder(vfs.Context, cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
cniAsset, cniAssetHash, err := FindCNIAssets(cluster, assetBuilder, architectures.ArchitectureAmd64)
asset, err := FindCNIAssets(cluster, assetBuilder, architectures.ArchitectureAmd64)
if err != nil {
t.Errorf("Unable to parse CNI version %s", err)
t.Fatalf("Unable to parse CNI version: %s", err)
}
if cniAsset.String() != desiredCNIVersionURL {
t.Errorf("Expected default CNI version %q, but got %q instead", desiredCNIVersionURL, cniAsset)
if asset.DownloadURL.String() != desiredCNIVersionURL {
t.Errorf("Expected default CNI version %q, but got %q instead", desiredCNIVersionURL, asset.DownloadURL)
}
if cniAssetHash.String() != desiredCNIVersionHash {
t.Errorf("Expected default CNI version hash %q, but got %q instead", desiredCNIVersionHash, cniAssetHash)
if asset.SHAValue.String() != desiredCNIVersionHash {
t.Errorf("Expected default CNI version hash %q, but got %q instead", desiredCNIVersionHash, asset.SHAValue.String())
}
}

View File

@ -37,53 +37,49 @@ const (
containerdBundleUrlAmd64 = "https://github.com/containerd/containerd/releases/download/v%s/cri-containerd-cni-%s-linux-amd64.tar.gz"
)
func FindContainerdAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*url.URL, *hashing.Hash, error) {
func FindContainerdAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*assets.FileAsset, error) {
if c.Spec.Containerd == nil {
return nil, nil, fmt.Errorf("unable to find containerd config")
return nil, fmt.Errorf("unable to find containerd config")
}
containerd := c.Spec.Containerd
canonicalURL := ""
knownHash := ""
if containerd.Packages != nil {
if arch == architectures.ArchitectureAmd64 && containerd.Packages.UrlAmd64 != nil && containerd.Packages.HashAmd64 != nil {
assetUrl := fi.ValueOf(containerd.Packages.UrlAmd64)
assetHash := fi.ValueOf(containerd.Packages.HashAmd64)
return findAssetsUrlHash(assetBuilder, assetUrl, assetHash)
canonicalURL = fi.ValueOf(containerd.Packages.UrlAmd64)
knownHash = fi.ValueOf(containerd.Packages.HashAmd64)
}
if arch == architectures.ArchitectureArm64 && containerd.Packages.UrlArm64 != nil && containerd.Packages.HashArm64 != nil {
assetUrl := fi.ValueOf(containerd.Packages.UrlArm64)
assetHash := fi.ValueOf(containerd.Packages.HashArm64)
return findAssetsUrlHash(assetBuilder, assetUrl, assetHash)
canonicalURL = fi.ValueOf(containerd.Packages.UrlArm64)
knownHash = fi.ValueOf(containerd.Packages.HashArm64)
}
}
version := fi.ValueOf(containerd.Version)
if version == "" {
return nil, nil, fmt.Errorf("unable to find containerd version")
if canonicalURL == "" {
version := fi.ValueOf(containerd.Version)
if version == "" {
return nil, fmt.Errorf("unable to find containerd version")
}
assetURL, err := findContainerdVersionUrl(arch, version)
if err != nil {
return nil, err
}
canonicalURL = assetURL.String()
}
return findContainerdVersionUrlHash(assetBuilder, arch, version)
return buildFileAsset(assetBuilder, canonicalURL, knownHash)
}
func findContainerdVersionUrlHash(assetBuilder *assets.AssetBuilder, arch architectures.Architecture, version string) (u *url.URL, h *hashing.Hash, e error) {
assetUrl, err := findContainerdVersionUrl(arch, version)
if err != nil {
return nil, nil, err
}
fileUrl, err := url.Parse(assetUrl)
if err != nil {
return nil, nil, err
}
return assetBuilder.RemapFileAndSHA(fileUrl)
}
func findContainerdVersionUrl(arch architectures.Architecture, version string) (string, error) {
func findContainerdVersionUrl(arch architectures.Architecture, version string) (*url.URL, error) {
sv, err := semver.ParseTolerant(version)
if err != nil {
return "", fmt.Errorf("unable to parse version string: %q", version)
return nil, fmt.Errorf("unable to parse version string: %q", version)
}
if sv.LT(semver.MustParse("1.4.0")) {
return "", fmt.Errorf("unsupported legacy containerd version: %q", version)
return nil, fmt.Errorf("unsupported legacy containerd version: %q", version)
}
var u string
@ -99,31 +95,35 @@ func findContainerdVersionUrl(arch architectures.Architecture, version string) (
u = fmt.Sprintf(containerdReleaseUrlArm64, version, version)
}
default:
return "", fmt.Errorf("unknown arch: %q", arch)
return nil, fmt.Errorf("unknown arch: %q", arch)
}
if u == "" {
return "", fmt.Errorf("unknown url for containerd version: %s - %s", arch, version)
return nil, fmt.Errorf("unknown url for containerd version: %s - %s", arch, version)
}
return u, nil
return url.Parse(u)
}
func findAssetsUrlHash(assetBuilder *assets.AssetBuilder, assetUrl string, assetHash string) (*url.URL, *hashing.Hash, error) {
u, err := url.Parse(assetUrl)
func buildFileAsset(assetBuilder *assets.AssetBuilder, canonicalURL string, knownHashString string) (*assets.FileAsset, error) {
u, err := url.Parse(canonicalURL)
if err != nil {
return nil, nil, fmt.Errorf("unable to parse asset URL %q: %v", assetUrl, err)
return nil, fmt.Errorf("unable to parse asset URL %q: %w", canonicalURL, err)
}
h, err := hashing.FromString(assetHash)
if err != nil {
return nil, nil, fmt.Errorf("unable to parse asset hash %q: %v", assetHash, err)
var knownHash *hashing.Hash
if knownHashString != "" {
h, err := hashing.FromString(knownHashString)
if err != nil {
return nil, fmt.Errorf("unable to parse asset hash %q: %w", knownHashString, err)
}
knownHash = h
}
u, err = assetBuilder.RemapFileAndSHAValue(u, assetHash)
asset, err := assetBuilder.RemapFile(u, knownHash)
if err != nil {
return nil, nil, fmt.Errorf("unable to remap asset: %v", err)
return nil, fmt.Errorf("unable to remap asset: %w", err)
}
return u, h, nil
return asset, nil
}

View File

@ -87,7 +87,11 @@ func TestContainerdVersionUrl(t *testing.T) {
t.Errorf("actual error %q differs from expected error %q", err, test.err)
return
}
if url != test.url {
got := ""
if url != nil {
got = url.String()
}
if got != test.url {
t.Errorf("actual url %q differs from expected url %q", url, test.url)
return
}

View File

@ -23,7 +23,6 @@ import (
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/assets"
"k8s.io/kops/util/pkg/architectures"
"k8s.io/kops/util/pkg/hashing"
)
const (
@ -31,7 +30,7 @@ const (
crictlAssetUrlArm64 = "https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.29.0/crictl-v1.29.0-linux-arm64.tar.gz"
)
func FindCrictlAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*url.URL, *hashing.Hash, error) {
func FindCrictlAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*assets.FileAsset, error) {
var assetURL string
switch arch {
case architectures.ArchitectureAmd64:
@ -39,18 +38,18 @@ func FindCrictlAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch ar
case architectures.ArchitectureArm64:
assetURL = crictlAssetUrlArm64
default:
return nil, nil, fmt.Errorf("unknown arch for crictl binaries asset: %s", arch)
return nil, fmt.Errorf("unknown arch for crictl binaries asset: %s", arch)
}
u, err := url.Parse(assetURL)
if err != nil {
return nil, nil, fmt.Errorf("unable to parse crictl binaries asset URL %q: %v", assetURL, err)
return nil, fmt.Errorf("unable to parse crictl binaries asset URL %q: %v", assetURL, err)
}
u, h, err := assetBuilder.RemapFileAndSHA(u)
asset, err := assetBuilder.RemapFile(u, nil)
if err != nil {
return nil, nil, fmt.Errorf("unable to remap crictl binaries asset: %v", err)
return nil, fmt.Errorf("unable to remap crictl binaries asset: %v", err)
}
return u, h, err
return asset, err
}

View File

@ -33,14 +33,14 @@ func Test_FindCrictlVersionHash(t *testing.T) {
cluster.Spec.KubernetesVersion = "v1.29.0"
assetBuilder := assets.NewAssetBuilder(vfs.Context, cluster.Spec.Assets, cluster.Spec.KubernetesVersion, false)
crictlAsset, crictlAssetHash, err := FindCrictlAsset(cluster, assetBuilder, architectures.ArchitectureAmd64)
crictlAsset, err := FindCrictlAsset(cluster, assetBuilder, architectures.ArchitectureAmd64)
if err != nil {
t.Errorf("Unable to parse crictl version %s", err)
}
if crictlAsset.String() != desiredCrictlURL {
t.Errorf("Expected crictl version %q, but got %q instead", desiredCrictlURL, crictlAsset)
if crictlAsset.DownloadURL.String() != desiredCrictlURL {
t.Errorf("Expected crictl version %q, but got %q instead", desiredCrictlURL, crictlAsset.DownloadURL)
}
if crictlAssetHash.String() != desiredCirctlHash {
t.Errorf("Expected crictl version hash %q, but got %q instead", desiredCirctlHash, crictlAssetHash)
if crictlAsset.SHAValue.String() != desiredCirctlHash {
t.Errorf("Expected crictl version hash %q, but got %q instead", desiredCirctlHash, crictlAsset.SHAValue)
}
}

View File

@ -26,7 +26,6 @@ import (
"k8s.io/kops"
"k8s.io/kops/pkg/assets"
"k8s.io/kops/util/pkg/architectures"
"k8s.io/kops/util/pkg/hashing"
)
const (
@ -93,12 +92,12 @@ func NodeUpAsset(assetsBuilder *assets.AssetBuilder, arch architectures.Architec
return nodeUpAsset[arch], nil
}
u, hash, err := KopsFileURL(fmt.Sprintf("linux/%s/nodeup", arch), assetsBuilder)
asset, err := KopsFileURL(fmt.Sprintf("linux/%s/nodeup", arch), assetsBuilder)
if err != nil {
return nil, err
}
nodeUpAsset[arch] = assets.BuildMirroredAsset(u, hash)
klog.V(8).Infof("Using default nodeup location for %s: %q", arch, u.String())
nodeUpAsset[arch] = assets.BuildMirroredAsset(asset)
klog.V(8).Infof("Using default nodeup location for %s: %q", arch, asset.DownloadURL.String())
return nodeUpAsset[arch], nil
}
@ -113,12 +112,12 @@ func ProtokubeAsset(assetsBuilder *assets.AssetBuilder, arch architectures.Archi
return protokubeAsset[arch], nil
}
u, hash, err := KopsFileURL(fmt.Sprintf("linux/%s/protokube", arch), assetsBuilder)
asset, err := KopsFileURL(fmt.Sprintf("linux/%s/protokube", arch), assetsBuilder)
if err != nil {
return nil, err
}
protokubeAsset[arch] = assets.BuildMirroredAsset(u, hash)
klog.V(8).Infof("Using default protokube location for %s: %q", arch, u.String())
protokubeAsset[arch] = assets.BuildMirroredAsset(asset)
klog.V(8).Infof("Using default protokube location for %s: %q", arch, asset.DownloadURL.String())
return protokubeAsset[arch], nil
}
@ -133,29 +132,29 @@ func ChannelsAsset(assetsBuilder *assets.AssetBuilder, arch architectures.Archit
return channelsAsset[arch], nil
}
u, hash, err := KopsFileURL(fmt.Sprintf("linux/%s/channels", arch), assetsBuilder)
asset, err := KopsFileURL(fmt.Sprintf("linux/%s/channels", arch), assetsBuilder)
if err != nil {
return nil, err
}
channelsAsset[arch] = assets.BuildMirroredAsset(u, hash)
klog.V(8).Infof("Using default channels location for %s: %q", arch, u.String())
channelsAsset[arch] = assets.BuildMirroredAsset(asset)
klog.V(8).Infof("Using default channels location for %s: %q", arch, asset.DownloadURL.String())
return channelsAsset[arch], nil
}
// KopsFileURL returns the base url for the distribution of kops - in particular for nodeup & docker images
func KopsFileURL(file string, assetBuilder *assets.AssetBuilder) (*url.URL, *hashing.Hash, error) {
func KopsFileURL(file string, assetBuilder *assets.AssetBuilder) (*assets.FileAsset, error) {
base, err := BaseURL()
if err != nil {
return nil, nil, err
return nil, err
}
base.Path = path.Join(base.Path, file)
fileURL, hash, err := assetBuilder.RemapFileAndSHA(base)
asset, err := assetBuilder.RemapFile(base, nil)
if err != nil {
return nil, nil, err
return nil, err
}
return fileURL, hash, nil
return asset, nil
}

View File

@ -56,7 +56,12 @@ func Test_BuildMirroredAsset(t *testing.T) {
t.Errorf("cannot parse URL: %s", fmt.Sprintf(tc.url, kops.Version))
return
}
actual := assets.BuildMirroredAsset(u, h)
asset := &assets.FileAsset{
DownloadURL: u,
CanonicalURL: u,
SHAValue: h,
}
actual := assets.BuildMirroredAsset(asset)
if !reflect.DeepEqual(actual.Locations, tc.expected) {
t.Errorf("Locations differ:\nActual: %+v\nExpect: %+v", actual.Locations, tc.expected)

View File

@ -18,12 +18,10 @@ package wellknownassets
import (
"fmt"
"net/url"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/assets"
"k8s.io/kops/util/pkg/architectures"
"k8s.io/kops/util/pkg/hashing"
)
const (
@ -33,7 +31,7 @@ const (
nerdctlAssetHashArm64 = "d8df47708ca57b9cd7f498055126ba7dcfc811d9ba43aae1830c93a09e70e22d"
)
func FindNerdctlAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*url.URL, *hashing.Hash, error) {
func FindNerdctlAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*assets.FileAsset, error) {
var assetURL, assetHash string
switch arch {
case architectures.ArchitectureAmd64:
@ -43,8 +41,8 @@ func FindNerdctlAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch a
assetURL = nerdctlAssetUrlArm64
assetHash = nerdctlAssetHashArm64
default:
return nil, nil, fmt.Errorf("unknown arch for nerdctl binaries asset: %s", arch)
return nil, fmt.Errorf("unknown arch for nerdctl binaries asset: %s", arch)
}
return findAssetsUrlHash(assetBuilder, assetURL, assetHash)
return buildFileAsset(assetBuilder, assetURL, assetHash)
}

View File

@ -18,7 +18,6 @@ package wellknownassets
import (
"fmt"
"net/url"
"github.com/blang/semver/v4"
@ -26,7 +25,6 @@ import (
"k8s.io/kops/pkg/assets"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/util/pkg/architectures"
"k8s.io/kops/util/pkg/hashing"
)
const (
@ -34,70 +32,54 @@ const (
runcVersionUrlArm64 = "https://github.com/opencontainers/runc/releases/download/v%s/runc.arm64"
)
func FindRuncAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*url.URL, *hashing.Hash, error) {
func FindRuncAsset(c *kops.Cluster, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*assets.FileAsset, error) {
if c.Spec.Containerd == nil {
return nil, nil, fmt.Errorf("unable to find containerd config")
return nil, fmt.Errorf("unable to find containerd config")
}
containerd := c.Spec.Containerd
containerdVersion, err := semver.ParseTolerant(fi.ValueOf(containerd.Version))
if err != nil {
return nil, nil, fmt.Errorf("unable to parse version string: %q", fi.ValueOf(containerd.Version))
return nil, fmt.Errorf("unable to parse version string: %q", fi.ValueOf(containerd.Version))
}
// A compatible runc binary is bundled with containerd builds < v1.6.0
// https://github.com/containerd/containerd/issues/6541
if containerdVersion.LT(semver.MustParse("1.6.0")) {
return nil, nil, nil
return nil, nil
}
if containerd.Runc == nil {
return nil, nil, fmt.Errorf("unable to find runc config")
return nil, fmt.Errorf("unable to find runc config")
}
runc := containerd.Runc
canonicalURL := ""
knownHash := ""
if runc.Packages != nil {
if arch == architectures.ArchitectureAmd64 && runc.Packages.UrlAmd64 != nil && runc.Packages.HashAmd64 != nil {
assetUrl := fi.ValueOf(runc.Packages.UrlAmd64)
assetHash := fi.ValueOf(runc.Packages.HashAmd64)
return findAssetsUrlHash(assetBuilder, assetUrl, assetHash)
canonicalURL = fi.ValueOf(runc.Packages.UrlAmd64)
knownHash = fi.ValueOf(runc.Packages.HashAmd64)
}
if arch == architectures.ArchitectureArm64 && runc.Packages.UrlArm64 != nil && runc.Packages.HashArm64 != nil {
assetUrl := fi.ValueOf(runc.Packages.UrlArm64)
assetHash := fi.ValueOf(runc.Packages.HashArm64)
return findAssetsUrlHash(assetBuilder, assetUrl, assetHash)
canonicalURL = fi.ValueOf(runc.Packages.UrlArm64)
knownHash = fi.ValueOf(runc.Packages.HashArm64)
}
}
version := fi.ValueOf(runc.Version)
if version == "" {
return nil, nil, fmt.Errorf("unable to find runc version")
}
assetUrl, assetHash, err := findRuncVersionUrlHash(arch, version)
if err != nil {
return nil, nil, err
}
return findAssetsUrlHash(assetBuilder, assetUrl, assetHash)
}
func findRuncVersionUrlHash(arch architectures.Architecture, version string) (u string, h string, e error) {
var runcAssetUrl, runcAssetHash string
if findAllRuncHashesAmd64()[version] != "" {
var err error
runcAssetUrl, err = findRuncVersionUrl(arch, version)
if canonicalURL == "" {
version := fi.ValueOf(runc.Version)
if version == "" {
return nil, fmt.Errorf("unable to find runc version")
}
u, err := findRuncVersionUrl(arch, version)
if err != nil {
return "", "", err
return nil, err
}
runcAssetHash, err = findRuncVersionHash(arch, version)
if err != nil {
return "", "", err
}
} else {
return "", "", fmt.Errorf("unknown url and hash for runc version: %s - %s", arch, version)
canonicalURL = u
}
return runcAssetUrl, runcAssetHash, nil
return buildFileAsset(assetBuilder, canonicalURL, knownHash)
}
func findRuncVersionUrl(arch architectures.Architecture, version string) (string, error) {
@ -125,69 +107,3 @@ func findRuncVersionUrl(arch architectures.Architecture, version string) (string
return u, nil
}
func findRuncVersionHash(arch architectures.Architecture, version string) (string, error) {
sv, err := semver.ParseTolerant(version)
if err != nil {
return "", fmt.Errorf("unable to parse version string: %q", version)
}
if sv.LT(semver.MustParse("1.1.0")) {
return "", fmt.Errorf("unsupported runc version: %q", version)
}
var h string
switch arch {
case architectures.ArchitectureAmd64:
h = findAllRuncHashesAmd64()[version]
case architectures.ArchitectureArm64:
h = findAllRuncHashesArm64()[version]
default:
return "", fmt.Errorf("unknown arch: %q", arch)
}
if h == "" {
return "", fmt.Errorf("unknown hash for runc version: %s - %s", arch, version)
}
return h, nil
}
func findAllRuncHashesAmd64() map[string]string {
hashes := map[string]string{
"1.1.0": "ab1c67fbcbdddbe481e48a55cf0ef9a86b38b166b5079e0010737fd87d7454bb",
"1.1.1": "5798c85d2c8b6942247ab8d6830ef362924cd72a8e236e77430c3ab1be15f080",
"1.1.2": "e0436dfc5d26ca88f00e84cbdab5801dd9829b1e5ded05dcfc162ce5718c32ce",
"1.1.3": "6e8b24be90fffce6b025d254846da9d2ca6d65125f9139b6354bab0272253d01",
"1.1.4": "db772be63147a4e747b4fe286c7c16a2edc4a8458bd3092ea46aaee77750e8ce",
"1.1.5": "f00b144e86f8c1db347a2e8f22caade07d55382c5f76dd5c0a5b1ab64eaec8bb",
"1.1.6": "868bee5b8dc2a01df0ca41d0accfad6a3372dc1165ebfb76143d2c6672e86115",
"1.1.7": "c3aadb419e5872af49504b6de894055251d2e685fddddb981a79703e7f895cbd",
"1.1.8": "1d05ed79854efc707841dfc7afbf3b86546fc1d0b3a204435ca921c14af8385b",
"1.1.9": "b9bfdd4cb27cddbb6172a442df165a80bfc0538a676fbca1a6a6c8f4c6933b43",
"1.1.10": "81f73a59be3d122ab484d7dfe9ddc81030f595cc59968f61c113a9a38a2c113a",
"1.1.11": "77ae134de014613c44d25e6310a57a219a7a91155cd47d069a0f22a2cad5caea",
"1.1.12": "aadeef400b8f05645768c1476d1023f7875b78f52c7ff1967a6dbce236b8cbd8",
}
return hashes
}
func findAllRuncHashesArm64() map[string]string {
hashes := map[string]string{
"1.1.0": "9ec8e68feabc4e7083a4cfa45ebe4d529467391e0b03ee7de7ddda5770b05e68",
"1.1.1": "20c436a736547309371c7ac2a335f5fe5a42b450120e497d09c8dc3902c28444",
"1.1.2": "6ebd968d46d00a3886e9a0cae2e0a7b399e110cf5d7b26e63ce23c1d81ea10ef",
"1.1.3": "00c9ad161a77a01d9dcbd25b1d76fa9822e57d8e4abf26ba8907c98f6bcfcd0f",
"1.1.4": "dbb71e737eaef454a406ce21fd021bd8f1b35afb7635016745992bbd7c17a223",
"1.1.5": "54e79e4d48b9e191767e4abc08be1a8476a1c757e9a9f8c45c6ded001226867f",
"1.1.6": "da5b2ed26a173a69ea66eae7c369feebf59c1031e14985f512a0a293bb5f76fb",
"1.1.7": "1b309c4d5aa4cc7b888b2f79c385ecee26ca3d55dae0852e7c4a692196d5faab",
"1.1.8": "7c22cb618116d1d5216d79e076349f93a672253d564b19928a099c20e4acd658",
"1.1.9": "b43e9f561e85906f469eef5a7b7992fc586f750f44a0e011da4467e7008c33a0",
"1.1.10": "4830afd426bdeacbdf9cb8729524aa2ed51790b8c4b28786995925593708f1c8",
"1.1.11": "9f1ee53f06b78cc4a115ca6ae4eec10567999539ce828a22c5351edba043ed12",
"1.1.12": "879f910a05c95c10c64ad8eb7d5e3aa8e4b30e65587b3d68e009a3565aed5bb8",
}
return hashes
}

View File

@ -18,72 +18,12 @@ package wellknownassets
import (
"fmt"
"os"
"path"
"path/filepath"
"reflect"
"testing"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/util/pkg/architectures"
)
func TestRuncVersionUrlHash(t *testing.T) {
tests := []struct {
version string
arch architectures.Architecture
hash string
url string
err error
}{
{
arch: architectures.ArchitectureAmd64,
version: "1.100.0",
url: "",
hash: "",
err: fmt.Errorf("unknown url and hash for runc version: amd64 - 1.100.0"),
},
{
arch: architectures.ArchitectureArm64,
version: "1.100.0",
url: "",
hash: "",
err: fmt.Errorf("unknown url and hash for runc version: arm64 - 1.100.0"),
},
{
arch: architectures.ArchitectureAmd64,
version: "1.1.0",
url: "https://github.com/opencontainers/runc/releases/download/v1.1.0/runc.amd64",
hash: "ab1c67fbcbdddbe481e48a55cf0ef9a86b38b166b5079e0010737fd87d7454bb",
err: nil,
},
{
arch: architectures.ArchitectureArm64,
version: "1.1.0",
url: "https://github.com/opencontainers/runc/releases/download/v1.1.0/runc.arm64",
hash: "9ec8e68feabc4e7083a4cfa45ebe4d529467391e0b03ee7de7ddda5770b05e68",
err: nil,
},
}
for _, test := range tests {
t.Run(fmt.Sprintf("%s-%s", test.version, test.arch), func(t *testing.T) {
url, hash, err := findRuncVersionUrlHash(test.arch, test.version)
if !reflect.DeepEqual(err, test.err) {
t.Errorf("actual error %q differs from expected error %q", err, test.err)
return
}
if url != test.url {
t.Errorf("actual url %q differs from expected url %q", url, test.url)
return
}
if hash != test.hash {
t.Errorf("actual hash %q differs from expected hash %q", hash, test.hash)
return
}
})
}
}
func TestRuncVersionUrl(t *testing.T) {
tests := []struct {
version string
@ -154,137 +94,3 @@ func TestRuncVersionUrl(t *testing.T) {
})
}
}
func TestRuncVersionHash(t *testing.T) {
tests := []struct {
version string
arch architectures.Architecture
hash string
err error
}{
{
arch: "",
version: "1.1.0",
hash: "",
err: fmt.Errorf("unknown arch: \"\""),
},
{
arch: "arm",
version: "1.1.0",
hash: "",
err: fmt.Errorf("unknown arch: \"arm\""),
},
{
arch: architectures.ArchitectureAmd64,
version: "",
hash: "",
err: fmt.Errorf("unable to parse version string: \"\""),
},
{
arch: architectures.ArchitectureArm64,
version: "",
hash: "",
err: fmt.Errorf("unable to parse version string: \"\""),
},
{
arch: architectures.ArchitectureAmd64,
version: "1.0.0",
hash: "",
err: fmt.Errorf("unsupported runc version: \"1.0.0\""),
},
{
arch: architectures.ArchitectureArm64,
version: "1.0.0",
hash: "",
err: fmt.Errorf("unsupported runc version: \"1.0.0\""),
},
{
arch: architectures.ArchitectureAmd64,
version: "1.100.0",
hash: "",
err: fmt.Errorf("unknown hash for runc version: amd64 - 1.100.0"),
},
{
arch: architectures.ArchitectureArm64,
version: "1.100.0",
hash: "",
err: fmt.Errorf("unknown hash for runc version: arm64 - 1.100.0"),
},
{
arch: architectures.ArchitectureAmd64,
version: "1.1.0",
hash: "ab1c67fbcbdddbe481e48a55cf0ef9a86b38b166b5079e0010737fd87d7454bb",
err: nil,
},
{
arch: architectures.ArchitectureArm64,
version: "1.1.0",
hash: "9ec8e68feabc4e7083a4cfa45ebe4d529467391e0b03ee7de7ddda5770b05e68",
err: nil,
},
}
for _, test := range tests {
t.Run(fmt.Sprintf("%s-%s", test.version, test.arch), func(t *testing.T) {
hash, err := findRuncVersionHash(test.arch, test.version)
if !reflect.DeepEqual(err, test.err) {
t.Errorf("actual error %q differs from expected error %q", err, test.err)
return
}
if hash != test.hash {
t.Errorf("actual hash %q differs from expected hash %q", hash, test.hash)
return
}
})
}
}
func TestRuncVersionsHashesAmd64(t *testing.T) {
if os.Getenv("VERIFY_HASHES") == "" {
t.Skip("VERIFY_HASHES not set, won't download & verify runc hashes")
}
for version, hash := range findAllRuncHashesAmd64() {
t.Run(version+"-amd64", func(t *testing.T) {
url, _ := findRuncVersionUrl(architectures.ArchitectureAmd64, version)
if err := verifyPackageHash(url, hash); err != nil {
t.Errorf("error verifying package %q: %v", url, err)
}
})
}
}
func TestRuncVersionsHashesArm64(t *testing.T) {
if os.Getenv("VERIFY_HASHES") == "" {
t.Skip("VERIFY_HASHES not set, won't download & verify runc hashes")
}
for version, hash := range findAllRuncHashesArm64() {
t.Run(version+"-arm64", func(t *testing.T) {
url, _ := findRuncVersionUrl(architectures.ArchitectureArm64, version)
if err := verifyPackageHash(url, hash); err != nil {
t.Errorf("error verifying package %q: %v", url, err)
}
})
}
}
func verifyPackageHash(u string, h string) error {
name := fmt.Sprintf("%s-%s", h, path.Base(u))
path := filepath.Join("/tmp", name)
actualHash, err := fi.DownloadURL(u, path, nil)
if err != nil {
return err
}
err = os.Remove(path)
if err != nil {
return err
}
if h != actualHash.Hex() {
return fmt.Errorf("actual hash %q differs from expected hash %q", actualHash.Hex(), h)
}
return nil
}