Description: examples/scale1.yaml
HeatTemplateFormatVersion: '2012-12-12'
Resources:
  ComputeUser:
    Properties:
      Policies:
      - Ref: ComputeAccessPolicy
    Type: AWS::IAM::User
  GlobalAccessPolicy:
    Type: OS::Heat::AccessPolicy
  NovaCompute0:
    Metadata:
      os-collect-config:
        cfn:
          access_key_id:
            Ref: NovaCompute0Key
          path: NovaCompute0Config.Metadata
          secret_access_key:
            Fn::GetAtt:
            - NovaCompute0Key
            - SecretAccessKey
          stack_name:
            Ref: AWS::StackName
    Properties:
      image:
        Ref: ComputeImage
    Type: OS::Nova::Server
  NovaCompute0CompletionCondition:
    DependsOn: notcompute
    Properties:
      Count: '1'
      Handle:
        Ref: NovaCompute0CompletionHandle
      Timeout: '1800'
    Type: AWS::CloudFormation::WaitCondition
  NovaCompute0CompletionHandle:
    Type: AWS::CloudFormation::WaitConditionHandle
  NovaCompute0Config:
    Metadata:
      completion-handle:
        Ref: NovaCompute0CompletionHandle
      neutron:
        ovs:
          local_ip:
            Fn::Select:
            - 0
            - Fn::Select:
              - ctlplane
              - Fn::GetAtt:
                - NovaCompute0
                - networks
      os-collect-config:
        cfn:
          access_key_id:
            Ref: NovaCompute0Key
          path: NovaCompute0Config.Metadata
          secret_access_key:
            Fn::GetAtt:
            - NovaCompute0Key
            - SecretAccessKey
          stack_name:
            Ref: AWS::StackName
      rabbit:
        password: guest
    Type: AWS::AutoScaling::LaunchConfiguration
  NovaCompute0Key:
    Properties:
      UserName:
        Ref: ComputeUser
    Type: AWS::IAM::AccessKey
  NovaCompute1:
    Metadata:
      os-collect-config:
        cfn:
          access_key_id:
            Ref: NovaCompute1Key
          path: NovaCompute1Config.Metadata
          secret_access_key:
            Fn::GetAtt:
            - NovaCompute1Key
            - SecretAccessKey
          stack_name:
            Ref: AWS::StackName
    Properties:
      image:
        Ref: ComputeImage
    Type: OS::Nova::Server
  NovaCompute1CompletionCondition:
    DependsOn: notcompute
    Properties:
      Count: '1'
      Handle:
        Ref: NovaCompute1CompletionHandle
      Timeout: '1800'
    Type: AWS::CloudFormation::WaitCondition
  NovaCompute1CompletionHandle:
    Type: AWS::CloudFormation::WaitConditionHandle
  NovaCompute1Config:
    Metadata:
      completion-handle:
        Ref: NovaCompute1CompletionHandle
      neutron:
        ovs:
          local_ip:
            Fn::Select:
            - 0
            - Fn::Select:
              - ctlplane
              - Fn::GetAtt:
                - NovaCompute1
                - networks
      os-collect-config:
        cfn:
          access_key_id:
            Ref: NovaCompute1Key
          path: NovaCompute1Config.Metadata
          secret_access_key:
            Fn::GetAtt:
            - NovaCompute1Key
            - SecretAccessKey
          stack_name:
            Ref: AWS::StackName
      rabbit:
        password: guest
    Type: AWS::AutoScaling::LaunchConfiguration
  NovaCompute1Key:
    Properties:
      UserName:
        Ref: ComputeUser
    Type: AWS::IAM::AccessKey
  NovaCompute2:
    Metadata:
      os-collect-config:
        cfn:
          access_key_id:
            Ref: NovaCompute2Key
          path: NovaCompute2Config.Metadata
          secret_access_key:
            Fn::GetAtt:
            - NovaCompute2Key
            - SecretAccessKey
          stack_name:
            Ref: AWS::StackName
    Properties:
      image:
        Ref: ComputeImage
    Type: OS::Nova::Server
  NovaCompute2CompletionCondition:
    DependsOn: notcompute
    Properties:
      Count: '1'
      Handle:
        Ref: NovaCompute2CompletionHandle
      Timeout: '1800'
    Type: AWS::CloudFormation::WaitCondition
  NovaCompute2CompletionHandle:
    Type: AWS::CloudFormation::WaitConditionHandle
  NovaCompute2Config:
    Metadata:
      completion-handle:
        Ref: NovaCompute2CompletionHandle
      neutron:
        ovs:
          local_ip:
            Fn::Select:
            - 0
            - Fn::Select:
              - ctlplane
              - Fn::GetAtt:
                - NovaCompute2
                - networks
      os-collect-config:
        cfn:
          access_key_id:
            Ref: NovaCompute2Key
          path: NovaCompute2Config.Metadata
          secret_access_key:
            Fn::GetAtt:
            - NovaCompute2Key
            - SecretAccessKey
          stack_name:
            Ref: AWS::StackName
      rabbit:
        password: guest
    Type: AWS::AutoScaling::LaunchConfiguration
  NovaCompute2Key:
    Properties:
      UserName:
        Ref: ComputeUser
    Type: AWS::IAM::AccessKey