Modify RGW client format
With changes to config_template module that restored usage of {% raw %} tags [1] renderring of mapping keys, if they're defined as variables, was broken. Ansible, by design [2], does not render mapping keys. Moreover, it was not working as intended anyway, since renderring happened in post-copy stage so same records were not merged together, which resulted in #1812245 As such behaviour is expected by Ansible design, instead of adding some workaround in config_template module, I suggest working around issue by defining troublesome mapping with Jinja, that will allow it to render properly. [1] https://review.opendev.org/c/openstack/ansible-config_template/+/881887 [2] https://github.com/ansible/ansible/issues/17324#issuecomment-685102595 Closes-Bug: #2048036 Related-Bug: #1812245 Change-Id: I8a32736239c6326d817c620451799c13d5d8938c
This commit is contained in:
parent
b9d3c6b47e
commit
4203aa26c6
@ -1,19 +1,23 @@
|
||||
---
|
||||
ceph_conf_overrides_rgw:
|
||||
"client.rgw.{{ hostvars[inventory_hostname]['ansible_facts']['hostname'] }}.rgw0":
|
||||
# OpenStack integration with Keystone
|
||||
rgw_keystone_url: "{{ keystone_service_adminuri }}"
|
||||
rgw_keystone_api_version: 3
|
||||
rgw_keystone_admin_user: "{{ radosgw_admin_user }}"
|
||||
rgw_keystone_admin_password: "{{ radosgw_admin_password }}"
|
||||
rgw_keystone_admin_project: "{{ radosgw_admin_tenant }}"
|
||||
rgw_keystone_admin_domain: default
|
||||
rgw_keystone_accepted_roles: 'member, admin, swiftoperator'
|
||||
rgw_keystone_implicit_tenants: 'true'
|
||||
rgw_swift_account_in_url: 'true'
|
||||
rgw_swift_versioning_enabled: 'true'
|
||||
rgw_enable_apis: 'swift, s3'
|
||||
rgw_s3_auth_use_keystone: 'true'
|
||||
ceph_conf_overrides_rgw: |-
|
||||
{{
|
||||
{
|
||||
'client.rgw.' ~ hostvars[inventory_hostname]['ansible_facts']['hostname'] ~ '.rgw0': {
|
||||
'rgw_keystone_url': keystone_service_adminuri,
|
||||
'rgw_keystone_api_version': 3,
|
||||
'rgw_keystone_admin_user': radosgw_admin_user,
|
||||
'rgw_keystone_admin_password': radosgw_admin_password,
|
||||
'rgw_keystone_admin_project': radosgw_admin_tenant,
|
||||
'rgw_keystone_admin_domain': 'default',
|
||||
'rgw_keystone_accepted_roles': 'member, admin, swiftoperator',
|
||||
'rgw_keystone_implicit_tenants': 'true',
|
||||
'rgw_swift_account_in_url': 'true',
|
||||
'rgw_swift_versioning_enabled': 'true',
|
||||
'rgw_enable_apis': 'swift, s3',
|
||||
'rgw_s3_auth_use_keystone': 'true'
|
||||
}
|
||||
}
|
||||
}}
|
||||
|
||||
###
|
||||
### Backend TLS
|
||||
|
@ -0,0 +1,34 @@
|
||||
---
|
||||
|
||||
issues:
|
||||
- |
|
||||
With recent changes to config_template module, it is not possible
|
||||
anymore to have variables as dictionary keys in overrides. Example below
|
||||
will not be renderred properly:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
config_overrides:
|
||||
"{{ inventory_hostname }}":
|
||||
cruel: world
|
||||
|
||||
This limitation boils down to Ansible design and will be true for any other
|
||||
module as well.
|
||||
In order to overcome it, you can transform the dictionary to a Jinja2 format:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
config_overrides: |-
|
||||
{{
|
||||
{
|
||||
inventory_hostname: {
|
||||
'cruel': 'world'
|
||||
}
|
||||
}
|
||||
}}
|
||||
|
||||
fixes:
|
||||
- |
|
||||
Fixes format of ``ceph_conf_overrides_rgw`` variable by converting override
|
||||
dictionary to Jinja2 format to workaround Ansible limitation on usage of
|
||||
variables as keys in dictionary.
|
Loading…
Reference in New Issue
Block a user