Skip to content

Commit aa2e23b

Browse files
committed
[WIP] Enable Ceph as cinder backend
Deploy an HCI configuration using cifmw and use it as backend for cinder. This is needed to test volume migrations and depending on the result we might enable it in all jobs or only in some. Depends-On: https://review.opendev.org/c/openstack/watcher-tempest-plugin/+/954625 Depends-On: openstack-k8s-operators/ci-framework#3269 Depends-On: openstack-k8s-operators/ci-framework#3270
1 parent cf65968 commit aa2e23b

File tree

3 files changed

+148
-5
lines changed

3 files changed

+148
-5
lines changed

.zuul.yaml

Lines changed: 91 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
merge-mode: rebase
66
templates:
77
- opendev-master-watcher-operator-pipeline
8-
- opendev-epoxy-watcher-operator-pipeline
8+
# DNM jgilaber temporarily restrict jobs to the one that is testing the
9+
# changes to avoid wasting resources
10+
# - opendev-epoxy-watcher-operator-pipeline
911
github-check:
1012
jobs:
1113
- noop
12-
- watcher-operator-doc-preview
13-
- watcher-operator-kuttl
14+
# - watcher-operator-doc-preview
15+
# - watcher-operator-kuttl
1416

1517
- job:
1618
name: watcher-operator-base
@@ -229,8 +231,23 @@
229231
voting: false
230232
description: |
231233
A Zuul job consuming content from openstack-meta-content-provider-master
232-
and deploying EDPM with master content.
234+
and deploying EDPM with master content and ceph storage backend.
233235
vars:
236+
cifmw_extras:
237+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].
238+
src_dir }}/scenarios/centos-9/multinode-ci.yml"
239+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].
240+
src_dir }}/scenarios/centos-9/horizon.yml"
241+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].
242+
src_dir }}/scenarios/centos-9/hci_ceph_backends.yml"
243+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/watcher-operator'].
244+
src_dir }}/ci/scenarios/edpm.yml"
245+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/watcher-operator'].
246+
src_dir }}/ci/tests/watcher-tempest.yml"
247+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/watcher-operator'].
248+
src_dir }}/ci/tests/watcher-tempest-ceph.yml"
249+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/watcher-operator'].
250+
src_dir }}/ci/scenarios/ceph.yml"
234251
cifmw_repo_setup_branch: master
235252
# To consume containers from meta content provider
236253
cifmw_update_containers_openstack: true
@@ -240,12 +257,81 @@
240257
watcher_services_tag: watcher_latest
241258
watcher_registry_url: "{{ content_provider_os_registry_url }}"
242259
cifmw_test_operator_tempest_image_tag: watcher_latest
243-
244260
extra-vars:
245261
# Override zuul meta content provider provided content_provider_dlrn_md5_hash
246262
# var. As returned dlrn md5 hash comes from master release but job is using
247263
# antelope content.
248264
content_provider_dlrn_md5_hash: ''
265+
# jgilaber: add storage-mgmt network to nodes for ceph
266+
crc_ci_bootstrap_cloud_name: "{{ nodepool.cloud | replace('-nodepool-tripleo','') }}"
267+
crc_ci_bootstrap_networking:
268+
networks:
269+
default:
270+
mtu: "{{ ('ibm' in nodepool.cloud) | ternary('1440', '1500') }}"
271+
router_net: ""
272+
transparent: true
273+
range: 192.168.122.0/24
274+
internal-api:
275+
vlan: 20
276+
range: 172.17.0.0/24
277+
storage:
278+
vlan: 21
279+
range: 172.18.0.0/24
280+
tenant:
281+
vlan: 22
282+
range: 172.19.0.0/24
283+
storage-mgmt:
284+
vlan: 23
285+
range: 172.20.0.0/24
286+
instances:
287+
controller:
288+
networks:
289+
default:
290+
ip: 192.168.122.11
291+
crc:
292+
networks:
293+
default:
294+
ip: 192.168.122.10
295+
internal-api:
296+
ip: 172.17.0.5
297+
storage:
298+
ip: 172.18.0.5
299+
tenant:
300+
ip: 172.19.0.5
301+
storage-mgmt:
302+
ip: 172.20.0.5
303+
compute-0:
304+
networks:
305+
default:
306+
ip: 192.168.122.100
307+
internal-api:
308+
ip: 172.17.0.100
309+
config_nm: false
310+
storage:
311+
ip: 172.18.0.100
312+
config_nm: false
313+
tenant:
314+
ip: 172.19.0.100
315+
config_nm: false
316+
storage-mgmt:
317+
ip: 172.20.0.100
318+
config_nm: false
319+
compute-1:
320+
networks:
321+
default:
322+
ip: 192.168.122.101
323+
internal-api:
324+
ip: 172.17.0.101
325+
config_nm: false
326+
storage:
327+
ip: 172.18.0.101
328+
config_nm: false
329+
tenant:
330+
ip: 172.19.0.101
331+
config_nm: false
332+
storage-mgmt:
333+
ip: 172.20.0.101
334+
config_nm: false
249335

250336
##########################################################
251337
# #

ci/scenarios/ceph.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
cifmw_edpm_deploy_hci: true
3+
cifmw_ceph_daemons_layout:
4+
rgw_enabled: true
5+
dashboard_enabled: true
6+
cephfs_enabled: true
7+
ceph_nfs_enabled: true
8+
# Override the Ceph container tag and deploy Squid
9+
cifmw_cephadm_container_tag: "v19"
10+
# Override the Ceph Tools repo and install cephadm Squid
11+
cifmw_cephadm_repository_override: true
12+
cifmw_cephadm_version: "squid"
13+
cifmw_cephadm_prepare_host: true
14+
cifmw_services_manila_enabled: false
15+
cifmw_hci_prepare_extra_services:
16+
- telemetry
17+
18+
# NOTE(jgilaber): we might want to merge this file into scenarios/edpm.yml,
19+
# # depending on how many jobs will have cinder volumes enabled
20+
ci_framework_base_src_dir: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].src_dir }}"
21+
install_yamls_src_dir: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/install_yamls'].src_dir }}"
22+
post_deploy:
23+
- name: Download needed tools
24+
type: playbook
25+
inventory: "{{ install_yamls_src_dir }}/devsetup/hosts"
26+
source: "{{ install_yamls_src_dir }}/devsetup/download_tools.yaml"
27+
- name: Patch Openstack Prometheus to enable admin API
28+
type: playbook
29+
source: "{{ prometheus_admin_api_hook }}"
30+
- name: 81 Kustomize OpenStack CR with Ceph
31+
type: playbook
32+
source: "{{ ci_framework_base_src_dir }}/hooks/playbooks/control_plane_ceph_backends.yml"
33+
- name: 82 Kustomize and update Control Plane
34+
type: playbook
35+
source: "{{ ci_framework_base_src_dir }}/hooks/playbooks/control_plane_kustomize_deploy.yml"
36+
37+
# jgilaber: override hook defined in ci-framework that we don't need
38+
pre_tests: []

ci/tests/watcher-tempest-ceph.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# get the tempest configuration from watcher-waster.yml, with the exception of
2+
# not skipping volume_migration tests
3+
cifmw_test_operator_tempest_exclude_list: |
4+
watcher_tempest_plugin.*client_functional.*
5+
watcher_tempest_plugin.tests.scenario.test_execute_strategies.TestExecuteStrategies.test_execute_storage_capacity_balance_strategy
6+
watcher_tempest_plugin.*\[.*\breal_load\b.*\].*
7+
8+
# jgilaber: because of how its implemented cifmw_test_operator_tempest_tempestconf_config
9+
# takes precedence over cifmw_tempest_tempestconf
10+
# https://github.com/openstack-k8s-operators/ci-framework/blob/3c126ed07810244e4700e0030db1def684056fd0/roles/test_operator/defaults/main.yml#L166
11+
# and we need to override the value defined in ci-framework/scenarios/centos-9/hci_ceph_backends.yml
12+
# https://github.com/openstack-k8s-operators/ci-framework/blob/3c126ed07810244e4700e0030db1def684056fd0/scenarios/centos-9/hci_ceph_backends.yml#L43
13+
cifmw_test_operator_tempest_tempestconf_config:
14+
overrides: |
15+
{{ cifmw_tempest_tempestconf_config.overrides }}
16+
identity.v3_endpoint_type public
17+
share.run_share_group_tests false
18+
share.capability_storage_protocol cephfs
19+
share.suppress_errors_in_cleanup true

0 commit comments

Comments
 (0)