Allow overrides in non global ceph.conf sections

In current ceph-base version there is a CephConfigOverride
parameter which allows to override ceph.conf params in global
section only.

This change will permit overrides to specify the ceph.conf
section into which they apply, while retaining backward
compatiblity.

Also adds in scenarios 001 and 004 some test cases.

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: Icaba7a58f458d853912d038f24c0cb4f853e0166
Implements: blueprint ceph-config-overrides
(cherry picked from commit 2501f4747c)
This commit is contained in:
fpantano 2019-08-01 21:13:59 +02:00 committed by Francesco Pantano
parent 2e8972e1df
commit cf467ead1b
No known key found for this signature in database
GPG Key ID: 799868C47301D458
3 changed files with 46 additions and 18 deletions

View File

@ -123,3 +123,8 @@ parameter_defaults:
- tty5 - tty5
- tty6 - tty6
ContainerCli: podman ContainerCli: podman
CephConfigOverrides:
global:
globalkey: globalvalue
osd:
osdkey: osdvalue

View File

@ -99,3 +99,5 @@ parameter_defaults:
- tty6 - tty6
# Remove ContainerCli once this scenario is tested on CentOS8 # Remove ContainerCli once this scenario is tested on CentOS8
ContainerCli: docker ContainerCli: docker
CephConfigOverrides:
globalkey: globalvalue

View File

@ -235,6 +235,10 @@ conditions:
equals: equals:
- {get_param: CephAnsibleSkipTags} - {get_param: CephAnsibleSkipTags}
- '' - ''
ceph_config_overrides_with_sections:
yaql:
data: {get_param: CephConfigOverrides}
expression: $.data.keys().any(predicate => $ in ['global', 'mon', 'mgr', 'osd', 'mds', 'client'])
ceph_authenticated_registry: ceph_authenticated_registry:
and: and:
- not: - not:
@ -283,6 +287,29 @@ resources:
expression: $.data.rightSplit(':', 1)[1] expression: $.data.rightSplit(':', 1)[1]
data: {get_param: DockerCephDaemonImage} data: {get_param: DockerCephDaemonImage}
DefaultCephConfigOverrides:
type: OS::Heat::Value
properties:
type: json
value:
global:
osd_pool_default_size: {get_param: CephPoolDefaultSize}
osd_pool_default_pg_num: {get_param: CephPoolDefaultPgNum}
osd_pool_default_pgp_num: {get_param: CephPoolDefaultPgNum}
rgw_keystone_api_version: 3
rgw_keystone_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
rgw_keystone_accepted_roles: 'Member, admin'
rgw_keystone_accepted_admin_roles: ResellerAdmin
rgw_keystone_admin_domain: default
rgw_keystone_admin_project: service
rgw_keystone_admin_user: swift
rgw_keystone_admin_password: {get_param: SwiftPassword}
rgw_keystone_implicit_tenants: 'true'
rgw_keystone_revocation_interval: '0'
rgw_s3_auth_use_keystone: 'true'
rgw_swift_versioning_enabled: 'true'
rgw_swift_account_in_url: 'true'
CephBaseAnsibleVars: CephBaseAnsibleVars:
type: OS::Heat::Value type: OS::Heat::Value
properties: properties:
@ -422,24 +449,18 @@ resources:
keys: *openstack_keys keys: *openstack_keys
pools: [] pools: []
ceph_conf_overrides: ceph_conf_overrides:
global: if:
map_merge: - ceph_config_overrides_with_sections
- osd_pool_default_size: {get_param: CephPoolDefaultSize} - yaql:
osd_pool_default_pg_num: {get_param: CephPoolDefaultPgNum} data:
osd_pool_default_pgp_num: {get_param: CephPoolDefaultPgNum} default:
rgw_keystone_api_version: 3 map_merge:
rgw_keystone_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} - {get_attr: [DefaultCephConfigOverrides, value]}
rgw_keystone_accepted_roles: 'member, Member, admin' overrides: {get_param: CephConfigOverrides}
rgw_keystone_accepted_admin_roles: ResellerAdmin expression: $.data.default.mergeWith($.data.overrides)
rgw_keystone_admin_domain: default - global:
rgw_keystone_admin_project: service map_merge:
rgw_keystone_admin_user: swift - {get_attr: [DefaultCephConfigOverrides, value, global]}
rgw_keystone_admin_password: {get_param: SwiftPassword}
rgw_keystone_implicit_tenants: 'true'
rgw_keystone_revocation_interval: '0'
rgw_s3_auth_use_keystone: 'true'
rgw_swift_versioning_enabled: 'true'
rgw_swift_account_in_url: 'true'
- {get_param: CephConfigOverrides} - {get_param: CephConfigOverrides}
ntp_service_enabled: false ntp_service_enabled: false
generate_fsid: false generate_fsid: false