diff options
Diffstat (limited to 'overcloud-source.yaml')
-rw-r--r-- | overcloud-source.yaml | 116 |
1 files changed, 105 insertions, 11 deletions
diff --git a/overcloud-source.yaml b/overcloud-source.yaml index 7cce21a3..b8216cd9 100644 --- a/overcloud-source.yaml +++ b/overcloud-source.yaml @@ -252,6 +252,23 @@ Parameters: Default: [] Description: Should be used for arbitrary ips. Type: Json + PublicVirtualFixedIPs: + Default: [] + Description: | + Control the IP allocation for the PublicVirtualInterface port. E.g. + [{'ip_address':'1.2.3.4'}] + Type: Json + PublicVirtualInterface: + Default: 'br-ex' + Description: > + Specifies the interface where the public-facing virtual ip will be assigned. + This should be int_public when a VLAN is being used. + Type: String + PublicVirtualNetwork: + Default: 'ctlplane' + Type: String + Description: > + Neutron network to allocate public virtual IP port on. KeystoneCACertificate: Default: '' Description: Keystone self-signed certificate authority certificate. @@ -277,13 +294,20 @@ Resources: Type: OS::Heat::RandomString Properties: length: 10 + PublicVirtualIP: + Type: OS::Neutron::Port + Properties: + name: public_virtual_ip + network: {Ref: PublicVirtualNetwork} + fixed_ips: + Ref: PublicVirtualFixedIPs RabbitCookie: Type: OS::Heat::RandomString Properties: length: 20 salt: Ref: RabbitCookieSalt - NovaCompute0Config: + NovaCompute0Deploy: Type: FileInclude Path: nova-compute-instance.yaml SubKey: Resources.NovaCompute0Deploy @@ -313,12 +337,10 @@ Resources: Parameters: AllNodesConfig: {Ref: allNodesConfig} NovaCompute0Passthrough: - Type: OS::Heat::StructuredDeployment - Properties: - config: {Ref: NovaComputePassthrough} - server: {Ref: NovaCompute0} - signal_transport: NO_SIGNAL - input_values: + Type: FileInclude + Path: nova-compute-instance.yaml + SubKey: Resources.NovaCompute0Passthrough + Parameters: passthrough_config: {Ref: ExtraConfig} NovaCompute0: Type: FileInclude @@ -360,6 +382,17 @@ Resources: Ref: CinderISCSIHelper controller-address: get_input: controller_host + corosync: + bindnetaddr: {get_input: controller_host} + mcastport: 5577 + nodes: + Merge::Map: + controller0: + ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } + pacemaker: + stonith_enabled : false + recheck_interval : 5 + quorum_policy : ignore db-password: unset glance: registry: @@ -367,7 +400,7 @@ Resources: backend: swift db: mysql://glance:unset@localhost/glance host: - get_input: controller_host + get_input: controller_virtual_ip port: Ref: GlancePort protocol: @@ -392,10 +425,17 @@ Resources: watch_server_url: {get_input: heat.watch_server_url} metadata_server_url: {get_input: heat.metadata_server_url} waitcondition_server_url: {get_input: heat.waitcondition_server_url} + horizon: + caches: + memcached: + nodes: + Merge::Map: + controller0: + {"Fn::Select": [ name, {"Fn::GetAtt": [controller0, show]} ] } keystone: db: mysql://keystone:unset@localhost/keystone host: - get_input: controller_host + get_input: controller_virtual_ip ca_certificate: {Ref: KeystoneCACertificate} signing_key: {Ref: KeystoneSigningKey} signing_certificate: {Ref: KeystoneSigningCertificate} @@ -464,15 +504,44 @@ Resources: ntp: servers: - {server: {Ref: NtpServer}, fudge: "stratum 0"} + virtual_interfaces: + instances: + - vrrp_instance_name: VI_CONTROL + virtual_router_id: 51 + keepalive_interface: + Ref: ControlVirtualInterface + priority: 101 + virtual_ips: + - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]} + interface: + Ref: ControlVirtualInterface + - vrrp_instance_name: VI_PUBLIC + virtual_router_id: 52 + keepalive_interface: + Ref: PublicVirtualInterface + priority: 101 + virtual_ips: + - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [PublicVirtualIP, fixed_ips]]]} + interface: + Ref: PublicVirtualInterface + vrrp_sync_groups: + - name: VG1 + members: + - VI_CONTROL + - VI_PUBLIC keepalived: keepalive_interface: - Ref: NeutronPublicInterface + Ref: PublicVirtualInterface priority: 101 virtual_ips: - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]} interface: Ref: ControlVirtualInterface + - + ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [PublicVirtualIP, fixed_ips]]]} + interface: + Ref: PublicVirtualInterface haproxy: nodes: Merge::Map: @@ -484,34 +553,50 @@ Resources: services: - name: keystone_admin port: 35357 + net_binds: &public_binds + - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]} + - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [PublicVirtualIP, fixed_ips]]]} - name: keystone_public port: 5000 + net_binds: *public_binds - name: horizon port: 80 + net_binds: *public_binds - name: neutron port: 9696 + net_binds: *public_binds - name: cinder port: 8776 + net_binds: *public_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: nova_ec2 port: 8773 - name: nova_osapi port: 8774 + net_binds: *public_binds - name: nova_metadata port: 8775 + net_binds: *public_binds - name: ceilometer port: 8777 + net_binds: *public_binds - name: swift_proxy_server port: 8080 + net_binds: *public_binds controllerPassthrough: Type: OS::Heat::StructuredConfig Properties: @@ -531,7 +616,8 @@ Resources: networks: - network: ctlplane user_data_format: SOFTWARE_CONFIG - controller0AllNodesConfig: + controller0AllNodes: + DependsOn: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough] Type: OS::Heat::StructuredDeployment Properties: config: {Ref: allNodesConfig} @@ -652,6 +738,14 @@ Resources: server: {Ref: controller0} signal_transport: NO_SIGNAL input_values: + controller_host: + Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - Fn::GetAtt: + - controller0 + - networks ssl_certificate: {Ref: SSLCertificate} ssl_key: {Ref: SSLKey} ssl_ca_certificate: {Ref: SSLCACertificate} |