heat_template_version: pike

description: >
  External Swift Proxy endpoint configured with Puppet

parameters:
  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
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  ExternalPublicUrl:
    description: Public endpoint url for the external swift proxy
    type: string
  ExternalInternalUrl:
    description: Internal endpoint url for the external swift proxy
    type: string
  ExternalAdminUrl:
    description: External endpoint url for the external swift proxy
    type: string
  ExternalSwiftUserTenant:
    description: Tenant where swift user will be set as admin
    type: string
    default: 'service'
  SwiftPassword:
    description: The password for the swift service account
    type: string
    hidden: true
  KeystoneRegion:
    type: string
    default: 'regionOne'
    description: Keystone region for endpoint

resources:

outputs:
  role_data:
    description: Role data for External Swift proxy.
    value:
      service_name: external_swift_proxy
      config_settings:

      step_config:

      service_config_settings:
        keystone:
          swift::keystone::auth::public_url: {get_param: ExternalPublicUrl}
          swift::keystone::auth::internal_url: {get_param: ExternalInternalUrl}
          swift::keystone::auth::admin_url: {get_param: ExternalAdminUrl}
          swift::keystone::auth::public_url_s3: ''
          swift::keystone::auth::internal_url_s3: ''
          swift::keystone::auth::admin_url_s3: ''
          swift::keystone::auth::password: {get_param: SwiftPassword}
          swift::keystone::auth::region: {get_param: KeystoneRegion}
          swift::keystone::auth::tenant: {get_param: ExternalSwiftUserTenant}
          swift::keystone::auth::configure_s3_endpoint: false
          swift::keystone::auth::operator_roles:
            - admin
            - swiftoperator
            - ResellerAdmin

