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
