diff --git a/docker/services/cinder-backup.yaml b/docker/services/cinder-backup.yaml index 1b4961d768..a397e09ee9 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. @@ -129,22 +132,8 @@ outputs: restart: always healthcheck: test: /openstack/healthcheck - 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..d843dbd929 --- /dev/null +++ b/docker/services/cinder-common.yaml @@ -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 diff --git a/docker/services/cinder-volume.yaml b/docker/services/cinder-volume.yaml index bb3f3e9ae4..3768fdfc3e 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. @@ -148,26 +143,8 @@ outputs: restart: always healthcheck: test: /openstack/healthcheck - 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 4cafcf0d2b..fcb34457c2 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 4a6ddddfeb..23bc6d6adf 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