osism / issues

This repository is used for bug reports that are cross-project or not bound to a specific repository (or to an unknown repository).
https://www.osism.tech
1 stars 1 forks source link

Nova Configuration is failing, if cinderbackend Ceph is not configured globaly #292

Closed chschilling closed 2 years ago

chschilling commented 2 years ago

In our environment, we have separate cinder-volumeconfigurations on Compute and on Controlnodes, as we use cinder-volume on compute for local nvme storage and on control for clusterwide rbd storage.

As the cindertemplate is not that granular in kolla, we splitted up two hostgroups.

Controllers have cinder_ceph_enabled=true, Computes don't. As this has, as far as we tested 'till now, has no negative impact, nova-cell playbook is failing on external_cephyaml on compute nodes because the task Check cinder keyring file is not executed.

Reason is the when condition: when:

https://github.com/openstack/kolla-ansible/blob/master/ansible/roles/nova-cell/tasks/external_ceph.yml

In my opinion, there are two ways to get this fixxed:

First option would be, check for file existance and adding an or condition to the cinderbackendcondition like:

when:

Second option would be to make the template more granular and add a different condition to the volumeparts like:

{% if (cinder_backend_ceph | bool) and (ansible_fqdn in groups['rbd-storage']) %} [rbd-1] volume_driver = cinder.volume.drivers.rbd.RBDDriver volume_backend_name = rbd-1 rbd_pool = {{ ceph_cinder_pool_name }} rbd_ceph_conf = /etc/ceph/ceph.conf rbd_flatten_volume_from_snapshot = false rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 rados_connect_timeout = 5 rbd_user = {{ ceph_cinder_user }} rbd_secret_uuid = {{ cinder_rbd_secret_uuid }} report_discard_supported = True image_upload_use_cinder_backend = True {% endif %}

Overlay is not working in that case, as you can't "delete" a section in the template if condition is not met.

Would be nice if there is a way to get that fixxed quickly

Greetings,

Christian

berendt commented 2 years ago

Have a look at it early next week.

berendt commented 2 years ago

Let's try it this way: https://review.opendev.org/c/openstack/kolla-ansible/+/856239

If that is accepted, I will make a backport of it to Yoga + Xena.

chschilling commented 2 years ago

Looks like a working solution for me, let's see what kolla is doing with that

berendt commented 2 years ago

We won't get it upstream before the next SCS release. We will put that in as a temporary patch for now. I'll take care of it tomorrow morning. It may be that we will have to adapt and change this again in the future.

berendt commented 2 years ago

I think it is enough to have an external_ceph_always_copy_cinder_keyring parameter. This way we can make the Cinder keyring available without setting cinder_backend_ceph.

berendt commented 2 years ago

@DeadRabb1t Merged. Backport is now available in the kolla-ansible:yoga image. Can you please test if it works for you and it is sufficient?

chschilling commented 2 years ago

Hey @berendt , will do so and keep you updated

chschilling commented 2 years ago

@berendt Tested and is working in our case. Thx for backporting

berendt commented 2 years ago

Ok. Then I'll close this.