Merge "Adding NTP to undercloud template"
[apex-tripleo-heat-templates.git] / nova-compute-instance.yaml
index ca8ff11..92e9a01 100644 (file)
@@ -5,28 +5,60 @@ Parameters:
     Default: unset
     Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
     Type: String
+    NoEcho: true
   KeyName: 
     Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
     Type: String
     Default: default
-  Flavor:
+  OvercloudComputeFlavor:
     Description: Use this flavor
     Type: String
     Default: baremetal
+  ImageUpdatePolicy:
+    Default: 'REBUILD_PRESERVE_EPHEMERAL'
+    Description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
+    Type: String
   NovaImage:
     Type: String
     Default: overcloud-compute
   KeystoneHost:
     Type: String
+  NeutronFlatNetworks:
+    Type: String
+    Default: ''
+    Description: If set, flat networks to configure in neutron plugins.
   NeutronHost:
     Type: String
+  NeutronPhysicalBridge:
+    Default: ''
+    Description: An OVS bridge to create for accessing external networks.
+    Type: String
+  NeutronPublicInterface:
+    Default: ''
+    Description: A port to add to the NeutronPhysicalBridge.
+    Type: String
   RabbitHost:
     Type: String
+  RabbitUserName:
+    Type: String
   RabbitPassword:
     Type: String
-  NovaInterfaces:
+    NoEcho: true
+  CeilometerComputeAgent:
+    Description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
+    Type: String
+    Default: ''
+    AllowedValues: ['', Present]
+  CeilometerMeteringSecret:
+    Default: unset
+    Description: Secret shared by the ceilometer services.
     Type: String
-    Default: eth0
+    NoEcho: true
+  CeilometerPassword:
+    Default: unset
+    Description: The password for the ceilometer service account.
+    Type: String
+    NoEcho: true
   NovaComputeDriver:
     Type: String
     Default: libvirt.LibvirtDriver
@@ -39,8 +71,11 @@ Parameters:
     Default: unset
     Description: The password for the nova service account, used by nova-api.
     Type: String
+    NoEcho: true
   GlanceHost:
     Type: String
+  CeilometerDSN:
+    Type: String
   NovaDSN:
     Type: String
   NeutronDSN:
@@ -53,6 +88,31 @@ Parameters:
     Type: String
   NeutronEnableTunnelling:
     Type: String
+  StaticHosts:
+    Default: ''
+    Description: Static content to append to /etc/hosts
+    Type: String
+  LiveUpdateUserName:
+    Type: String
+    Description: The live-update username for the undercloud Glance API.
+    Default: ''
+  LiveUpdateTenantName:
+    Type: String
+    Description: The live-update tenant name for the undercloud Glance API.
+    Default: ''
+  LiveUpdateHost:
+    Type: String
+    Description: The IP address for the undercloud Glance API.
+    Default: ''
+  LiveUpdatePassword:
+    Type: String
+    Default: ''
+    Description: The live-update password for the undercloud Glance API.
+    NoEcho: true
+  LiveUpdateComputeImage:
+    Type: String
+    Description: The image ID for live-updates to the overcloud compute nodes.
+    Default: ''
 Resources:
   ComputeAccessPolicy:
     Type: OS::Heat::AccessPolicy
@@ -62,25 +122,36 @@ Resources:
     Type: AWS::IAM::User
     Properties:
       Policies: [ { Ref: ComputeAccessPolicy } ]
-  ComputeKey:
+  NovaCompute0Key:
     Type: AWS::IAM::AccessKey
     Properties:
       UserName:
         Ref: ComputeUser
+  NovaCompute0CompletionCondition:
+    Type: AWS::CloudFormation::WaitCondition
+    DependsOn: notCompute0Config
+    Properties:
+      Handle: {Ref: NovaCompute0CompletionHandle}
+      Count: '1'
+      Timeout: '1800'
+  NovaCompute0CompletionHandle:
+    Type: AWS::CloudFormation::WaitConditionHandle
   NovaCompute0:
     Type: OS::Nova::Server
     Properties:
       image:
         {Ref: NovaImage}
-      flavor: {Ref: Flavor}
+      image_update_policy:
+        Ref: ImageUpdatePolicy
+      flavor: {Ref: OvercloudComputeFlavor}
       key_name: {Ref: KeyName}
     Metadata:
       os-collect-config:
         cfn:
           access_key_id:
-            Ref: ComputeKey
+            Ref: NovaCompute0Key
           secret_access_key:
-            Fn::GetAtt: [ ComputeKey, SecretAccessKey ]
+            Fn::GetAtt: [ NovaCompute0Key, SecretAccessKey ]
           stack_name: {Ref: 'AWS::StackName'}
           path: NovaCompute0Config.Metadata
       OpenStack::ImageBuilder::Elements: [ nova-compute ]
@@ -90,12 +161,14 @@ Resources:
       InstanceType: '0'
       ImageId: '0'
     Metadata:
+      completion-handle:
+        Ref: NovaCompute0CompletionHandle
       os-collect-config:
         cfn:
           access_key_id:
-            Ref: ComputeKey
+            Ref: NovaCompute0Key
           secret_access_key:
-            Fn::GetAtt: [ ComputeKey, SecretAccessKey ]
+            Fn::GetAtt: [ NovaCompute0Key, SecretAccessKey ]
           stack_name: {Ref: 'AWS::StackName'}
           path: NovaCompute0Config.Metadata
       nova:
@@ -105,28 +178,46 @@ Resources:
         host: {Ref: NovaApiHost}
         service-password:
           Ref: NovaPassword
+      ceilometer:
+        db: {Ref: CeilometerDSN}
+        metering_secret: {Ref: CeilometerMeteringSecret}
+        service-password: {Ref: CeilometerPassword}
+        compute_agent: {Ref: CeilometerComputeAgent}
       glance:
         host: {Ref: GlanceHost}
+      hosts: {Ref: StaticHosts}
       keystone:
         host: {Ref: KeystoneHost}
       neutron:
+        flat-networks: {Ref: NeutronFlatNetworks}
         host: {Ref: NeutronHost}
         ovs_db: {Ref: NeutronDSN}
         ovs:
           local_ip:
-            Fn::GetAtt:
-              - NovaCompute0
-              - first_private_address
+            Fn::Select:
+              - 0
+              - Fn::Select:
+                - ctlplane
+                - Fn::GetAtt:
+                  - NovaCompute0
+                  - networks
           tenant_network_type: {Ref: NeutronNetworkType}
           network_vlan_ranges: {Ref: NeutronNetworkVLANRanges}
           bridge_mappings: {Ref: NeutronBridgeMappings}
           enable_tunneling: {Ref: NeutronEnableTunnelling}
+          physical_bridge: {Ref: NeutronPhysicalBridge}
+          public_interface: {Ref: NeutronPublicInterface}
+        service-password:
+          Ref: NeutronPassword
       admin-password: {Ref: AdminPassword}
       rabbit:
         host: {Ref: RabbitHost}
+        username: {Ref: RabbitUserName}
         password: {Ref: RabbitPassword}
-      swift:
-        store_user: ''
-        store_key: ''
-      interfaces:
-        control: {Ref: NovaInterfaces}
+      live-update:
+        host: {Ref: LiveUpdateHost}
+        username: {Ref: LiveUpdateUserName}
+        password: {Ref: LiveUpdatePassword}
+        tenant-name: {Ref: LiveUpdateTenantName}
+        base_image_id: {Ref: NovaImage}
+        live_update_image_id: {Ref: LiveUpdateComputeImage}