Skip to content

Commit c94e146

Browse files
Merge pull request #252 from cert-manager/self-upgrade-main
[CI] Merge self-upgrade-main into main
2 parents 87eff9a + a7ef867 commit c94e146

File tree

8 files changed

+146
-55
lines changed

8 files changed

+146
-55
lines changed

OWNERS_ALIASES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ aliases:
1111
- irbekrm
1212
- sgtcodfish
1313
- inteon
14+
- thatsmrtalbot

klone.yaml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,65 +10,65 @@ targets:
1010
- folder_name: boilerplate
1111
repo_url: https://github.com/cert-manager/makefile-modules.git
1212
repo_ref: main
13-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
13+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
1414
repo_path: modules/boilerplate
1515
- folder_name: cert-manager
1616
repo_url: https://github.com/cert-manager/makefile-modules.git
1717
repo_ref: main
18-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
18+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
1919
repo_path: modules/cert-manager
2020
- folder_name: controller-gen
2121
repo_url: https://github.com/cert-manager/makefile-modules.git
2222
repo_ref: main
23-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
23+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
2424
repo_path: modules/controller-gen
2525
- folder_name: generate-verify
2626
repo_url: https://github.com/cert-manager/makefile-modules.git
2727
repo_ref: main
28-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
28+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
2929
repo_path: modules/generate-verify
3030
- folder_name: go
3131
repo_url: https://github.com/cert-manager/makefile-modules.git
3232
repo_ref: main
33-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
33+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
3434
repo_path: modules/go
3535
- folder_name: helm
3636
repo_url: https://github.com/cert-manager/makefile-modules.git
3737
repo_ref: main
38-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
38+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
3939
repo_path: modules/helm
4040
- folder_name: help
4141
repo_url: https://github.com/cert-manager/makefile-modules.git
4242
repo_ref: main
43-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
43+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
4444
repo_path: modules/help
4545
- folder_name: kind
4646
repo_url: https://github.com/cert-manager/makefile-modules.git
4747
repo_ref: main
48-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
48+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
4949
repo_path: modules/kind
5050
- folder_name: klone
5151
repo_url: https://github.com/cert-manager/makefile-modules.git
5252
repo_ref: main
53-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
53+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
5454
repo_path: modules/klone
5555
- folder_name: oci-build
5656
repo_url: https://github.com/cert-manager/makefile-modules.git
5757
repo_ref: main
58-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
58+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
5959
repo_path: modules/oci-build
6060
- folder_name: oci-publish
6161
repo_url: https://github.com/cert-manager/makefile-modules.git
6262
repo_ref: main
63-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
63+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
6464
repo_path: modules/oci-publish
6565
- folder_name: repository-base
6666
repo_url: https://github.com/cert-manager/makefile-modules.git
6767
repo_ref: main
68-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
68+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
6969
repo_path: modules/repository-base
7070
- folder_name: tools
7171
repo_url: https://github.com/cert-manager/makefile-modules.git
7272
repo_ref: main
73-
repo_hash: ed50ac284f8e2a389ee33d4dcb90eb4de108bb98
73+
repo_hash: c112512ba05d8a5b09ba5e997fd9db8cbb79f154
7474
repo_path: modules/tools

make/_shared/cert-manager/00_mod.mk

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
images_amd64 ?=
1616
images_arm64 ?=
1717

18-
cert_manager_version := v1.14.4
18+
cert_manager_version := v1.14.5
1919

20-
images_amd64 += quay.io/jetstack/cert-manager-controller:$(cert_manager_version)@sha256:f84edf06327f84ed2ca056776659aa144cf3cc982c5403650c24553c5a44b03d
21-
images_amd64 += quay.io/jetstack/cert-manager-cainjector:$(cert_manager_version)@sha256:8267563833c31cc428b9ae460b890d079a1da09a4d8d00ec299a47dd613fbd24
22-
images_amd64 += quay.io/jetstack/cert-manager-webhook:$(cert_manager_version)@sha256:ba5469d1a77b1cb04a703199b0e69bc25644a00498adc3694a0369c87375b4ca
23-
images_amd64 += quay.io/jetstack/cert-manager-startupapicheck:$(cert_manager_version)@sha256:2a1545099cf6386ab08e979a58a6280fe123d091c69f8222bfb22c597003a3f0
20+
images_amd64 += quay.io/jetstack/cert-manager-controller:$(cert_manager_version)@sha256:f37f460aaa7598ba251ff1cbe7438012fd56c4acc94be64245e8a836203c5542
21+
images_amd64 += quay.io/jetstack/cert-manager-cainjector:$(cert_manager_version)@sha256:6d9ebced61371cc903f7934690923034382456f3ce6e0fe2b692c40dbd67d523
22+
images_amd64 += quay.io/jetstack/cert-manager-webhook:$(cert_manager_version)@sha256:ac34b1905a2ff20789fde27115d3e1aa7b3d09f57efba4e91ae2ba1744de4ad2
23+
images_amd64 += quay.io/jetstack/cert-manager-startupapicheck:$(cert_manager_version)@sha256:5c74e4e37586dc5c35442515f43ecf222e961b65e954798428ac9239408bc0f3
2424

25-
images_arm64 += quay.io/jetstack/cert-manager-controller:$(cert_manager_version)@sha256:39a6e9e699b3dacb8b92538efbaff85c16d4b30343ebeaaf2f35772ff3cebf53
26-
images_arm64 += quay.io/jetstack/cert-manager-cainjector:$(cert_manager_version)@sha256:956aac21371499fdcc8811b4b5fc8e2e0d6e552b15723c783fe56270347fc9e0
27-
images_arm64 += quay.io/jetstack/cert-manager-webhook:$(cert_manager_version)@sha256:8ea8462c1daa7604f4f2e71e0cdeef3dd5d7e0f04341982a05dc296299766126
28-
images_arm64 += quay.io/jetstack/cert-manager-startupapicheck:$(cert_manager_version)@sha256:f4cd54540f8813e63a2f53b5b210454ae2a5fe0949b9f55d8f1270162ebad9a8
25+
images_arm64 += quay.io/jetstack/cert-manager-controller:$(cert_manager_version)@sha256:96668890d162a743407c0ef14d7769e970aa16655959b5f5cab0c595167148fa
26+
images_arm64 += quay.io/jetstack/cert-manager-cainjector:$(cert_manager_version)@sha256:719aec5d99e86377829261451985592bc4129c5ca8dcb7f20b32170742f2b29b
27+
images_arm64 += quay.io/jetstack/cert-manager-webhook:$(cert_manager_version)@sha256:874da5701a98e352fa28d88470671eb792a472737a3cf2b7ce9966817e962de8
28+
images_arm64 += quay.io/jetstack/cert-manager-startupapicheck:$(cert_manager_version)@sha256:35d35b325b980cc702324e52b443cc7eb1df7211ce4e8e91d96da4eff4b6c894

make/_shared/oci-build/image_tool/append_layers.go

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"github.com/google/go-containerregistry/pkg/v1/match"
3131
"github.com/google/go-containerregistry/pkg/v1/mutate"
3232
"github.com/google/go-containerregistry/pkg/v1/tarball"
33+
"github.com/google/go-containerregistry/pkg/v1/types"
3334
"github.com/spf13/cobra"
3435
)
3536

@@ -45,16 +46,33 @@ var CommandAppendLayers = cobra.Command{
4546
return
4647
}
4748

49+
path, err := layout.FromPath(oci)
50+
must("could not load oci directory", err)
51+
52+
index, err := path.ImageIndex()
53+
must("could not load oci image index", err)
54+
55+
indexMediaType, err := index.MediaType()
56+
must("could not get image index media type", err)
57+
58+
layerType := types.DockerLayer
59+
if indexMediaType == types.OCIImageIndex {
60+
layerType = types.OCILayer
61+
}
62+
4863
layers := []v1.Layer{}
4964
for _, path := range extra {
50-
layers = append(layers, loadLayerFromDirOrTarball(path))
65+
layers = append(layers, loadLayerFromDirOrTarball(path, layerType))
5166
}
5267

53-
appendLayersToAllImages(oci, layers...)
68+
index = appendLayersToImageIndex(index, layers)
69+
70+
_, err = layout.Write(oci, index)
71+
must("could not write image", err)
5472
},
5573
}
5674

57-
func loadLayerFromDirOrTarball(path string) v1.Layer {
75+
func loadLayerFromDirOrTarball(path string, mediaType types.MediaType) v1.Layer {
5876
stat, err := os.Stat(path)
5977
must("could not open directory or tarball", err)
6078

@@ -102,31 +120,24 @@ func loadLayerFromDirOrTarball(path string) v1.Layer {
102120

103121
byts := buf.Bytes()
104122

105-
layer, err = tarball.LayerFromOpener(func() (io.ReadCloser, error) {
106-
return io.NopCloser(bytes.NewReader(byts)), nil
107-
})
123+
layer, err = tarball.LayerFromOpener(
124+
func() (io.ReadCloser, error) {
125+
return io.NopCloser(bytes.NewReader(byts)), nil
126+
},
127+
tarball.WithMediaType(mediaType),
128+
)
108129

109130
} else {
110-
layer, err = tarball.LayerFromFile(path)
131+
layer, err = tarball.LayerFromFile(
132+
path,
133+
tarball.WithMediaType(mediaType),
134+
)
111135
}
112136

113137
must("could not open directory or tarball", err)
114138
return layer
115139
}
116140

117-
func appendLayersToAllImages(oci string, layers ...v1.Layer) {
118-
path, err := layout.FromPath(oci)
119-
must("could not load oci directory", err)
120-
121-
index, err := path.ImageIndex()
122-
must("could not load oci image index", err)
123-
124-
index = appendLayersToImageIndex(index, layers)
125-
126-
_, err = layout.Write(oci, index)
127-
must("could not write image", err)
128-
}
129-
130141
func appendLayersToImageIndex(index v1.ImageIndex, layers []v1.Layer) v1.ImageIndex {
131142
manifest, err := index.IndexManifest()
132143
must("could not load oci image manifest", err)
@@ -145,11 +156,15 @@ func appendLayersToImageIndex(index v1.ImageIndex, layers []v1.Layer) v1.ImageIn
145156
digest, err := img.Digest()
146157
must("could not get image digest", err)
147158

159+
size, err := img.Size()
160+
must("could not get image size", err)
161+
148162
slog.Info("appended layers to image", "old_digest", descriptor.Digest, "digest", digest, "platform", descriptor.Platform)
149163

150164
index = mutate.RemoveManifests(index, match.Digests(descriptor.Digest))
151165

152166
descriptor.Digest = digest
167+
descriptor.Size = size
153168
index = mutate.AppendManifests(index, mutate.IndexAddendum{
154169
Add: img,
155170
Descriptor: descriptor,
@@ -159,16 +174,20 @@ func appendLayersToImageIndex(index v1.ImageIndex, layers []v1.Layer) v1.ImageIn
159174
slog.Info("found image index", "digest", descriptor.Digest)
160175

161176
child, err := index.ImageIndex(descriptor.Digest)
162-
must("could not load oci image manifest", err)
177+
must("could not load oci index manifest", err)
163178

164179
child = appendLayersToImageIndex(child, layers)
165180

166181
digest, err := child.Digest()
167-
must("could not get image digest", err)
182+
must("could not get index digest", err)
183+
184+
size, err := child.Size()
185+
must("could not get index size", err)
168186

169187
index = mutate.RemoveManifests(index, match.Digests(descriptor.Digest))
170188

171189
descriptor.Digest = digest
190+
descriptor.Size = size
172191
index = mutate.AppendManifests(index, mutate.IndexAddendum{
173192
Add: child,
174193
Descriptor: descriptor,

make/_shared/oci-publish/01_mod.mk

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ sanitize_target = $(subst :,-,$1)
1919
registry_for = $(firstword $(subst /, ,$1))
2020

2121
# Utility variables
22-
current_makefile = $(lastword $(MAKEFILE_LIST))
23-
current_makefile_directory = $(dir $(current_makefile))
22+
current_makefile_directory := $(dir $(lastword $(MAKEFILE_LIST)))
23+
image_exists_script := $(current_makefile_directory)/image-exists.sh
2424

2525
# Validate globals that are required
2626
$(call fatal_if_undefined,bin_dir)
@@ -78,10 +78,10 @@ $(call sanitize_target,oci-push-$2): oci-build-$1 | $(NEEDS_CRANE)
7878

7979
.PHONY: $(call sanitize_target,oci-maybe-push-$2)
8080
$(call sanitize_target,oci-maybe-push-$2): oci-build-$1 | $(NEEDS_CRANE)
81-
$$(CRANE) $(crane_flags_$1) manifest $2:$(call oci_image_tag_for,$1) > /dev/null 2>&1 || (\
82-
$$(CRANE) $(crane_flags_$1) push "$(oci_layout_path_$1)" "$2:$(call oci_image_tag_for,$1)" && \
83-
$(if $(filter true,$(oci_sign_on_push_$1)),$(MAKE) $(call sanitize_target,oci-sign-$2)) \
84-
)
81+
CRANE="$$(CRANE) $(crane_flags_$1)" \
82+
source $(image_exists_script) $2:$(call oci_image_tag_for,$1); \
83+
$$(CRANE) $(crane_flags_$1) push "$(oci_layout_path_$1)" "$2:$(call oci_image_tag_for,$1)"; \
84+
$(if $(filter true,$(oci_sign_on_push_$1)),$(MAKE) $(call sanitize_target,oci-sign-$2))
8585

8686
oci-push-$1: $(call sanitize_target,oci-push-$2)
8787
oci-maybe-push-$1: $(call sanitize_target,oci-maybe-push-$2)
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright 2022 The cert-manager Authors.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
set -o errexit
18+
set -o nounset
19+
set -o pipefail
20+
21+
# This script checks if a given image exists in the upstream registry, and if it
22+
# does, whether it contains all the expected architectures.
23+
24+
crane=${CRANE:-}
25+
26+
FULL_IMAGE=${1:-}
27+
28+
function print_usage() {
29+
echo "usage: $0 <full-image> [commands...]"
30+
}
31+
32+
if [[ -z $FULL_IMAGE ]]; then
33+
print_usage
34+
echo "Missing full-image"
35+
exit 1
36+
fi
37+
38+
if [[ -z $crane ]]; then
39+
echo "CRANE environment variable must be set to the path of the crane binary"
40+
exit 1
41+
fi
42+
43+
shift 1
44+
45+
manifest=$(mktemp)
46+
trap 'rm -f "$manifest"' EXIT SIGINT
47+
48+
manifest_error=$(mktemp)
49+
trap 'rm -f "$manifest_error"' EXIT SIGINT
50+
51+
echo "+++ searching for $FULL_IMAGE in upstream registry"
52+
53+
set +o errexit
54+
$crane manifest "$FULL_IMAGE" > "$manifest" 2> "$manifest_error"
55+
exit_code=$?
56+
set -o errexit
57+
58+
manifest_error_data=$(cat "$manifest_error")
59+
if [[ $exit_code -eq 0 ]]; then
60+
echo "+++ upstream registry appears to contain $FULL_IMAGE, exiting"
61+
exit 0
62+
63+
elif [[ "$manifest_error_data" == *"MANIFEST_UNKNOWN"* ]]; then
64+
echo "+++ upstream registry does not contain $FULL_IMAGE, will build and push"
65+
# fall through to run the commands passed to this script
66+
67+
else
68+
echo "FATAL: upstream registry returned an unexpected error: $manifest_error_data, exiting"
69+
exit 1
70+
fi

make/_shared/repository-base/base/OWNERS_ALIASES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ aliases:
1111
- irbekrm
1212
- sgtcodfish
1313
- inteon
14+
- thatsmrtalbot

make/_shared/tools/00_mod.mk

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ ADDITIONAL_TOOLS ?=
150150
tools += $(ADDITIONAL_TOOLS)
151151

152152
# https://go.dev/dl/
153-
VENDORED_GO_VERSION := 1.22.2
153+
VENDORED_GO_VERSION := 1.22.3
154154

155155
# Print the go version which can be used in GH actions
156156
.PHONY: print-go-version
@@ -359,10 +359,10 @@ $(call for_each_kv,go_dependency,$(go_dependencies))
359359
# File downloads #
360360
##################
361361

362-
go_linux_amd64_SHA256SUM=5901c52b7a78002aeff14a21f93e0f064f74ce1360fce51c6ee68cd471216a17
363-
go_linux_arm64_SHA256SUM=36e720b2d564980c162a48c7e97da2e407dfcc4239e1e58d98082dfa2486a0c1
364-
go_darwin_amd64_SHA256SUM=33e7f63077b1c5bce4f1ecadd4d990cf229667c40bfb00686990c950911b7ab7
365-
go_darwin_arm64_SHA256SUM=660298be38648723e783ba0398e90431de1cb288c637880cdb124f39bd977f0d
362+
go_linux_amd64_SHA256SUM=8920ea521bad8f6b7bc377b4824982e011c19af27df88a815e3586ea895f1b36
363+
go_linux_arm64_SHA256SUM=6c33e52a5b26e7aa021b94475587fce80043a727a54ceb0eee2f9fc160646434
364+
go_darwin_amd64_SHA256SUM=dd5b9303f612379caebfd12eb19e6cadee653b300443eac3a5aca341b05ad7e9
365+
go_darwin_arm64_SHA256SUM=58d2838f28631038ed5583c5aefb73ea4e5b13040983df21c647880f4f7dd381
366366

367367
.PRECIOUS: $(DOWNLOAD_DIR)/tools/go@$(VENDORED_GO_VERSION)_$(HOST_OS)_$(HOST_ARCH).tar.gz
368368
$(DOWNLOAD_DIR)/tools/go@$(VENDORED_GO_VERSION)_$(HOST_OS)_$(HOST_ARCH).tar.gz: | $(DOWNLOAD_DIR)/tools

0 commit comments

Comments
 (0)