Skip to content

Commit 45df154

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#3325
1 parent 1fa8d2b commit 45df154

File tree

3 files changed

+149
-5
lines changed

3 files changed

+149
-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
@@ -233,8 +235,23 @@
233235
voting: false
234236
description: |
235237
A Zuul job consuming content from openstack-meta-content-provider-master
236-
and deploying EDPM with master content.
238+
and deploying EDPM with master content and ceph storage backend.
237239
vars:
240+
cifmw_extras:
241+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].
242+
src_dir }}/scenarios/centos-9/multinode-ci.yml"
243+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].
244+
src_dir }}/scenarios/centos-9/horizon.yml"
245+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].
246+
src_dir }}/scenarios/centos-9/hci_ceph_backends.yml"
247+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/watcher-operator'].
248+
src_dir }}/ci/scenarios/edpm.yml"
249+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/watcher-operator'].
250+
src_dir }}/ci/tests/watcher-tempest.yml"
251+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/watcher-operator'].
252+
src_dir }}/ci/tests/watcher-tempest-ceph.yml"
253+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/watcher-operator'].
254+
src_dir }}/ci/scenarios/ceph.yml"
238255
cifmw_repo_setup_branch: master
239256
# To consume containers from meta content provider
240257
cifmw_update_containers_openstack: true
@@ -244,12 +261,81 @@
244261
watcher_services_tag: watcher_latest
245262
watcher_registry_url: "{{ content_provider_os_registry_url }}"
246263
cifmw_test_operator_tempest_image_tag: watcher_latest
247-
248264
extra-vars:
249265
# Override zuul meta content provider provided content_provider_dlrn_md5_hash
250266
# var. As returned dlrn md5 hash comes from master release but job is using
251267
# antelope content.
252268
content_provider_dlrn_md5_hash: ''
269+
# jgilaber: add storage-mgmt network to nodes for ceph
270+
crc_ci_bootstrap_cloud_name: "{{ nodepool.cloud | replace('-nodepool-tripleo','') }}"
271+
crc_ci_bootstrap_networking:
272+
networks:
273+
default:
274+
mtu: "{{ ('ibm' in nodepool.cloud) | ternary('1440', '1500') }}"
275+
router_net: ""
276+
transparent: true
277+
range: 192.168.122.0/24
278+
internal-api:
279+
vlan: 20
280+
range: 172.17.0.0/24
281+
storage:
282+
vlan: 21
283+
range: 172.18.0.0/24
284+
tenant:
285+
vlan: 22
286+
range: 172.19.0.0/24
287+
storage-mgmt:
288+
vlan: 23
289+
range: 172.20.0.0/24
290+
instances:
291+
controller:
292+
networks:
293+
default:
294+
ip: 192.168.122.11
295+
crc:
296+
networks:
297+
default:
298+
ip: 192.168.122.10
299+
internal-api:
300+
ip: 172.17.0.5
301+
storage:
302+
ip: 172.18.0.5
303+
tenant:
304+
ip: 172.19.0.5
305+
storage-mgmt:
306+
ip: 172.20.0.5
307+
compute-0:
308+
networks:
309+
default:
310+
ip: 192.168.122.100
311+
internal-api:
312+
ip: 172.17.0.100
313+
config_nm: false
314+
storage:
315+
ip: 172.18.0.100
316+
config_nm: false
317+
tenant:
318+
ip: 172.19.0.100
319+
config_nm: false
320+
storage-mgmt:
321+
ip: 172.20.0.100
322+
config_nm: false
323+
compute-1:
324+
networks:
325+
default:
326+
ip: 192.168.122.101
327+
internal-api:
328+
ip: 172.17.0.101
329+
config_nm: false
330+
storage:
331+
ip: 172.18.0.101
332+
config_nm: false
333+
tenant:
334+
ip: 172.19.0.101
335+
config_nm: false
336+
storage-mgmt:
337+
ip: 172.20.0.101
338+
config_nm: false
253339

254340
##########################################################
255341
# #

ci/scenarios/ceph.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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+
cifmw_hci_second_backend: true
18+
19+
# NOTE(jgilaber): we might want to merge this file into scenarios/edpm.yml,
20+
# # depending on how many jobs will have cinder volumes enabled
21+
ci_framework_base_src_dir: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].src_dir }}"
22+
install_yamls_src_dir: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/install_yamls'].src_dir }}"
23+
post_deploy:
24+
- name: Download needed tools
25+
type: playbook
26+
inventory: "{{ install_yamls_src_dir }}/devsetup/hosts"
27+
source: "{{ install_yamls_src_dir }}/devsetup/download_tools.yaml"
28+
- name: Patch Openstack Prometheus to enable admin API
29+
type: playbook
30+
source: "{{ prometheus_admin_api_hook }}"
31+
- name: 81 Kustomize OpenStack CR with Ceph
32+
type: playbook
33+
source: "{{ ci_framework_base_src_dir }}/hooks/playbooks/control_plane_ceph_backends.yml"
34+
- name: 82 Kustomize and update Control Plane
35+
type: playbook
36+
source: "{{ ci_framework_base_src_dir }}/hooks/playbooks/control_plane_kustomize_deploy.yml"
37+
38+
# jgilaber: override hook defined in ci-framework that we don't need
39+
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)