diff options
| author | Kari Häkkinen <Kari.Hakkinen@admicom.com> | 2026-07-22 15:24:36 +0300 |
|---|---|---|
| committer | Kari Häkkinen <Kari.Hakkinen@admicom.com> | 2026-07-28 21:22:18 +0300 |
| commit | 001ceb044c654733fd4327fc98af9d3db95dbcd1 (patch) | |
| tree | 6123761185dc2b39a4c237f595963d5c9be7c811 | |
| parent | fff4bf1c195ba5f65bfc0a5394285ccfad374eed (diff) | |
| download | kolla-ansible-001ceb044c654733fd4327fc98af9d3db95dbcd1.tar.gz kolla-ansible-001ceb044c654733fd4327fc98af9d3db95dbcd1.zip | |
cinder: Define backend variables in group_vars/all
The iscsi role derives the cinder-volume/backup inventory groups from
cinder_enabled_backends, but that variable (along with cinder_backends,
cinder_ceph_backends and the cinder_backend_*_name variables) was only
defined in the cinder role defaults. The iscsi play runs before the
cinder play, so the variable is out of scope there and prechecks (and
deploy/reconfigure) fail with:
'cinder_enabled_backends' is undefined
when a Cinder iSCSI/LVM backend is enabled.
Move these backend variable definitions to group_vars/all/cinder.yml so
they are in scope for every play, including the iscsi role. This also
keeps all cinder backend definitions - including the cinder-backup ceph
backend (cinder_backup_backend_ceph_name, cinder_backup_ceph_backend) -
in one place. All of their dependencies (the enable_cinder_backend_*
flags, cinder_backend_ceph and the ceph_* variables) are already global,
and globals.yml is applied as extra-vars, so operator overrides continue
to take precedence.
Partial-Bug: #2158120
Change-Id: I765f45814382377332ba9f01f1bc52bd4e046170
Signed-off-by: Kari Häkkinen <Kari.Hakkinen@admicom.com>
(cherry picked from commit 2df2ee6e49d0fd58b1781c0b490b019e1936e96b)
| -rw-r--r-- | ansible/group_vars/all/cinder.yml | 57 | ||||
| -rw-r--r-- | ansible/roles/cinder/defaults/main.yml | 55 | ||||
| -rw-r--r-- | releasenotes/notes/fix-iscsi-cinder-enabled-backends-f482e5454dc8fa87.yaml | 10 |
3 files changed, 72 insertions, 50 deletions
diff --git a/ansible/group_vars/all/cinder.yml b/ansible/group_vars/all/cinder.yml index 9418adcc9..a11b19dd8 100644 --- a/ansible/group_vars/all/cinder.yml +++ b/ansible/group_vars/all/cinder.yml @@ -12,6 +12,63 @@ enable_cinder_backend_pure_nvme_tcp: false enable_cinder_backend_lightbits: false ################################# +# Cinder backends +################################# +# NOTE: These are defined here (rather than in the cinder role defaults) so that +# they are in scope for other roles - notably iscsi, whose play runs before the +# cinder play and derives the cinder-volume/backup inventory groups from +# cinder_enabled_backends. +cinder_backend_ceph_name: "rbd-1" +cinder_backend_lvm_name: "lvm-1" +cinder_backend_nfs_name: "nfs-1" +cinder_backend_quobyte_name: "QuobyteHD" +cinder_backend_pure_iscsi_name: "Pure-FlashArray-iscsi" +cinder_backend_pure_fc_name: "Pure-FlashArray-fc" +cinder_backend_pure_roce_name: "Pure-FlashArray-roce" +cinder_backend_pure_nvme_tcp_name: "Pure-FlashArray-nvme-tcp" +cinder_backend_lightbits_name: "Lightbits-NVMe-TCP" + +cinder_backends: + - name: "{{ cinder_backend_lvm_name }}" + enabled: "{{ enable_cinder_backend_lvm | bool }}" + - name: "{{ cinder_backend_nfs_name }}" + enabled: "{{ enable_cinder_backend_nfs | bool }}" + - name: "{{ cinder_backend_quobyte_name }}" + enabled: "{{ enable_cinder_backend_quobyte | bool }}" + - name: "{{ cinder_backend_pure_iscsi_name }}" + enabled: "{{ enable_cinder_backend_pure_iscsi | bool }}" + - name: "{{ cinder_backend_pure_fc_name }}" + enabled: "{{ enable_cinder_backend_pure_fc | bool }}" + - name: "{{ cinder_backend_pure_roce_name }}" + enabled: "{{ enable_cinder_backend_pure_roce | bool }}" + - name: "{{ cinder_backend_pure_nvme_tcp_name }}" + enabled: "{{ enable_cinder_backend_pure_nvme_tcp | bool }}" + - name: "{{ cinder_backend_lightbits_name }}" + enabled: "{{ enable_cinder_backend_lightbits | bool }}" + +cinder_ceph_backends: + - name: "{{ cinder_backend_ceph_name }}" + backend_name: "{{ cinder_backend_ceph_name }}" + cluster: "{{ ceph_cluster }}" + user: "{{ ceph_cinder_user }}" + pool: "{{ ceph_cinder_pool_name }}" + enabled: "{{ cinder_backend_ceph | bool }}" + +cinder_backup_backend_ceph_name: "rbd-1" +cinder_backup_ceph_backend: >- + {{ + cinder_ceph_backends | + selectattr('name', 'equalto', cinder_backup_backend_ceph_name) | list | first | + combine({'pool': ceph_cinder_backup_pool_name, 'user': ceph_cinder_backup_user}) + }} + +cinder_enabled_backends: >- + {{ + cinder_backends | selectattr('enabled', 'equalto', true) | list + + cinder_ceph_backends | selectattr('enabled', 'equalto', true) | list + }} + +################################# # Cinder options ################################# cinder_backend_ceph: false diff --git a/ansible/roles/cinder/defaults/main.yml b/ansible/roles/cinder/defaults/main.yml index 37f7f7aab..c1f051c97 100644 --- a/ansible/roles/cinder/defaults/main.yml +++ b/ansible/roles/cinder/defaults/main.yml @@ -253,58 +253,13 @@ cinder_api_workers: "{{ openstack_service_workers }}" #################### # Cinder #################### -cinder_backends: - - name: "{{ cinder_backend_lvm_name }}" - enabled: "{{ enable_cinder_backend_lvm | bool }}" - - name: "{{ cinder_backend_nfs_name }}" - enabled: "{{ enable_cinder_backend_nfs | bool }}" - - name: "{{ cinder_backend_quobyte_name }}" - enabled: "{{ enable_cinder_backend_quobyte | bool }}" - - name: "{{ cinder_backend_pure_iscsi_name }}" - enabled: "{{ enable_cinder_backend_pure_iscsi | bool }}" - - name: "{{ cinder_backend_pure_fc_name }}" - enabled: "{{ enable_cinder_backend_pure_fc | bool }}" - - name: "{{ cinder_backend_pure_roce_name }}" - enabled: "{{ enable_cinder_backend_pure_roce | bool }}" - - name: "{{ cinder_backend_pure_nvme_tcp_name }}" - enabled: "{{ enable_cinder_backend_pure_nvme_tcp | bool }}" - - name: "{{ cinder_backend_lightbits_name }}" - enabled: "{{ enable_cinder_backend_lightbits | bool }}" - -cinder_backend_ceph_name: "rbd-1" -cinder_backend_lvm_name: "lvm-1" -cinder_backend_nfs_name: "nfs-1" -cinder_backend_quobyte_name: "QuobyteHD" -cinder_backend_pure_iscsi_name: "Pure-FlashArray-iscsi" -cinder_backend_pure_fc_name: "Pure-FlashArray-fc" -cinder_backend_pure_roce_name: "Pure-FlashArray-roce" -cinder_backend_pure_nvme_tcp_name: "Pure-FlashArray-nvme-tcp" -cinder_backend_lightbits_name: "Lightbits-NVMe-TCP" - -cinder_ceph_backends: - - name: "{{ cinder_backend_ceph_name }}" - backend_name: "{{ cinder_backend_ceph_name }}" - cluster: "{{ ceph_cluster }}" - user: "{{ ceph_cinder_user }}" - pool: "{{ ceph_cinder_pool_name }}" - enabled: "{{ cinder_backend_ceph | bool }}" - -cinder_backup_backend_ceph_name: "rbd-1" -cinder_backup_ceph_backend: >- - {{ - cinder_ceph_backends | - selectattr('name', 'equalto', cinder_backup_backend_ceph_name) | list | first | - combine({'pool': ceph_cinder_backup_pool_name, 'user': ceph_cinder_backup_user}) - }} - +# NOTE: the cinder backend definitions (cinder_backends, cinder_ceph_backends, +# cinder_enabled_backends, cinder_backup_backend_ceph_name, +# cinder_backup_ceph_backend and the cinder_backend_*_name variables) are +# defined in group_vars/all/cinder.yml so that all cinder backend definitions +# live in one place and are in scope for the iscsi role. skip_cinder_backend_check: false -cinder_enabled_backends: >- - {{ - cinder_backends | selectattr('enabled', 'equalto', true) | list - + cinder_ceph_backends | selectattr('enabled', 'equalto', true) | list - }} - #################### # Notification #################### diff --git a/releasenotes/notes/fix-iscsi-cinder-enabled-backends-f482e5454dc8fa87.yaml b/releasenotes/notes/fix-iscsi-cinder-enabled-backends-f482e5454dc8fa87.yaml new file mode 100644 index 000000000..3945ee4da --- /dev/null +++ b/releasenotes/notes/fix-iscsi-cinder-enabled-backends-f482e5454dc8fa87.yaml @@ -0,0 +1,10 @@ +--- +fixes: + - | + Fixes ``kolla-ansible prechecks`` (and deploy/reconfigure) failing with + ``'cinder_enabled_backends' is undefined`` in the ``iscsi`` role when a + Cinder iSCSI/LVM backend is enabled. The ``cinder_enabled_backends`` and + related backend variables are now defined in ``group_vars/all`` so that + they are in scope for the ``iscsi`` role, whose play runs before the + ``cinder`` play. `LP#2158120 + <https://bugs.launchpad.net/kolla-ansible/+bug/2158120>`__ |
