Skip to content

Commit cbc7ecd

Browse files
authored
fix(ci): Inconsistent use of IMAGE_REGISTRY and IMAGE_NAMESPACE Makefile variables (#25846) (#25860)
Signed-off-by: Eugene Doudine <eugene.doudine@octopus.com>
1 parent 5d790e5 commit cbc7ecd

2 files changed

Lines changed: 52 additions & 10 deletions

File tree

Makefile

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -205,18 +205,35 @@ else
205205
IMAGE_TAG?=latest
206206
endif
207207

208+
# defaults for building images and manifests
208209
ifeq (${DOCKER_PUSH},true)
209210
ifndef IMAGE_NAMESPACE
210211
$(error IMAGE_NAMESPACE must be set to push images (e.g. IMAGE_NAMESPACE=argoproj))
211212
endif
212213
endif
213214

215+
# Consruct prefix for docker image
216+
# Note: keeping same logic as in hacks/update_manifests.sh
217+
ifdef IMAGE_REGISTRY
214218
ifdef IMAGE_NAMESPACE
219+
IMAGE_PREFIX=${IMAGE_REGISTRY}/${IMAGE_NAMESPACE}/
220+
else
221+
$(error IMAGE_NAMESPACE must be set when IMAGE_REGISTRY is set (e.g. IMAGE_NAMESPACE=argoproj))
222+
endif
223+
else
224+
ifdef IMAGE_NAMESPACE
225+
# for backwards compatibility with the old way like IMAGE_NAMESPACE='quay.io/argoproj'
215226
IMAGE_PREFIX=${IMAGE_NAMESPACE}/
227+
else
228+
# Neither namespace nor registry given - apply the default values
229+
IMAGE_REGISTRY="quay.io"
230+
IMAGE_NAMESPACE="argoproj"
231+
IMAGE_PREFIX=${IMAGE_REGISTRY}/${IMAGE_NAMESPACE}/
232+
endif
216233
endif
217234

218-
ifndef IMAGE_REGISTRY
219-
IMAGE_REGISTRY="quay.io"
235+
ifndef IMAGE_REPOSITORY
236+
IMAGE_REPOSITORY=argocd
220237
endif
221238

222239
.PHONY: all
@@ -356,16 +373,16 @@ image: build-ui
356373
ln -sfn ${DIST_DIR}/argocd ${DIST_DIR}/argocd-cmp-server
357374
ln -sfn ${DIST_DIR}/argocd ${DIST_DIR}/argocd-dex
358375
cp Dockerfile.dev dist
359-
DOCKER_BUILDKIT=1 $(DOCKER) build --platform=$(TARGET_ARCH) -t $(IMAGE_PREFIX)argocd:$(IMAGE_TAG) -f dist/Dockerfile.dev dist
376+
DOCKER_BUILDKIT=1 $(DOCKER) build --platform=$(TARGET_ARCH) -t $(IMAGE_PREFIX)$(IMAGE_REPOSITORY):$(IMAGE_TAG) -f dist/Dockerfile.dev dist
360377
else
361378
image:
362-
DOCKER_BUILDKIT=1 $(DOCKER) build -t $(IMAGE_PREFIX)argocd:$(IMAGE_TAG) --platform=$(TARGET_ARCH) .
379+
DOCKER_BUILDKIT=1 $(DOCKER) build -t $(IMAGE_PREFIX)$(IMAGE_REPOSITORY):$(IMAGE_TAG) --platform=$(TARGET_ARCH) .
363380
endif
364-
@if [ "$(DOCKER_PUSH)" = "true" ] ; then $(DOCKER) push $(IMAGE_PREFIX)argocd:$(IMAGE_TAG) ; fi
381+
@if [ "$(DOCKER_PUSH)" = "true" ] ; then $(DOCKER) push $(IMAGE_PREFIX)$(IMAGE_REPOSITORY):$(IMAGE_TAG) ; fi
365382

366383
.PHONY: armimage
367384
armimage:
368-
$(DOCKER) build -t $(IMAGE_PREFIX)argocd:$(IMAGE_TAG)-arm .
385+
$(DOCKER) build -t $(IMAGE_PREFIX)(IMAGE_REPOSITORY):$(IMAGE_TAG)-arm .
369386

370387
.PHONY: builder-image
371388
builder-image:

hack/update-manifests.sh

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,39 @@ KUSTOMIZE=kustomize
1212

1313
cd "${SRCROOT}/manifests/ha/base/redis-ha" && ./generate.sh
1414

15+
# Empty defaults - to avoid errors for unset env. variables
16+
IMAGE_REGISTRY="${IMAGE_REGISTRY:-}"
17+
IMAGE_NAMESPACE="${IMAGE_NAMESPACE:-}"
18+
IMAGE_TAG="${IMAGE_TAG:-}"
1519
# Image repository configuration - can be overridden in forks
16-
IMAGE_REGISTRY="${IMAGE_REGISTRY:-quay.io}"
17-
IMAGE_NAMESPACE="${IMAGE_NAMESPACE:-argoproj}"
1820
IMAGE_REPOSITORY="${IMAGE_REPOSITORY:-argocd}"
19-
IMAGE_TAG="${IMAGE_TAG:-}"
21+
22+
# Apply defaults if needed
23+
if [[ -n $IMAGE_REGISTRY ]];then
24+
if [[ -z $IMAGE_NAMESPACE ]]; then
25+
echo "IMAGE_NAMESPACE must be set when IMAGE_REGISTRY is set (e.g. IMAGE_NAMESPACE=argoproj)" >&2
26+
exit 1
27+
fi
28+
# both registry and namespace set, nothing to do
29+
else # registry not set
30+
if [[ -z $IMAGE_NAMESPACE ]]; then
31+
# Neither namespace nor registry given - apply the default values
32+
IMAGE_REGISTRY="${IMAGE_REGISTRY:-quay.io}"
33+
IMAGE_NAMESPACE="${IMAGE_NAMESPACE:-argoproj}"
34+
fi
35+
# If namespace is set, then it's an image without registry or
36+
# registry is given as part of namespace (old convention)
37+
fi
2038

2139
# Construct full image name
22-
FULL_IMAGE_NAME="${IMAGE_REGISTRY}/${IMAGE_NAMESPACE}/${IMAGE_REPOSITORY}"
40+
# Note: keeping same logic as in Makefile for docker images
41+
FULL_IMAGE_NAME="${IMAGE_REPOSITORY}"
42+
if [[ -n $IMAGE_NAMESPACE ]]; then
43+
FULL_IMAGE_NAME="${IMAGE_NAMESPACE}/${FULL_IMAGE_NAME}"
44+
fi
45+
if [[ -n $IMAGE_REGISTRY ]]; then
46+
FULL_IMAGE_NAME="${IMAGE_REGISTRY}/${FULL_IMAGE_NAME}"
47+
fi
2348

2449
# Auto-detect current image in manifests for release workflows
2550
detect_current_image() {

0 commit comments

Comments
 (0)