@@ -4,21 +4,36 @@ ifneq ($(origin TARGET_SITE), undefined)
44 TARGET_SITE_OPT =--set main.clusterGroupName=$(TARGET_SITE )
55endif
66
7+ # Set this to true if you want to skip any origin validation
8+ DISABLE_VALIDATE_ORIGIN ?= false
9+ ifeq ($(DISABLE_VALIDATE_ORIGIN ) ,true)
10+ VALIDATE_ORIGIN :=
11+ else
12+ VALIDATE_ORIGIN := validate-origin
13+ endif
14+
715# This variable can be set in order to pass additional helm arguments from the
816# the command line. I.e. we can set things without having to tweak values files
917EXTRA_HELM_OPTS ?=
1018
19+ # This variable can be set in order to pass additional ansible-playbook arguments from the
20+ # the command line. I.e. we can set -vvv for more verbose logging
21+ EXTRA_PLAYBOOK_OPTS ?=
22+
1123# INDEX_IMAGES=registry-proxy.engineering.redhat.com/rh-osbs/iib:394248
1224# or
1325# INDEX_IMAGES=registry-proxy.engineering.redhat.com/rh-osbs/iib:394248,registry-proxy.engineering.redhat.com/rh-osbs/iib:394249
1426INDEX_IMAGES ?=
1527
16- TARGET_ORIGIN ?= origin
28+ # git branch --show-current is also available as of git 2.22, but we will use this for compatibility
29+ TARGET_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
30+
31+ # default to the branch remote
32+ TARGET_ORIGIN ?= $(shell git config branch.$(TARGET_BRANCH ) .remote)
33+
1734# This is to ensure that whether we start with a git@ or https:// URL, we end up with an https:// URL
1835# This is because we expect to use tokens for repo authentication as opposed to SSH keys
1936TARGET_REPO =$(shell git ls-remote --get-url --symref $(TARGET_ORIGIN ) | sed -e 's/.* URL:[[:space:]]* //' -e 's% ^git@%% ' -e 's% ^https://%% ' -e 's% :% /% ' -e 's% ^% https://% ')
20- # git branch --show-current is also available as of git 2.22, but we will use this for compatibility
21- TARGET_BRANCH =$(shell git rev-parse --abbrev-ref HEAD)
2237
2338UUID_FILE ?= ~/.config/validated-patterns/pattern-uuid
2439UUID_HELM_OPTS ?=
@@ -67,12 +82,8 @@ preview-%:
6782 @common/scripts/preview.sh $(CLUSTERGROUP ) $* $(TARGET_REPO ) $(TARGET_BRANCH )
6883
6984.PHONY : operator-deploy
70- operator-deploy operator-upgrade : validate-prereq validate-origin validate-cluster # # runs helm install
71- @set -e -o pipefail
72- # Retry five times because the CRD might not be fully installed yet
73- for i in {1..5}; do \
74- helm template --include-crds --name-template $(NAME ) $(PATTERN_INSTALL_CHART ) $(HELM_OPTS ) | oc apply -f- && break || sleep 10; \
75- done
85+ operator-deploy operator-upgrade : validate-prereq $(VALIDATE_ORIGIN ) validate-cluster # # runs helm install
86+ @common/scripts/deploy-pattern.sh $(NAME ) $(PATTERN_INSTALL_CHART ) $(HELM_OPTS )
7687
7788.PHONY : uninstall
7889uninstall : # # runs helm uninstall
@@ -115,7 +126,7 @@ secrets-backend-none: ## Edits values files to remove secrets manager + ESO
115126.PHONY : load-iib
116127load-iib : # # CI target to install Index Image Bundles
117128 @set -e; if [ x$( INDEX_IMAGES) != x ]; then \
118- ansible-playbook rhvp.cluster_utils.iib-ci ; \
129+ ansible-playbook $( EXTRA_PLAYBOOK_OPTS ) rhvp.cluster_utils.iib_ci ; \
119130 else \
120131 echo " No INDEX_IMAGES defined. Bailing out" ; \
121132 exit 1; \
@@ -129,12 +140,22 @@ token-kubeconfig: ## Create a local ~/.kube/config with password (not usually ne
129140
130141# We only check the remote ssh git branch's existance if we're not running inside a container
131142# as getting ssh auth working inside a container seems a bit brittle
143+ # If the main repoUpstreamURL field is set, then we need to check against
144+ # that and not target_repo
132145.PHONY : validate-origin
133146validate-origin : # # verify the git origin is available
134147 @echo " Checking repository:"
135- @echo -n " $( TARGET_REPO) - branch '$( TARGET_BRANCH) ': "
136- @git ls-remote --exit-code --heads $(TARGET_REPO ) $(TARGET_BRANCH ) > /dev/null && \
137- echo " OK" || (echo " NOT FOUND" ; exit 1)
148+ $(eval UPSTREAMURL := $(shell yq -r '.main.git.repoUpstreamURL // (.main.git.repoUpstreamURL = "") ' values-global.yaml) )
149+ @if [ -z " $( UPSTREAMURL) " ]; then\
150+ echo -n " $( TARGET_REPO) - branch '$( TARGET_BRANCH) ': " ; \
151+ git ls-remote --exit-code --heads $(TARGET_REPO ) $(TARGET_BRANCH ) > /dev/null && \
152+ echo " OK" || (echo " NOT FOUND" ; exit 1); \
153+ else\
154+ echo " Upstream URL set to: $( UPSTREAMURL) " ; \
155+ echo -n " $( UPSTREAMURL) - branch '$( TARGET_BRANCH) ': " ; \
156+ git ls-remote --exit-code --heads $(UPSTREAMURL ) $(TARGET_BRANCH ) > /dev/null && \
157+ echo " OK" || (echo " NOT FOUND" ; exit 1); \
158+ fi
138159
139160.PHONY : validate-cluster
140161validate-cluster : # # Do some cluster validations before installing
@@ -143,7 +164,7 @@ validate-cluster: ## Do some cluster validations before installing
143164 @oc cluster-info > /dev/null && echo " OK" || (echo " Error" ; exit 1)
144165 @echo -n " storageclass: "
145166 @if [ ` oc get storageclass -o go-template=' {{printf "%d\n" (len .items)}}' ` -eq 0 ]; then\
146- echo " None Found " ; exit 1 ; \
167+ echo " WARNING: No storageclass found " ; \
147168 else\
148169 echo " OK" ; \
149170 fi
@@ -153,15 +174,20 @@ validate-cluster: ## Do some cluster validations before installing
153174validate-schema : # # validates values files against schema in common/clustergroup
154175 $(eval VAL_PARAMS := $(shell for i in ./values-* .yaml; do echo -n "$${i} "; done) )
155176 @echo -n " Validating clustergroup schema of: "
156- @set -e; for i in $( VAL_PARAMS) ; do echo -n " $$ i" ; helm template common /clustergroup $( HELM_OPTS) -f " $$ {i}" > /dev/null; done
177+ @set -e; for i in $( VAL_PARAMS) ; do echo -n " $$ i" ; helm template oci://quay.io/hybridcloudpatterns /clustergroup $( HELM_OPTS) -f " $$ {i}" > /dev/null; done
157178 @echo
158179
159180.PHONY : validate-prereq
160181validate-prereq : # # verify pre-requisites
182+ $(eval GLOBAL_PATTERN := $(shell yq -r .global.pattern values-global.yaml) )
183+ @if [ $( NAME) != $( GLOBAL_PATTERN) ]; then\
184+ echo " " ; \
185+ echo " WARNING: folder directory is \" $( NAME) \" and global.pattern is set to \" $( GLOBAL_PATTERN) \" " ; \
186+ echo " this can create problems. Please make sure they are the same!" ; \
187+ echo " " ; \
188+ fi
161189 @if [ ! -f /run/.containerenv ]; then\
162190 echo " Checking prerequisites:" ; \
163- for t in $( EXECUTABLES) ; do if ! which $$ t > /dev/null 2>&1 ; then echo " No $$ t in PATH" ; exit 1; fi ; done ; \
164- echo " Check for '$( EXECUTABLES) ': OK" ; \
165191 echo -n " Check for python-kubernetes: " ; \
166192 if ! ansible -m ansible.builtin.command -a " {{ ansible_python_interpreter }} -c 'import kubernetes'" localhost > /dev/null 2>&1 ; then echo " Not found" ; exit 1; fi ; \
167193 echo " OK" ; \
@@ -182,16 +208,16 @@ validate-prereq: ## verify pre-requisites
182208.PHONY : argo-healthcheck
183209argo-healthcheck : # # Checks if all argo applications are synced
184210 @echo " Checking argo applications"
185- $(eval APPS := $(shell oc get applications -A -o jsonpath='{range .items[* ]}{@.metadata.namespace}{","}{@.metadata.name}{"\n"}{end}') )
211+ $(eval APPS := $(shell oc get applications.argoproj.io -A -o jsonpath='{range .items[* ]}{@.metadata.namespace}{","}{@.metadata.name}{"\n"}{end}') )
186212 @NOTOK=0; \
187213 for i in $( APPS) ; do\
188214 n=` echo " $$ {i}" | cut -f1 -d,` ; \
189215 a=` echo " $$ {i}" | cut -f2 -d,` ; \
190- STATUS=` oc get -n " $$ {n}" application /" $$ {a}" -o jsonpath=' {.status.sync.status}' ` ; \
216+ STATUS=` oc get -n " $$ {n}" applications.argoproj.io /" $$ {a}" -o jsonpath=' {.status.sync.status}' ` ; \
191217 if [[ $$ STATUS != " Synced" ]]; then\
192218 NOTOK=$$(( $${NOTOK} + 1 ) ); \
193219 fi ; \
194- HEALTH=` oc get -n " $$ {n}" application /" $$ {a}" -o jsonpath=' {.status.health.status}' ` ; \
220+ HEALTH=` oc get -n " $$ {n}" applications.argoproj.io /" $$ {a}" -o jsonpath=' {.status.health.status}' ` ; \
195221 if [[ $$ HEALTH != " Healthy" ]]; then\
196222 NOTOK=$$(( $${NOTOK} + 1 ) ); \
197223 fi ; \
@@ -208,7 +234,7 @@ argo-healthcheck: ## Checks if all argo applications are synced
208234.PHONY : qe-tests
209235qe-tests : # # Runs the tests that QE runs
210236 @set -e; if [ -f ./tests/interop/run_tests.sh ]; then \
211- ./tests/interop/run_tests.sh; \
237+ pushd ./tests/interop; . /run_tests.sh; popd ; \
212238 else \
213239 echo " No ./tests/interop/run_tests.sh found skipping" ; \
214240 fi
0 commit comments