From 4f789a8efa50163a753d5446917094d1a5aa2072 Mon Sep 17 00:00:00 2001 From: "Chandan Kumar (raukadah)" Date: Tue, 21 Jan 2025 16:12:45 +0530 Subject: [PATCH] Run minimal watcher tempest api test Thanks to watcher api service and tls integration, we are now able to run watcher_tempest_plugin.tests.api.admin.test_api_discovery.TestApiDiscovery[1] test in EDPM CI. It will act as a base for keep existing watcher integration healthy. Links: [1]. https://github.com/openstack-k8s-operators/watcher-operator/pull/47#issuecomment-2607474033 Signed-off-by: Chandan Kumar (raukadah) --- .zuul.yaml | 78 ++++++++++++++++++++++-- Makefile | 12 +++- ci/olm.sh | 8 +++ ci/playbooks/deploy_watcher_service.yaml | 16 +++++ 4 files changed, 107 insertions(+), 7 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 1c59d6d..d95d7d9 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. @@ -40,9 +40,24 @@ A zuul job to validate the watcher operator and its service deployment. 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 + 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: '' - 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. @@ -61,6 +76,11 @@ 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: '' - job: name: watcher-operator-doc-preview @@ -71,3 +91,53 @@ 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-validation + override-checkout: main + description: | + A Zuul job consuming content from openstack-meta-content-provider-master + and deploying EDPM with master content. + dependencies: ["openstack-meta-content-provider-master"] + 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: + 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..eff770c 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