radosgw_frontend_port should be a number

cephadm, when rgw is deployed via [1], requires that the frontend_port
in the spec dict is an int and not a string.
[2] shows a string is produced, and this patch just adds some logic at
tht level to manipulate the input, casting it to int.
The ansible option 'ANSIBLE_JINJA2_NATIVE=True' [3] is supposed to be
able to enable this feature at tripleo-ansible level, but it's a
constraint we wouldn't like to introduce.

[1] https://review.opendev.org/c/openstack/tripleo-ansible/+/783305
[2] https://github.com/openstack/tripleo-heat-templates/blob/master/network/endpoints/endpoint_map.yaml#L64
[3] https://docs.ansible.com/ansible/latest/reference_appendices/config.html#envvar-ANSIBLE_JINJA2_NATIVE

Change-Id: I34f34bc3b263cf0df319ae6f175c7fc414528559
This commit is contained in:
Francesco Pantano 2021-03-31 11:26:54 +02:00
parent 91ae3c4ec6
commit d04e7b8ccf
No known key found for this signature in database
GPG Key ID: 0458D4D1F41BD75C
1 changed files with 5 additions and 1 deletions

View File

@ -83,7 +83,11 @@ resources:
list_join:
- ','
- get_param: [ServiceData, net_cidr_map, {get_param: [ServiceNetMap, CephRgwNetwork]}]
radosgw_frontend_port: {get_param: [EndpointMap, CephRgwInternal, port]}
radosgw_frontend_port:
yaql:
data: {get_param: [EndpointMap, CephRgwInternal]}
expression: int($.data.port)
CephRgwConfigOverrides:
type: OS::Heat::Value