Unify the Cinder HA and non-HA docker configurations

Relocate the list of docker volumes used by the CinderVolume and
CinderBackup services so that a common list can be used in both HA and
non-HA deployments. For HA, the list is passed to puppet-tripleo via
hiera data.

Closes-Bug: #1748290
Depends-On: I4ba0d78ad17183b97290b853a6c103e55bc8977c
Change-Id: I41d6ff1dc60a799cec18fbeb64c8b63961953388
This commit is contained in:
Alan Bishop 2018-02-08 15:48:26 -05:00
parent 16e15b73b9
commit f89d8d2077
5 changed files with 116 additions and 44 deletions

View File

@ -62,6 +62,9 @@ resources:
RoleName: {get_param: RoleName} RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
CinderCommon:
type: ./cinder-common.yaml
outputs: outputs:
role_data: role_data:
description: Role data for the Cinder Backup role. description: Role data for the Cinder Backup role.
@ -129,22 +132,8 @@ outputs:
restart: always restart: always
healthcheck: healthcheck:
test: /openstack/healthcheck test: /openstack/healthcheck
volumes: volumes: {get_attr: [CinderCommon, cinder_backup_volumes]}
list_concat: environment: {get_attr: [CinderCommon, cinder_backup_environment]}
- {get_attr: [ContainersCommon, volumes]}
-
- /var/lib/kolla/config_files/cinder_backup.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/cinder/:/var/lib/kolla/config_files/src:ro
- /etc/iscsi:/var/lib/kolla/config_files/src-iscsid:ro
- /etc/ceph:/var/lib/kolla/config_files/src-ceph:ro
- /dev/:/dev/
- /run/:/run/
- /sys:/sys
- /lib/modules:/lib/modules:ro
- /var/lib/cinder:/var/lib/cinder
- /var/log/containers/cinder:/var/log/cinder
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks: host_prep_tasks:
- name: create persistent directories - name: create persistent directories
file: file:

View File

@ -0,0 +1,96 @@
heat_template_version: queens
description: >
Provides the list of Docker volumes and environment to be used by the
CinderVolume and CinderBackup services. The same list is used for
HA and non-HA deployments.
parameters:
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
CinderVolumeOptVolumes:
default: []
description: list of optional volumes to be mounted
type: comma_delimited_list
CinderVolumeOptEnvVars:
default: []
description: list of optional environment variables
type: comma_delimited_list
resources:
ContainersCommon:
type: ./containers-common.yaml
outputs:
cinder_volume_volumes:
description: Volumes for the cinder-volume container (HA or non-HA)
value:
list_concat:
- {get_attr: [ContainersCommon, volumes]}
- {get_param: CinderVolumeOptVolumes}
-
- /var/lib/kolla/config_files/cinder_volume.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/cinder/:/var/lib/kolla/config_files/src:ro
- /etc/iscsi:/var/lib/kolla/config_files/src-iscsid:ro
- /etc/ceph:/var/lib/kolla/config_files/src-ceph:ro
- /lib/modules:/lib/modules:ro
- /dev/:/dev/
- /run/:/run/
- /sys:/sys
- /var/lib/cinder:/var/lib/cinder
- /var/log/containers/cinder:/var/log/cinder
cinder_volume_environment:
description: Docker environment for the cinder-volume container (HA or non-HA)
value:
list_concat:
- {get_param: CinderVolumeOptEnvVars}
-
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
cinder_backup_volumes:
description: Volumes for the cinder-backup container (HA or non-HA)
value:
list_concat:
- {get_attr: [ContainersCommon, volumes]}
-
- /var/lib/kolla/config_files/cinder_backup.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/cinder/:/var/lib/kolla/config_files/src:ro
- /etc/iscsi:/var/lib/kolla/config_files/src-iscsid:ro
- /etc/ceph:/var/lib/kolla/config_files/src-ceph:ro
- /dev/:/dev/
- /run/:/run/
- /sys:/sys
- /lib/modules:/lib/modules:ro
- /var/lib/cinder:/var/lib/cinder
- /var/log/containers/cinder:/var/log/cinder
cinder_backup_environment:
description: Docker environment for the cinder-backup container (HA or non-HA)
value:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS

View File

@ -52,14 +52,6 @@ parameters:
CephClientUserName: CephClientUserName:
default: openstack default: openstack
type: string type: string
CinderVolumeOptVolumes:
default: []
description: list of optional volumes to be mounted
type: comma_delimited_list
CinderVolumeOptEnvVars:
default: []
description: list of optional environment variables
type: comma_delimited_list
resources: resources:
@ -79,6 +71,9 @@ resources:
RoleName: {get_param: RoleName} RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
CinderCommon:
type: ./cinder-common.yaml
outputs: outputs:
role_data: role_data:
description: Role data for the Cinder Volume role. description: Role data for the Cinder Volume role.
@ -148,26 +143,8 @@ outputs:
restart: always restart: always
healthcheck: healthcheck:
test: /openstack/healthcheck test: /openstack/healthcheck
volumes: volumes: {get_attr: [CinderCommon, cinder_volume_volumes]}
list_concat: environment: {get_attr: [CinderCommon, cinder_volume_environment]}
- {get_attr: [ContainersCommon, volumes]}
- {get_param: CinderVolumeOptVolumes}
-
- /var/lib/kolla/config_files/cinder_volume.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/cinder/:/var/lib/kolla/config_files/src:ro
- /etc/iscsi:/var/lib/kolla/config_files/src-iscsid:ro
- /etc/ceph:/var/lib/kolla/config_files/src-ceph:ro
- /lib/modules:/lib/modules:ro
- /dev/:/dev/
- /run/:/run/
- /sys:/sys
- /var/lib/cinder:/var/lib/cinder
- /var/log/containers/cinder:/var/log/cinder
environment:
list_concat:
- {get_param: CinderVolumeOptEnvVars}
-
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks: host_prep_tasks:
- name: create persistent directories - name: create persistent directories
file: file:

View File

@ -77,6 +77,9 @@ resources:
CinderBackupRbdPoolName: {get_param: CinderBackupRbdPoolName} CinderBackupRbdPoolName: {get_param: CinderBackupRbdPoolName}
CephClientUserName: {get_param: CephClientUserName} CephClientUserName: {get_param: CephClientUserName}
CinderCommon:
type: ../cinder-common.yaml
outputs: outputs:
role_data: role_data:
description: Role data for the Cinder Backup role. description: Role data for the Cinder Backup role.
@ -92,6 +95,8 @@ outputs:
data: {get_param: DockerCinderBackupImage} data: {get_param: DockerCinderBackupImage}
expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0] expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
- 'pcmklatest' - 'pcmklatest'
tripleo::profile::pacemaker::cinder::backup_bundle::docker_volumes: {get_attr: [CinderCommon, cinder_backup_volumes]}
tripleo::profile::pacemaker::cinder::backup_bundle::docker_environment: {get_attr: [CinderCommon, cinder_backup_environment]}
cinder::backup::manage_service: false cinder::backup::manage_service: false
cinder::backup::enabled: false cinder::backup::enabled: false
logging_source: {get_attr: [CinderBackupBase, role_data, logging_source]} logging_source: {get_attr: [CinderBackupBase, role_data, logging_source]}

View File

@ -71,6 +71,9 @@ resources:
RoleName: {get_param: RoleName} RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
CinderCommon:
type: ../cinder-common.yaml
outputs: outputs:
role_data: role_data:
description: Role data for the Cinder Volume role. description: Role data for the Cinder Volume role.
@ -87,6 +90,8 @@ outputs:
data: {get_param: DockerCinderVolumeImage} data: {get_param: DockerCinderVolumeImage}
expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0] expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
- 'pcmklatest' - 'pcmklatest'
tripleo::profile::pacemaker::cinder::volume_bundle::docker_volumes: {get_attr: [CinderCommon, cinder_volume_volumes]}
tripleo::profile::pacemaker::cinder::volume_bundle::docker_environment: {get_attr: [CinderCommon, cinder_volume_environment]}
cinder::volume::manage_service: false cinder::volume::manage_service: false
cinder::volume::enabled: false cinder::volume::enabled: false
cinder::host: hostgroup cinder::host: hostgroup