diff --git a/.zuul.yaml b/.zuul.yaml index dea6207..9099b7a 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -2,20 +2,20 @@ - project: name: openstack-k8s-operators/watcher-operator default-branch: main + templates: + - opendev-master-watcher-operator-pipeline github-check: jobs: - noop - watcher-operator-doc-preview - - openstack-meta-content-provider: - vars: - cifmw_operator_build_meta_build: false - watcher-operator-validation - watcher-operator-kuttl - job: name: watcher-operator-base + override-checkout: main parent: podified-multinode-edpm-deployment-crc-2comp - dependencies: ["openstack-meta-content-provider"] + dependencies: ["openstack-meta-content-provider-master"] description: | A multinode EDPM Zuul job which has one ansible controller, one extracted crc and two computes. It will be used for testing watcher-operator. @@ -23,6 +23,15 @@ watcher_repo: "{{ ansible_user_dir }}/src/github.com/openstack-k8s-operators/watcher-operator" watcher_hook: "{{ watcher_repo }}/ci/playbooks/deploy_watcher_service.yaml" watcher_coo_hook: "{{ watcher_repo }}/ci/playbooks/deploy_cluster_observability_operator.yaml" + run_tempest: false + # Based on current testing, https://github.com/openstack-k8s-operators/watcher-operator/pull/47#issuecomment-2607474033 + # We need decision engine and applier CRD to ready to run + # whole test suite + cifmw_test_operator_tempest_include_list: | + watcher_tempest_plugin.tests.api.admin.test_api_discovery.TestApiDiscovery + # Donot use openstack services containers from meta content provider master + # job. + cifmw_update_containers_openstack: false # controlplane customization to deploy telemetry service cifmw_edpm_prepare_timeout: 60 cifmw_edpm_prepare_kustomizations: @@ -65,16 +74,20 @@ parent: watcher-operator-base description: | A zuul job to validate the watcher operator and its service deployment. + extra-vars: + # Override zuul meta content provider provided content_provider_dlrn_md5_hash + # var. As returned dlrn md5 hash comes from master release but job is using + # antelope content. + content_provider_dlrn_md5_hash: '' vars: - run_tempest: false - # Based on current testing, https://github.com/openstack-k8s-operators/watcher-operator/pull/47#issuecomment-2607474033 - # We need decision engine and applier CRD to ready to run - # whole test suite - cifmw_test_operator_tempest_include_list: | - watcher_tempest_plugin.tests.api.admin.test_api_discovery.TestApiDiscovery + # Donot use openstack services containers from meta content provider master + # job. + cifmw_update_containers_openstack: false - job: name: watcher-operator-kuttl + override-checkout: main + dependencies: ["openstack-meta-content-provider-master"] parent: cifmw-multinode-kuttl-operator-target description: | A zuul job to run watcher operator kuttl tests. @@ -93,6 +106,13 @@ source: "{{ watcher_hook }}" extra_vars: watcher_catalog_image: "{{ content_provider_registry_ip }}:5001/openstack-k8s-operators/watcher-operator-index:{{ zuul.patchset }}" + extra-vars: + # Override zuul meta content provider provided content_provider_dlrn_md5_hash + # var. As returned dlrn md5 hash comes from master release but job is using + # antelope content. + content_provider_dlrn_md5_hash: '' + # We also need to override the registry otherwise kuttl test will fail + content_provider_os_registry_url: "quay.io/podified-master-centos9" - job: name: watcher-operator-doc-preview @@ -103,3 +123,51 @@ vars: asciidoc_available: true doc_available: false + +########################################################## +# # +# Master Zuul Jobs # +# # +########################################################## +- job: + name: openstack-meta-content-provider-master + override-checkout: main + description: | + A zuul job building content from OpenDev master release. + parent: openstack-meta-content-provider + vars: + cifmw_operator_build_meta_build: false + cifmw_bop_openstack_release: master + cifmw_bop_dlrn_baseurl: "https://trunk.rdoproject.org/centos9-master" + cifmw_repo_setup_branch: master + cifmw_build_containers_registry_namespace: podified-master-centos9 + +- job: + name: watcher-operator-validation-master + parent: watcher-operator-base + override-checkout: main + description: | + A Zuul job consuming content from openstack-meta-content-provider-master + and deploying EDPM with master content. + vars: + cifmw_repo_setup_branch: master + # To consume containers from meta content provider + cifmw_update_containers_openstack: true + +########################################################## +# # +# Project Template # +# # +########################################################## + +- project-template: + name: opendev-master-watcher-operator-pipeline + description: | + Project template to run meta content provider and + EDPM job with master opendev and github operator + content. + github-check: + debug: true + jobs: + - openstack-meta-content-provider-master + - watcher-operator-validation-master diff --git a/Makefile b/Makefile index 5f7ff3d..32fb0a7 100644 --- a/Makefile +++ b/Makefile @@ -375,8 +375,14 @@ update-watcher-csv: fi CATALOG_IMAGE ?= quay.io/openstack-k8s-operators/watcher-operator-index:latest +WATCHER_API_IMAGE_URL_DEFAULT ?= quay.io/podified-master-centos9/openstack-watcher-api:current-podified +WATCHER_DECISION_ENGINE_IMAGE_URL_DEFAULT ?= quay.io/podified-master-centos9/openstack-watcher-decision-engine:current-podified +WATCHER_APPLIER_IMAGE_URL_DEFAULT ?= quay.io/podified-master-centos9/openstack-watcher-applier:current-podified .PHONY: watcher +watcher: export WATCHER_API_IMAGE=${WATCHER_API_IMAGE_URL_DEFAULT} +watcher: export WATCHER_DECISION_ENGINE_IMAGE=${WATCHER_DECISION_ENGINE_IMAGE_URL_DEFAULT} +watcher: export WATCHER_APPLIER_IMAGE=${WATCHER_APPLIER_IMAGE_URL_DEFAULT} watcher: export CATALOG_IMG=${CATALOG_IMAGE} watcher: ## Install watcher operator via olm bash ci/olm.sh @@ -449,9 +455,9 @@ SKIP_CERT ?=false .PHONY: run-with-webhook run-with-webhook: export METRICS_PORT?=33080 run-with-webhook: export HEALTH_PORT?=33081 -run-with-webhook: export WATCHER_API_IMAGE_URL_DEFAULT=quay.io/podified-master-centos9/openstack-watcher-api:current-podified -run-with-webhook: export WATCHER_DECISION_ENGINE_IMAGE_URL_DEFAULT=quay.io/podified-master-centos9/openstack-watcher-decision-engine:current-podified -run-with-webhook: export WATCHER_APPLIER_IMAGE_URL_DEFAULT=quay.io/podified-master-centos9/openstack-watcher-applier:current-podified +run-with-webhook: export WATCHER_API_IMAGE_URL_DEFAULT=${WATCHER_API_IMAGE_URL_DEFAULT} +run-with-webhook: export WATCHER_DECISION_ENGINE_IMAGE_URL_DEFAULT=${WATCHER_DECISION_ENGINE_IMAGE_URL_DEFAULT} +run-with-webhook: export WATCHER_APPLIER_IMAGE_URL_DEFAULT=${WATCHER_APPLIER_IMAGE_URL_DEFAULT} run-with-webhook: manifests generate fmt vet ## Run a controller from your host. /bin/bash hack/clean_local_webhook.sh /bin/bash hack/run_with_local_webhook.sh diff --git a/ci/olm.sh b/ci/olm.sh index 2c71c2e..928e119 100644 --- a/ci/olm.sh +++ b/ci/olm.sh @@ -33,4 +33,12 @@ spec: channel: alpha source: watcher-operator-index sourceNamespace: openstack-operators + config: + env: + - name: WATCHER_API_IMAGE_URL_DEFAULT + value: ${WATCHER_API_IMAGE} + - name: WATCHER_DECISION_ENGINE_IMAGE_URL_DEFAULT + value: ${WATCHER_DECISION_ENGINE_IMAGE} + - name: WATCHER_APPLIER_IMAGE_URL_DEFAULT + value: ${WATCHER_APPLIER_IMAGE} EOF_CAT diff --git a/ci/playbooks/deploy_watcher_service.yaml b/ci/playbooks/deploy_watcher_service.yaml index 1591153..ae5ee4a 100644 --- a/ci/playbooks/deploy_watcher_service.yaml +++ b/ci/playbooks/deploy_watcher_service.yaml @@ -8,13 +8,29 @@ KUBECONFIG: "{{ cifmw_openshift_kubeconfig }}" PATH: "{{ cifmw_path }}" tasks: + - name: Fetch dlrn md5_hash from master DLRN repo + when: content_provider_dlrn_md5_hash | length > 0 + ansible.builtin.uri: + url: "https://{{ watcher_dlrn_server | default('trunk.rdoproject.org') }}/{{ watcher_dlrn_namespace | default('centos9-master') }}/{{ watcher_dlrn_tag | default('current-podified') }}/delorean.repo.md5" + return_content: true + register: latest_dlrn_tag + until: latest_dlrn_tag.status == 200 + retries: 6 + delay: 5 + - name: Install Watcher Operator + vars: + _tag: "{{ latest_dlrn_tag.content | default('current-podified') }}" + _registry_url: "{{ content_provider_os_registry_url | default('quay.io/podified-master-centos9') }}" cifmw.general.ci_script: output_dir: "{{ cifmw_basedir }}/artifacts" chdir: "{{ ansible_user_dir }}/src/github.com/openstack-k8s-operators/watcher-operator" script: make watcher extra_args: CATALOG_IMAGE: "{{ watcher_catalog_image | default('quay.io/openstack-k8s-operators/watcher-operator-index:latest') }}" + WATCHER_API_IMAGE_URL_DEFAULT: "{{ content_provider_os_registry_url }}/openstack-watcher-api:{{ _tag }}" + WATCHER_DECISION_ENGINE_IMAGE_URL_DEFAULT: "{{ content_provider_os_registry_url }}/openstack-watcher-decision-engine:{{ _tag }}" + WATCHER_APPLIER_IMAGE_URL_DEFAULT: "{{ content_provider_os_registry_url }}/openstack-watcher-applier:{{ _tag }}" - name: Deploy Watcher service when: deploy_watcher_service | default('true') | bool