@@ -13,7 +13,16 @@ VIRT_ARTIFACTS_SERVER ?= $(REGISTRY_NAMESPACE)/virt-artifacts-server
13
13
LDFLAGS ?= -w -s
14
14
GOLANDCI_LINT_VERSION ?= v1.64.4
15
15
HCO_BUMP_LEVEL ?= minor
16
+ UNAME_ARCH := $(shell uname -m)
17
+ ifeq ($(UNAME_ARCH ) ,x86_64)
18
+ TEMP_ARCH = amd64
19
+ else ifeq ($(UNAME_ARCH),aarch64)
20
+ TEMP_ARCH = arm64
21
+ else
22
+ TEMP_ARCH := $(UNAME_ARCH)
23
+ endif
16
24
25
+ ARCH ?= $(TEMP_ARCH )
17
26
18
27
# Prow doesn't have docker command
19
28
DO =./hack/in-docker.sh
@@ -87,11 +96,25 @@ hack-clean: ## Run ./hack/clean.sh
87
96
88
97
container-build : container-build-operator container-build-webhook container-build-operator-courier container-build-functest container-build-artifacts-server
89
98
99
+ build-multi-arch-images : build-multi-arch-operator-image build-multi-arch-webhook-image build-multi-arch-functest-image build-multi-arch-artifacts-server
100
+
90
101
container-build-operator :
91
- . " hack/cri-bin.sh" && $$ CRI_BIN build -f build/Dockerfile -t $(IMAGE_REGISTRY ) /$(OPERATOR_IMAGE ) :$(IMAGE_TAG ) --build-arg git_sha=$(SHA ) .
102
+ . " hack/cri-bin.sh" && $$ CRI_BIN build --platform=linux/$(ARCH ) -f build/Dockerfile -t $(IMAGE_REGISTRY ) /$(OPERATOR_IMAGE ) :$(IMAGE_TAG ) --build-arg git_sha=$(SHA ) .
103
+
104
+ build-multi-arch-operator-image :
105
+ IMAGE_NAME=$(IMAGE_REGISTRY ) /$(OPERATOR_IMAGE ) :$(IMAGE_TAG ) SHA=SHA DOCKER_FILE=build/Dockerfile ./hack/build-multi-arch-images.sh
106
+
107
+ push-multi-arch-operator-image :
108
+ . " hack/cri-bin.sh" && $$ CRI_BIN manifest push $(IMAGE_REGISTRY ) /$(OPERATOR_IMAGE ) :$(IMAGE_TAG )
92
109
93
110
container-build-webhook :
94
- . " hack/cri-bin.sh" && $$ CRI_BIN build -f build/Dockerfile.webhook -t $(IMAGE_REGISTRY ) /$(WEBHOOK_IMAGE ) :$(IMAGE_TAG ) --build-arg git_sha=$(SHA ) .
111
+ . " hack/cri-bin.sh" && $$ CRI_BIN build --platform=linux/$(ARCH ) -f build/Dockerfile.webhook -t $(IMAGE_REGISTRY ) /$(WEBHOOK_IMAGE ) :$(IMAGE_TAG ) --build-arg git_sha=$(SHA ) .
112
+
113
+ build-multi-arch-webhook-image :
114
+ IMAGE_NAME=$(IMAGE_REGISTRY ) /$(WEBHOOK_IMAGE ) :$(IMAGE_TAG ) SHA=$(SHA ) DOCKER_FILE=" build/Dockerfile.webhook" ./hack/build-multi-arch-images.sh
115
+
116
+ push-multi-arch-webhook-image :
117
+ . " hack/cri-bin.sh" && $$ CRI_BIN manifest push $(IMAGE_REGISTRY ) /$(WEBHOOK_IMAGE ) :$(IMAGE_TAG )
95
118
96
119
container-build-operator-courier :
97
120
podman build -f tools/operator-courier/Dockerfile -t hco-courier .
@@ -100,13 +123,27 @@ container-build-validate-bundles:
100
123
podman build -f tools/operator-sdk-validate/Dockerfile -t operator-sdk-validate-hco .
101
124
102
125
container-build-functest :
103
- . " hack/cri-bin.sh" && $$ CRI_BIN build -f build/Dockerfile.functest -t $(IMAGE_REGISTRY ) /$(FUNC_TEST_IMAGE ) :$(IMAGE_TAG ) --build-arg git_sha=$(SHA ) .
126
+ . " hack/cri-bin.sh" && $$ CRI_BIN build --platform=linux/$(ARCH ) -f build/Dockerfile.functest -t $(IMAGE_REGISTRY ) /$(FUNC_TEST_IMAGE ) :$(IMAGE_TAG ) --build-arg git_sha=$(SHA ) .
127
+
128
+ build-multi-arch-functest-image :
129
+ IMAGE_NAME=$(IMAGE_REGISTRY ) /$(FUNC_TEST_IMAGE ) :$(IMAGE_TAG ) SHA=$(SHA ) DOCKER_FILE=" build/Dockerfile.functest" ./hack/build-multi-arch-images.sh
130
+
131
+ push-multi-arch-functest-image :
132
+ . " hack/cri-bin.sh" && $$ CRI_BIN manifest push $(IMAGE_REGISTRY ) /$(FUNC_TEST_IMAGE ) :$(IMAGE_TAG )
104
133
105
134
container-build-artifacts-server :
106
135
podman build -f build/Dockerfile.artifacts -t $(IMAGE_REGISTRY ) /$(VIRT_ARTIFACTS_SERVER ) :$(IMAGE_TAG ) --build-arg git_sha=$(SHA ) .
107
136
137
+ build-multi-arch-artifacts-server :
138
+ IMAGE_NAME=$(IMAGE_REGISTRY ) /$(VIRT_ARTIFACTS_SERVER ) :$(IMAGE_TAG ) SHA=$(SHA ) DOCKER_FILE=" build/Dockerfile.artifacts" ./hack/build-multi-arch-images.sh
139
+
140
+ push-multi-arch-artifacts-server :
141
+ . " hack/cri-bin.sh" && $$ CRI_BIN manifest push $(IMAGE_REGISTRY ) /$(VIRT_ARTIFACTS_SERVER ) :$(IMAGE_TAG )
142
+
108
143
container-push : container-push-operator container-push-webhook container-push-functest container-push-artifacts-server
109
144
145
+ push-multi-arch-images : push-multi-arch-operator-image push-multi-arch-webhook-image push-multi-arch-functest-image push-multi-arch-artifacts-server
146
+
110
147
quay-login :
111
148
podman login $(IMAGE_REGISTRY ) -u $(QUAY_USERNAME ) -p " $( QUAY_PASSWORD) "
112
149
@@ -120,7 +157,7 @@ container-push-functest:
120
157
. " hack/cri-bin.sh" && $$ CRI_BIN push $$ CRI_INSECURE $(IMAGE_REGISTRY ) /$(FUNC_TEST_IMAGE ) :$(IMAGE_TAG )
121
158
122
159
container-push-artifacts-server :
123
- podman push $(IMAGE_REGISTRY ) /$(VIRT_ARTIFACTS_SERVER ) :$(IMAGE_TAG )
160
+ . " hack/cri-bin.sh " && $$ CRI_BIN manifest push $(IMAGE_REGISTRY ) /$(VIRT_ARTIFACTS_SERVER ) :$(IMAGE_TAG )
124
161
125
162
cluster-up :
126
163
./cluster/up.sh
@@ -303,4 +340,14 @@ bump-hco:
303
340
lint-monitoring \
304
341
sanity \
305
342
goimport \
306
- bump-hco
343
+ bump-hco \
344
+ build-multi-arch-operator-image \
345
+ push-multi-arch-operator-image \
346
+ build-multi-arch-webhook-image \
347
+ push-multi-arch-webhook-image \
348
+ build-multi-arch-functest-image \
349
+ push-multi-arch-functest-image \
350
+ build-multi-arch-artifacts-server \
351
+ push-multi-arch-artifacts-server \
352
+ build-multi-arch-images \
353
+ push-multi-arch-images
0 commit comments