Skip to content

Commit

Permalink
Test opendev watcher master content in CI job
Browse files Browse the repository at this point in the history
In order to test opendev watcher master content in CI job,
this pr adds following things:

* opendev-master-watcher-operator-pipeline project template
  which will run meta content provider from master and then
  Deploy EDPM job watcher-operator-validation-master from master content.
  It will help to test any opendev watcher patches with master edpm  job.

* It changes the existing job watcher-operator-validation (still deploying
  the antelope content) with update_containers: false to avoid using meta
  content provider containers. This change will help to test master content
  with antelope job as
  in downstream, we are going to backport lots of watcher master patches
  downstream. It will help to avoid breakage in advance.

* It also updates the existing watcher-operator-validation and
  watcher-operator-kuttl job to use
  openstack-meta-content-provider-master as a job dependencies.

Depends-On: https://review.opendev.org/c/openstack/watcher/+/938893
Depends-On: openstack-k8s-operators/ci-framework#2675

Related-Jira: https://issues.redhat.com/browse/OSPRH-11948

Signed-off-by: Chandan Kumar (raukadah) <raukadah@gmail.com>
  • Loading branch information
raukadah committed Jan 24, 2025
1 parent b5aebb6 commit 8c10862
Show file tree
Hide file tree
Showing 4 changed files with 101 additions and 7 deletions.
72 changes: 68 additions & 4 deletions .zuul.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -72,9 +72,19 @@
# 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.
Expand All @@ -93,6 +103,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
Expand All @@ -103,3 +118,52 @@
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:
debug: true
jobs:
- openstack-meta-content-provider-master
- watcher-operator-validation-master
12 changes: 9 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
8 changes: 8 additions & 0 deletions ci/olm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
16 changes: 16 additions & 0 deletions ci/playbooks/deploy_watcher_service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 8c10862

Please sign in to comment.