Skip to content

Commit eaf82ee

Browse files
morenodopenshift-merge-bot[bot]
authored andcommitted
Modify CI jobs to include application credentials installations
Modified CI Jobs watcher-operator-validation-master: Now tests Application Credentials Documentation Added new Continuous Integration section to README.md referencing detailed CI documentation. Created ci/README.md with a comprehensive matrix table showing all CI jobs and their configurations (OpenStack version, OCP version, notifications, Application Credentials, NFS backend). Coverage Strategy This approach ensures we test all critical combinations with minimal job overhead: Master OpenStack: Tested with AC and notifications enabled Epoxy OpenStack: Tested without AC and notifications Different OCP versions: Covered through the epoxy-ocp4-16 job Kuttl tests: Already include AC rotation testing Assisted-By: claude Signed-off-by: morenod <dsanzmor@redhat.com>
1 parent 539263f commit eaf82ee

4 files changed

Lines changed: 82 additions & 14 deletions

File tree

.zuul.yaml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@
169169
openstack watcher services containers from meta content provider.
170170
It will test current-podified control plane EDPM deployment with openstack watcher
171171
master content. It deploys watcher using TLSe, and creates the certificates to use.
172-
Neither Nova nor Cinder notifications are not enabled on this job.
172+
No dedicated RabbitMQ notifications broker is enabled on this job.
173173
extra-vars:
174174
# Override zuul meta content provider provided content_provider_dlrn_md5_hash
175175
# var. As returned dlrn md5 hash comes from master release but job is using
@@ -204,7 +204,8 @@
204204
name: watcher-operator-validation-epoxy-ocp4-16
205205
parent: watcher-operator-validation-epoxy
206206
description: |
207-
watcher-operator-validation qualification with OCP 4.16
207+
watcher-operator-validation qualification with OCP 4.16.
208+
No dedicated RabbitMQ notifications broker is enabled on this job.
208209
nodeset: centos-9-medium-2x-centos-9-crc-extracted-2-39-0-3xl-vexxhost
209210

210211
##########################################################
@@ -248,8 +249,11 @@
248249
parent: watcher-operator-validation-base
249250
description: |
250251
A Zuul job consuming content from openstack-meta-content-provider-master
251-
and deploying EDPM with master content. It configures an NFS server in a
252-
compute node as storage backend for cinder.
252+
and deploying EDPM with master content.
253+
Dedicated RabbitMQ notifications broker is enabled on this job. This job validates
254+
Watcher deployment with Application Credentials authentication.
255+
It configures an NFS server in a compute node as storage backend for cinder.
256+
253257
vars:
254258
cifmw_repo_setup_branch: master
255259
# To consume containers from meta content provider

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,14 @@ Users can just run kubectl apply -f <URL for YAML BUNDLE> to install the project
128128
kubectl apply -f https://raw.githubusercontent.com/<org>/watcher-operator/<tag or branch>/dist/install.yaml
129129
```
130130

131+
## Continuous Integration
132+
133+
This project uses Zuul CI for testing and validation. The CI pipeline includes multiple jobs that test different combinations of OpenStack and Openshift versions, with different configurations.
134+
135+
For a detailed list of all CI jobs and their configuration matrix, please refer to [CI README.md](ci/README.md).
136+
137+
[Prow](https://prow.ci.openshift.org/?repo=openstack-k8s-operators%2Fwatcher-operator) is also used to execute operator functional and pre-commit tests
138+
131139
## Contributing
132140
// TODO(user): Add detailed information on how you would like others to contribute to this project
133141

ci/README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Continuous Integration
2+
3+
This document describes the CI jobs used to test and validate the watcher-operator.
4+
5+
## CI Jobs Matrix
6+
7+
The following table shows the different CI jobs and their configuration:
8+
9+
| Job Name | OpenStack Version | OCP Version | Notifications | App Credentials | NFS Backend |
10+
|----------|-------------------|-------------|---------------|-----------------|-------------|
11+
| `watcher-operator-validation-master` | master | 4.18 | ✅ Yes | ✅ Yes | ✅ Yes |
12+
| `watcher-operator-validation-epoxy` | antelope (all) - epoxy (watcher) | 4.18 | ❌ No | ❌ No | ❌ No |
13+
| `watcher-operator-validation-epoxy-ocp4-16` | antelope (all) - epoxy (watcher) | 4.16 | ❌ No | ❌ No | ❌ No |
14+
| `watcher-operator-kuttl` | master | 4.18 | N/A (unit tests) | ❌ No | ❌ No |
15+
| `periodic-watcher-operator-validation-master` | master | 4.18 | ✅ Yes | ✅ Yes | ❌ No |
16+
17+
## Job Descriptions
18+
19+
### watcher-operator-kuttl
20+
Runs kuttl tests for the operator, including Application Credentials rotation tests. This job does not deploy a full EDPM environment.
21+
22+
### watcher-operator-validation-master
23+
Validates watcher-operator with master OpenStack content on OCP 4.18. Uses Application Credentials for authentication. Configures notifications over a dedicated RabbitMQ instance. Includes NFS backend for Cinder.
24+
25+
### watcher-operator-validation-epoxy
26+
Validates watcher-operator with epoxy OpenStack release. Does not enable notifications dedicated RabbitMQ instance or Application Credentials.
27+
28+
### watcher-operator-validation-epoxy-ocp4-16
29+
Qualification job for epoxy release on OCP 4.16. Does not enable notifications or Application Credentials.
30+
31+
### periodic-watcher-operator-validation-master
32+
Periodic job that runs in the RDO master promotion pipeline with same configuration than watcher-operator-validation-master
33+
34+
## Scenarios
35+
36+
CI scenarios are defined in `ci/scenarios/` directory:
37+
38+
- **edpm.yml**: Base scenario with notifications enabled
39+
- **edpm-no-notifications.yml**: Scenario without notificationss, with reduced model collection period (60s)
40+
- **kuttl.yml**: Scenario for kuttl unit tests
41+
- **nfs.yml**: Additional configuration for NFS backend
42+
43+
## Adding New Jobs
44+
45+
When adding new CI jobs, follow the following patterns:
46+
1. Create a complete scenario file in `ci/scenarios/` with all necessary configuration
47+
2. Define the job in `.zuul.yaml` inheriting from the appropriate base job
48+
3. Add the job to the relevant project template
49+
4. Update this README with the new job details

ci/scenarios/edpm.yml

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,13 @@ cifmw_edpm_prepare_kustomizations:
5252
retention: 24h
5353
target:
5454
kind: OpenStackControlPlane
55+
5556
- patch: |-
5657
- op: remove
5758
path: /spec/telemetry/template/metricStorage/monitoringStack
5859
target:
5960
kind: OpenStackControlPlane
61+
6062
- patch: |-
6163
apiVersion: core.openstack.org/v1beta1
6264
kind: OpenStackControlPlane
@@ -67,6 +69,7 @@ cifmw_edpm_prepare_kustomizations:
6769
cluster: notifications-rabbitmq
6870
target:
6971
kind: OpenStackControlPlane
72+
7073
- patch: |-
7174
apiVersion: core.openstack.org/v1beta1
7275
kind: OpenStackControlPlane
@@ -93,6 +96,8 @@ cifmw_edpm_prepare_kustomizations:
9396
metadata:
9497
name: controlplane
9598
spec:
99+
applicationCredential:
100+
enabled: true
96101
messagingBus:
97102
cluster: rabbitmq
98103
vhost: messaging-vhost
@@ -108,16 +113,15 @@ cifmw_edpm_prepare_kustomizations:
108113
metadata:
109114
name: controlplane
110115
spec:
111-
watcher:
112-
enabled: true
116+
cinder:
113117
template:
114118
messagingBus:
115119
cluster: rabbitmq
116-
user: messaging-watcher-user
120+
user: messaging-cinder-user
117121
vhost: messaging-vhost
118122
notificationsBus:
119123
cluster: notifications-rabbitmq
120-
user: notifications-watcher-user
124+
user: notifications-cinder-user
121125
vhost: notifications-vhost
122126
target:
123127
kind: OpenStackControlPlane
@@ -128,15 +132,15 @@ cifmw_edpm_prepare_kustomizations:
128132
metadata:
129133
name: controlplane
130134
spec:
131-
cinder:
135+
nova:
132136
template:
133137
messagingBus:
134138
cluster: rabbitmq
135-
user: messaging-cinder-user
139+
user: messaging-nova-user
136140
vhost: messaging-vhost
137141
notificationsBus:
138142
cluster: notifications-rabbitmq
139-
user: notifications-cinder-user
143+
user: notifications-nova-user
140144
vhost: notifications-vhost
141145
target:
142146
kind: OpenStackControlPlane
@@ -147,15 +151,18 @@ cifmw_edpm_prepare_kustomizations:
147151
metadata:
148152
name: controlplane
149153
spec:
150-
nova:
154+
watcher:
155+
enabled: true
156+
applicationCredential:
157+
enabled: true
151158
template:
152159
messagingBus:
153160
cluster: rabbitmq
154-
user: messaging-nova-user
161+
user: messaging-watcher-user
155162
vhost: messaging-vhost
156163
notificationsBus:
157164
cluster: notifications-rabbitmq
158-
user: notifications-nova-user
165+
user: notifications-watcher-user
159166
vhost: notifications-vhost
160167
target:
161168
kind: OpenStackControlPlane

0 commit comments

Comments
 (0)