Add a bare metal undercloud template.
authorRobert Collins <rbtcollins@hp.com>
Tue, 1 Oct 2013 00:44:06 +0000 (13:44 +1300)
committerRobert Collins <rbtcollins@hp.com>
Tue, 1 Oct 2013 03:13:37 +0000 (16:13 +1300)
This should be factored into a lib and different includes, but right
now - iteration one - we need the thing up and running.

Change-Id: I1d0ed1c33385fd66ddfe39440f181dbb9b295fe9

undercloud-bm.yaml [new file with mode: 0644]

diff --git a/undercloud-bm.yaml b/undercloud-bm.yaml
new file mode 100644 (file)
index 0000000..9e1e8d7
--- /dev/null
@@ -0,0 +1,194 @@
+Description: All-in-one baremetal OpenStack and all dependencies.
+HeatTemplateFormatVersion: '2012-12-12'
+Parameters:
+  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
+Resources:
+  AccessPolicy:
+    Properties:
+      AllowedResources:
+      - notcomputeConfig
+    Type: OS::Heat::AccessPolicy
+  Key:
+    Properties:
+      UserName:
+        Ref: User
+    Type: AWS::IAM::AccessKey
+  User:
+    Properties:
+      Policies:
+      - Ref: AccessPolicy
+    Type: AWS::IAM::User
+  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:
+        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'
+      db-password: unset
+      glance:
+        db: mysql://glance:unset@localhost/glance
+        host: 127.0.0.1
+        service-password:
+          Ref: GlancePassword
+      heat:
+        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:
+          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
+      interfaces:
+        control: eth2
+      keystone:
+        db: mysql://keystone:unset@localhost/keystone
+        host: 127.0.0.1
+      nova:
+        compute_hostname: undercloud
+        compute_driver: baremetal.driver.BareMetalDriver
+        db: mysql://nova:unset@localhost/nova
+        host: 127.0.0.1
+        metadata-proxy: false
+        tuning:
+          ram_allocation_ratio: 1.0
+          reserved_host_memory_mb: 0
+        baremetal:
+          arch:
+            Ref: BaremetalArch
+          db: mysql://nova:unset@localhost/nova_bm
+          power_manager: nova.virt.baremetal.ipmi.IPMI
+          pxe_deploy_timeout: 2400
+        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]
+          public_interface: eth2
+          physical_bridge: br-ctlplane
+          physical_network: ctlplane
+          network_vlan_ranges: ctlplane
+          bridge_mappings: ctlplane:br-ctlplane
+          tenant_network_type: vlan
+          enable_tunneling: 'False'
+        service-password:
+          Ref: NeutronPassword
+      rabbit:
+        host: 127.0.0.1
+        password: guest
+  notcompute:
+    Type: OS::Nova::Server
+    Properties:
+      image:
+        Ref: Image
+      flavor:
+        Ref: Flavor
+      key_name:
+        Ref: KeyName
+    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