Add recursive whole-file __include__ tag
[apex-tripleo-heat-templates.git] / undercloud-vm.yaml
index 36c70bc..8c948ca 100644 (file)
@@ -1,17 +1,54 @@
-escription: All-in-one baremetal OpenStack and all dependencies.
+Description: All-in-one baremetal OpenStack and all dependencies.
 HeatTemplateFormatVersion: '2012-12-12'
 Parameters:
-  InstanceType:
+  AdminPassword:
+    Default: unset
+    Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
+    Type: String
+    NoEcho: true
+  AdminToken:
+    Default: unset
+    Description: The keystone auth secret.
+    Type: String
+  BaremetalArch:
+    Default: i386
+    Description: The architecture to use in Nova-BM - i386 or amd64.
+    Type: String
+  Flavor:
     Default: baremetal
     Description: Flavor to request when deploying.
     Type: String
+  GlancePassword:
+    Default: unset
+    Description: The password for the glance service account, used by the glance services.
+    Type: String
+    NoEcho: true
   KeyName:
     Default: default
     Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
     Type: String
+  HeatPassword:
+    Default: unset
+    Description: The password for the Heat service account, used by the Heat services.
+    Type: String
+    NoEcho: true
   Image:
     Default: undercloud
     Type: String
+  NeutronPassword:
+    Default: unset
+    Description: The password for the neutron service account, used by neutron agents.
+    Type: String
+    NoEcho: true
+  NeutronNativePXE:
+    Default: ''
+    Type: String
+    Description: Set truthy to enable Neutron native PXE.
+  NovaPassword:
+    Default: unset
+    Description: The password for the nova service account, used by nova-api.
+    Type: String
+    NoEcho: true
   PowerUserName:
     Default: stack
     Description: What username to ssh to the virtual power host with.
@@ -20,7 +57,7 @@ Resources:
   AccessPolicy:
     Properties:
       AllowedResources:
-      - notcompute
+      - notcomputeConfig
     Type: OS::Heat::AccessPolicy
   Key:
     Properties:
@@ -32,13 +69,26 @@ Resources:
       Policies:
       - Ref: AccessPolicy
     Type: AWS::IAM::User
-  notcompute:
+  notcomputeConfig:
+    Type: AWS::AutoScaling::LaunchConfiguration
+    Properties:
+      ImageId: '0'
+      InstanceType: foo
     Metadata:
       OpenStack::Heat::Stack: {}
       Openstack::ImageBuilder::Elements: [ boot-stack, heat-cfntools, neutron-network-node ]
-      admin-password: unset
-      admin-token: unset
-      controller-address: 0.0.0.0
+      admin-password:
+        Ref: AdminPassword
+      admin-token: 
+        Ref: AdminToken
+      controller-address:
+        Fn::Select:
+          - 0
+          - Fn::Select:
+            - "ctlplane"
+            - Fn::GetAtt:
+              - notcompute
+              - networks
       cinder:
         db: mysql://cinder:unset@localhost/cinder
         volume_size_mb: '5000'
@@ -46,35 +96,51 @@ Resources:
       glance:
         db: mysql://glance:unset@localhost/glance
         host: 127.0.0.1
+        service-password:
+          Ref: GlancePassword
       heat:
-        admin_password: unset
+        admin_password:
+          Ref: HeatPassword
         admin_tenant_name: service
         admin_user: heat
         auth_encryption_key: unset___________
         db: mysql://heat:unset@localhost/heat
-        heat_watch_server_url: http://0.0.0.0:8003
-        metadata_server_url: http://0.0.0.0:8000
-        waitcondition_server_url: http://0.0.0.0:8000/v1/waitcondition
-        access_key_id:
-          Ref: Key
-        refresh:
-        - resource: notcompute
-        secret_key:
-          Fn::GetAtt:
-          - Key
-          - SecretAccessKey
-        stack:
-          name:
+        heat_watch_server_url:
+          Fn::Join:
+            - ''
+            - - http://
+              - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
+              - ":8003"
+        metadata_server_url:
+          Fn::Join:
+            - ''
+            - - http://
+              - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
+              - ":8000"
+        waitcondition_server_url:
+          Fn::Join:
+            - ''
+            - - http://
+              - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
+              - ":8000/v1/waitcondition"
+      os-collect-config:
+        cfn:
+          access_key_id:
+            Ref: Key
+          path: notcomputeConfig.Metadata
+          secret_access_key:
+            Fn::GetAtt:
+            - Key
+            - SecretAccessKey
+          stack_name:
             Ref: AWS::StackName
-          region:
-            Ref: AWS::Region
       interfaces:
         control: eth2
       keystone:
         db: mysql://keystone:unset@localhost/keystone
         host: 127.0.0.1
       nova:
-        compute_hostname: ubuntu
+        compute_hostname: undercloud
         compute_driver: baremetal.driver.BareMetalDriver
         db: mysql://nova:unset@localhost/nova
         host: 127.0.0.1
@@ -83,7 +149,8 @@ Resources:
           ram_allocation_ratio: 1.0
           reserved_host_memory_mb: 0
         baremetal:
-          arch: i386
+          arch:
+            Ref: BaremetalArch
           db: mysql://nova:unset@localhost/nova_bm
           power_manager: nova.virt.baremetal.virtual_power_driver.VirtualPowerManager
           pxe_deploy_timeout: 2400
@@ -93,8 +160,12 @@ Resources:
             key: /opt/stack/boot-stack/virtual-power-key
             ssh_host: 192.168.122.1
             type: virsh
+        service-password:
+          Ref: NovaPassword
       neutron:
         host: 127.0.0.1
+        native_pxe:
+          Ref: NeutronNativePXE
         ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
         ovs:
           dnsmasq_range: [192.0.2.25, 192.0.2.44]
@@ -103,23 +174,31 @@ Resources:
           physical_network: ctlplane
           network_vlan_ranges: ctlplane
           bridge_mappings: ctlplane:br-ctlplane
-          fixed_range: 
-            start: 192.0.2.5
-            end: 192.0.2.24
           tenant_network_type: vlan
           enable_tunneling: 'False'
+        service-password:
+          Ref: NeutronPassword
       rabbit:
         host: 127.0.0.1
         password: guest
-      swift:
-        store_user: unset
-        store_key: unset
-      service-password: unset
+  notcompute:
+    Type: OS::Nova::Server
     Properties:
-      ImageId:
+      image:
         Ref: Image
-      InstanceType:
-        Ref: InstanceType
-      KeyName:
+      flavor:
+        Ref: Flavor
+      key_name:
         Ref: KeyName
-    Type: AWS::EC2::Instance
+    Metadata:
+      os-collect-config:
+        cfn:
+          access_key_id:
+            Ref: Key
+          path: notcomputeConfig.Metadata
+          secret_access_key:
+            Fn::GetAtt:
+            - Key
+            - SecretAccessKey
+          stack_name:
+            Ref: AWS::StackName