Use native resource for nova-compute-instance
[apex-tripleo-heat-templates.git] / nova-compute-instance.yaml
index 548857a..3a29f01 100644 (file)
@@ -5,7 +5,7 @@ Parameters:
     Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
     Type: String
     Default: default
-  InstanceType:
+  Flavor:
     Description: Use this flavor
     Type: String
     Default: baremetal
@@ -29,6 +29,9 @@ Parameters:
   NovaComputeDriver:
     Type: String
     Default: libvirt.LibvirtDriver
+  NovaComputeLibvirtType:
+    Type: String
+    Default: ''
   NovaApiHost:
     Type: String
   GlanceHost:
@@ -46,40 +49,53 @@ Parameters:
   NeutronEnableTunnelling:
     Type: String
 Resources:
-  AccessPolicy:
+  ComputeAccessPolicy:
     Type: OS::Heat::AccessPolicy
     Properties:
-      AllowedResources: [ NovaCompute ]
-  User:
+      AllowedResources: [ NovaCompute0 ]
+  ComputeUser:
     Type: AWS::IAM::User
     Properties:
-      Policies: [ { Ref: AccessPolicy } ]
-  Key:
+      Policies: [ { Ref: ComputeAccessPolicy } ]
+  ComputeKey:
     Type: AWS::IAM::AccessKey
     Properties:
       UserName:
-        Ref: User
-  NovaCompute:
-    Type: AWS::EC2::Instance
+        Ref: ComputeUser
+  NovaCompute0:
+    Type: OS::Nova::Server
     Properties:
-      ImageId:
+      image:
         {Ref: NovaImage}
-      InstanceType: {Ref: InstanceType}
-      KeyName: {Ref: KeyName}
+      flavor: {Ref: Flavor}
+      key_name: {Ref: KeyName}
     Metadata:
+      os-collect-config:
+        cfn:
+          access_key_id:
+            Ref: ComputeKey
+          secret_access_key:
+            Fn::GetAtt: [ ComputeKey, SecretAccessKey ]
+          stack_name: {Ref: 'AWS::StackName'}
+          path: NovaCompute0Config.Metadata
       OpenStack::ImageBuilder::Elements: [ nova-compute ]
-      heat: 
-        access_key_id:
-          Ref: Key
-        secret_key:
-          Fn::GetAtt: [ Key, SecretAccessKey ]
-        stack:
-          name: {Ref: 'AWS::StackName'}
-          region: {Ref: 'AWS::Region'}
-        refresh:
-          - resource: NovaCompute
+  NovaCompute0Config:
+    Type: AWS::AutoScaling::LaunchConfiguration
+    Properties:
+      InstanceType: '0'
+      ImageId: '0'
+    Metadata:
+      os-collect-config:
+        cfn:
+          access_key_id:
+            Ref: ComputeKey
+          secret_access_key:
+            Fn::GetAtt: [ ComputeKey, SecretAccessKey ]
+          stack_name: {Ref: 'AWS::StackName'}
+          path: NovaCompute0Config.Metadata
       nova:
         compute_driver: {Ref: NovaComputeDriver}
+        compute_libvirt_type: {Ref: NovaComputeLibvirtType}
         db: {Ref: NovaDSN}
         host: {Ref: NovaApiHost}
       glance:
@@ -90,7 +106,10 @@ Resources:
         host: {Ref: NeutronHost}
         ovs_db: {Ref: NeutronDSN}
         ovs:
-          local_ip: 0.0.0.0
+          local_ip:
+            Fn::GetAtt:
+              - NovaCompute0
+              - PrivateIp
           tenant_network_type: {Ref: NeutronNetworkType}
           network_vlan_ranges: {Ref: NeutronNetworkVLANRanges}
           bridge_mappings: {Ref: NeutronBridgeMappings}