description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL server,Dedicated RabbitMQ Server,Group of Nova Computes heat_template_version: 2013-05-23 parameters: AdminPassword: default: unset description: The password for the keystone admin account, used for monitoring, querying neutron etc. type: string hidden: true AdminToken: default: unset description: The keystone auth secret. type: string hidden: true CeilometerComputeAgent: description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly type: string default: '' constraints: - allowed_values: ['', Present] CeilometerMeteringSecret: default: unset description: Secret shared by the ceilometer services. type: string hidden: true CeilometerPassword: default: unset description: The password for the ceilometer service account. type: string hidden: true CinderISCSIHelper: default: tgtadm description: The iSCSI helper to use with cinder. type: string CinderLVMLoopDeviceSize: default: 5000 description: The size of the loopback file used by the cinder LVM driver. type: number CinderPassword: default: unset description: The password for the cinder service account, used by cinder-api. type: string hidden: true CloudName: default: '' description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org type: string ControlFixedIPs: default: [] description: Should be used for arbitrary ips. type: json controllerExtraConfig: default: {} description: | Controller specific configuration to inject into the cluster. Same structure as ExtraConfig. type: json controllerImage: type: string default: overcloud-control constraints: - custom_constraint: glance.image ControlVirtualInterface: default: 'br-ex' description: Interface where virtual ip will be assigned. type: string Debug: default: '' description: Set to True to enable debugging on all services. type: string DefaultSignalTransport: default: CFN_SIGNAL description: Transport to use for software-config signals. type: string constraints: - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ] ExtraConfig: default: {} description: | Additional configuration to inject into the cluster. The JSON should have the following structure: {"FILEKEY": {"config": [{"section": "SECTIONNAME", "values": [{"option": "OPTIONNAME", "value": "VALUENAME" } ] } ] } } For instance: {"nova": {"config": [{"section": "default", "values": [{"option": "force_config_drive", "value": "always" } ] }, {"section": "cells", "values": [{"option": "driver", "value": "nova.cells.rpc_driver.CellsRPCDriver" } ] } ] } } type: json GlanceLogFile: description: The filepath of the file to use for logging messages from Glance. type: string default: '' GlancePassword: default: unset description: The password for the glance service account, used by the glance services. type: string hidden: true GlancePort: default: 9292 description: Glance port. type: string GlanceProtocol: default: http description: Protocol to use when connecting to glance, set to https for SSL. type: string GlanceNotifierStrategy: description: Strategy to use for Glance notification queue type: string default: noop HeatPassword: default: unset description: The password for the Heat service account, used by the Heat services. type: string hidden: true HeatStackDomainAdminPassword: description: Password for heat_domain_admin user. type: string default: '' hidden: true HypervisorNeutronPhysicalBridge: default: 'br-ex' description: > An OVS bridge to create on each hypervisor. This defaults to br-ex the same as the control plane nodes, as we have a uniform configuration of the openvswitch agent. Typically should not need to be changed. type: string HypervisorNeutronPublicInterface: default: 'eth0' description: What interface to add to the HypervisorNeutronPhysicalBridge. type: string ImageUpdatePolicy: default: 'REBUILD_PRESERVE_EPHEMERAL' description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt. type: string KeyName: default: default description: Name of an existing EC2 KeyPair to enable SSH access to the instances type: string constraints: - custom_constraint: nova.keypair KeystoneCACertificate: default: '' description: Keystone self-signed certificate authority certificate. type: string KeystoneSigningCertificate: default: '' description: Keystone certificate for verifying token validity. type: string KeystoneSigningKey: default: '' description: Keystone key for signing tokens. type: string hidden: true LiveUpdateComputeImage: type: string description: The image ID for live-updates to the overcloud compute nodes. default: '' LiveUpdateHost: type: string description: The IP address for the undercloud Glance API. default: '' LiveUpda
heat_template_version: 2016-04-08

description: >
  OpenStack Glance Registry service configured with Puppet

parameters:
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  Debug:
    default: ''
    description: Set to True to enable debugging on all services.
    type: string
  GlancePassword:
    description: The password for the glance service and db account, used by the glance services.
    type: string
    hidden: true
  GlanceWorkers:
    default: 0
    description: Number of workers for Glance service.
    type: number

outputs:
  role_data:
    description: Role data for the Glance Registry role.
    value:
      service_name: glance_registry
      config_settings:
        glance::registry::database_connection:
          list_join:
            - ''
            - - {get_param: [EndpointMap, MysqlInternal, protocol]}
              - '://glance:'
              - {get_param: GlancePassword}
              - '@'
              - {get_param: [EndpointMap, MysqlInternal, host]}
              - '/glance'
        glance::registry::keystone_password: {get_param: GlancePassword}
        glance::registry::keystone_tenant: 'service'
        glance::registry::pipeline: 'keystone'
        glance::registry::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] }
        glance::registry::identity_uri: { get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix] }
        glance::registry::debug: {get_param: Debug}
        glance::registry::workers: {get_param: GlanceWorkers}
        glance::db::mysql::user: glance
        glance::db::mysql::host: {get_param: [EndpointMap, MysqlNoBracketsInternal, host]}
        glance::db::mysql::dbname: glance
        glance::db::mysql::allowed_hosts:
          - '%'
          - "%{hiera('mysql_bind_host')}"

        tripleo.glance_registry.firewall_rules:
          '112 glance_registry':
            dport:
              - 9191
      step_config: |
        include ::tripleo::profile::base::glance::registry
binds - name: glance_api port: 9292 net_binds: *public_binds - name: glance_registry port: 9191 net_binds: *public_binds - name: heat_api port: 8004 net_binds: *public_binds - name: heat_cloudwatch port: 8003 net_binds: *public_binds - name: heat_cfn port: 8000 net_binds: *public_binds - name: mysql port: 3306 extra_server_params: - backup options: - timeout client 0 - timeout server 0 - name: nova_ec2 port: 8773 - name: nova_osapi port: 8774 net_binds: *public_binds - name: nova_metadata port: 8775 net_binds: *public_binds - name: nova_novncproxy port: 6080 net_binds: *public_binds - name: ceilometer port: 8777 net_binds: *public_binds - name: swift_proxy_server port: 8080 net_binds: *public_binds - name: rabbitmq port: 5672 options: - timeout client 0 - timeout server 0 controllerPassthrough: type: OS::Heat::StructuredConfig properties: group: os-apply-config config: {get_input: passthrough_config} controllerPassthroughSpecific: type: OS::Heat::StructuredConfig properties: group: os-apply-config config: {get_input: passthrough_config_specific} controller0: type: OS::Nova::Server properties: image: get_param: controllerImage image_update_policy: get_param: ImageUpdatePolicy flavor: get_param: OvercloudControlFlavor key_name: get_param: KeyName networks: - network: ctlplane user_data_format: SOFTWARE_CONFIG controller0AllNodesDeployment: depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0PassthroughSpecific] type: OS::Heat::StructuredDeployment properties: signal_transport: {get_param: DefaultSignalTransport} config: {get_resource: allNodesConfig} server: {get_resource: controller0} controller0Deployment: type: OS::Heat::StructuredDeployment properties: signal_transport: NO_SIGNAL config: {get_resource: controllerConfig} server: {get_resource: controller0} input_values: bootstack_nodeid: {get_attr: [controller0, name]} controller_host: {get_attr: [controller0, networks, ctlplane, 0]} controller_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} heat.watch_server_url: Fn::Join: - '' - - 'http://' - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - ':8003' heat.metadata_server_url: Fn::Join: - '' - - 'http://' - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - ':8000' heat.waitcondition_server_url: Fn::Join: - '' - - 'http://' - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - ':8000/v1/waitcondition' allNodesConfig: type: OS::Heat::StructuredConfig properties: config: completion-signal: {get_input: deploy_signal_id} hosts: Fn::Join: - "\n" - - Fn::Join: - "\n" - Merge::Map: NovaCompute0: Fn::Join: - ' ' - - {get_attr: [NovaCompute0, networks, ctlplane, 0]} - {get_attr: [NovaCompute0, name]} - Fn::Join: - '.' - - {get_attr: [NovaCompute0, name]} - 'novalocal' - Fn::Join: - "\n" - Merge::Map: BlockStorage0: Fn::Join: - ' ' - - {get_attr: [BlockStorage0, networks, ctlplane, 0]} - {get_attr: [BlockStorage0, name]} - Fn::Join: - '.' - - {get_attr: [BlockStorage0, name]} - 'novalocal' - Fn::Join: - "\n" - Merge::Map: SwiftStorage0: Fn::Join: - ' ' - - {get_attr: [SwiftStorage0, networks, ctlplane, 0]} - {get_attr: [SwiftStorage0, name]} - Fn::Join: - '.' - - {get_attr: [SwiftStorage0, name]} - 'novalocal' - Fn::Join: - "\n" - Merge::Map: controller0: Fn::Join: - ' ' - - {get_attr: [controller0, networks, ctlplane, 0]} - {get_attr: [controller0, name]} - Fn::Join: - '.' - - {get_attr: [controller0, name]} - 'novalocal' - {get_param: CloudName} rabbit: nodes: Fn::Join: - ',' - Merge::Map: controller0: {get_attr: [controller0, name]} controller0SSLDeployment: type: OS::Heat::StructuredDeployment properties: config: {get_resource: SSLConfig} server: {get_resource: controller0} signal_transport: NO_SIGNAL input_values: controller_host: {get_attr: [controller0, networks, ctlplane, 0]} ssl_certificate: {get_param: SSLCertificate} ssl_key: {get_param: SSLKey} ssl_ca_certificate: {get_param: SSLCACertificate} controller0Passthrough: type: OS::Heat::StructuredDeployment properties: config: {get_resource: controllerPassthrough} server: {get_resource: controller0} signal_transport: NO_SIGNAL input_values: passthrough_config: {get_param: ExtraConfig} controller0PassthroughSpecific: depends_on: [controller0Passthrough] type: OS::Heat::StructuredDeployment properties: config: {get_resource: controllerPassthroughSpecific} server: {get_resource: controller0} signal_transport: NO_SIGNAL input_values: passthrough_config_specific: {get_param: controllerExtraConfig} outputs: KeystoneURL: description: URL for the Overcloud Keystone service value: Fn::Join: - '' - - http:// - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - :5000/v2.0/