From 3876ec48c7568ba8e5516ce18a5ab696393d19a8 Mon Sep 17 00:00:00 2001 From: Alan Bishop Date: Thu, 8 Feb 2018 15:48:26 -0500 Subject: [PATCH] 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 (cherry picked from commit f89d8d2077daac98f255c6750b742a87c0b7f928) --- docker/services/cinder-backup.yaml | 21 +---- docker/services/cinder-common.yaml | 96 ++++++++++++++++++++ docker/services/cinder-volume.yaml | 33 +------ docker/services/pacemaker/cinder-backup.yaml | 5 + docker/services/pacemaker/cinder-volume.yaml | 5 + 5 files changed, 116 insertions(+), 44 deletions(-) create mode 100644 docker/services/cinder-common.yaml diff --git a/docker/services/cinder-backup.yaml b/docker/services/cinder-backup.yaml index d9ade068ff..85cd447222 100644 --- a/docker/services/cinder-backup.yaml +++ b/docker/services/cinder-backup.yaml @@ -62,6 +62,9 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + CinderCommon: + type: ./cinder-common.yaml + outputs: role_data: description: Role data for the Cinder Backup role. @@ -128,22 +131,8 @@ outputs: net: host privileged: true restart: always - volumes: - 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 - environment: - - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + volumes: {get_attr: [CinderCommon, cinder_backup_volumes]} + environment: {get_attr: [CinderCommon, cinder_backup_environment]} host_prep_tasks: - name: create persistent directories file: diff --git a/docker/services/cinder-common.yaml b/docker/services/cinder-common.yaml new file mode 100644 index 0000000000..8267c66c58 --- /dev/null +++ b/docker/services/cinder-common.yaml @@ -0,0 +1,96 @@ +heat_template_version: pike + +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 diff --git a/docker/services/cinder-volume.yaml b/docker/services/cinder-volume.yaml index c48bfb26cc..624137af9d 100644 --- a/docker/services/cinder-volume.yaml +++ b/docker/services/cinder-volume.yaml @@ -52,14 +52,6 @@ parameters: CephClientUserName: default: openstack 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: @@ -79,6 +71,9 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + CinderCommon: + type: ./cinder-common.yaml + outputs: role_data: description: Role data for the Cinder Volume role. @@ -147,26 +142,8 @@ outputs: net: host privileged: true restart: always - volumes: - 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 - environment: - list_concat: - - {get_param: CinderVolumeOptEnvVars} - - - - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + volumes: {get_attr: [CinderCommon, cinder_volume_volumes]} + environment: {get_attr: [CinderCommon, cinder_volume_environment]} host_prep_tasks: - name: create persistent directories file: diff --git a/docker/services/pacemaker/cinder-backup.yaml b/docker/services/pacemaker/cinder-backup.yaml index 54599377e4..0f19c74776 100644 --- a/docker/services/pacemaker/cinder-backup.yaml +++ b/docker/services/pacemaker/cinder-backup.yaml @@ -77,6 +77,9 @@ resources: CinderBackupRbdPoolName: {get_param: CinderBackupRbdPoolName} CephClientUserName: {get_param: CephClientUserName} + CinderCommon: + type: ../cinder-common.yaml + outputs: role_data: description: Role data for the Cinder Backup role. @@ -92,6 +95,8 @@ outputs: data: {get_param: DockerCinderBackupImage} expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0] - '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::enabled: false logging_source: {get_attr: [CinderBackupBase, role_data, logging_source]} diff --git a/docker/services/pacemaker/cinder-volume.yaml b/docker/services/pacemaker/cinder-volume.yaml index 3ce0790cd5..4298c83666 100644 --- a/docker/services/pacemaker/cinder-volume.yaml +++ b/docker/services/pacemaker/cinder-volume.yaml @@ -71,6 +71,9 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + CinderCommon: + type: ../cinder-common.yaml + outputs: role_data: description: Role data for the Cinder Volume role. @@ -87,6 +90,8 @@ outputs: data: {get_param: DockerCinderVolumeImage} expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0] - '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::enabled: false cinder::host: hostgroup