heat_template_version: rocky

description: >
  Provides the list of Docker volumes and environment to be used by the
  ManilaShare service. 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
  ManilaCephFSCephFSProtocolHelperType:
    default: CEPHFS
    description: Protocol type ('CEPHFS' or 'NFS') when cephfs back end
                 is enabled.  Set via manila cephfs environment files.
    type: string
    constraints:
    - allowed_values: ['CEPHFS', 'NFS']

conditions:

  cephfs_nfs_enabled: {equals: [{get_param: ManilaCephFSCephFSProtocolHelperType}, 'NFS']}

resources:

  ContainersCommon:
    type: ../containers-common.yaml

outputs:
  manila_share_volumes:
    description: Volumes for the manila-share container (HA or non-HA)
    value:
      list_concat:
        - {get_attr: [ContainersCommon, volumes]}
        -
          - /var/lib/kolla/config_files/manila_share.json:/var/lib/kolla/config_files/config.json:ro
          - /var/lib/config-data/puppet-generated/manila/:/var/lib/kolla/config_files/src:ro
          - /etc/ceph:/var/lib/kolla/config_files/src-ceph:ro
          - /dev/:/dev/
          - /run/:/run/
          - /sys:/sys
          - /lib/modules:/lib/modules:ro
          - /var/lib/manila:/var/lib/manila:z
          - /var/log/containers/manila:/var/log/manila:z
        - if:
          - cephfs_nfs_enabled
          -
            - /etc/ganesha:/etc/ganesha
            - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket
          - null

  manila_share_environment:
    description: Docker environment for the manila-share container (HA or non-HA)
    value:
      KOLLA_CONFIG_STRATEGY: COPY_ALWAYS
