aboutsummaryrefslogtreecommitdiffstats
path: root/block-storage.yaml
blob: c437aa6944f10ec0003390e8fa84abe1e52f3cd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
HeatTemplateFormatVersion: '2012-12-12'
Description: 'Common Block Storage Configuration'
Parameters:
  BlockStorageImage:
    Type: String
    Default: overcloud-cinder-volume
  OvercloudBlockStorageFlavor:
    Default: baremetal
    Description: Flavor for block storage nodes to request when deploying.
    Type: String
  NeutronNetworkType:
    Type: String
    Default: 'gre'
  NeutronEnableTunnelling:
    Type: String
    Default: True
Resources:
  BlockStorageAccessPolicy:
    Type: OS::Heat::AccessPolicy
    Properties:
      AllowedResources:
      - BlockStorage0
      - BlockStorage0Config
  BlockStorageUser:
    Type: AWS::IAM::User
    Properties:
      Policies: [ { Ref: BlockStorageAccessPolicy } ]
  BlockStorage0Key:
    Type: AWS::IAM::AccessKey
    Properties:
      UserName:
        Ref: BlockStorageUser
  BlockStorage0CompletionCondition:
    Type: AWS::CloudFormation::WaitCondition
    DependsOn: controller0Config
    Properties:
      Handle: {Ref: BlockStorage0CompletionHandle}
      Count: '1'
      Timeout: '1800'
  BlockStorage0CompletionHandle:
    Type: AWS::CloudFormation::WaitConditionHandle
  BlockStorage0:
    Type: OS::Nova::Server
    Properties:
      image:
        {Ref: BlockStorageImage}
      flavor: {Ref: OvercloudBlockStorageFlavor}
      key_name: {Ref: KeyName}
    Metadata:
      os-collect-config:
        cfn:
          access_key_id:
            Ref: BlockStorage0Key
          secret_access_key:
            Fn::GetAtt: [ BlockStorage0Key, SecretAccessKey ]
          stack_name: {Ref: 'AWS::StackName'}
          path: BlockStorage0Config.Metadata
      OpenStack::ImageBuilder::Elements: [ cinder ]
  BlockStorage0Config:
    Type: AWS::AutoScaling::LaunchConfiguration
    Properties:
      InstanceType: '0'
      ImageId: '0'
    Metadata:
      completion-handle:
        Ref: BlockStorage0CompletionHandle
      os-collect-config:
        cfn:
          access_key_id:
            Ref: BlockStorage0Key
          secret_access_key:
            Fn::GetAtt: [ BlockStorage0Key, SecretAccessKey ]
          stack_name: {Ref: 'AWS::StackName'}
          path: BlockStorage0Config.Metadata
      admin-password: {Ref: AdminPassword}
      keystone:
        host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
      cinder:
        db: {"Fn::Join": ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } , '/cinder']]}
        volume_size_mb: '5000'
        service-password:
          Ref: CinderPassword
        iscsi-helper:
          Ref: CinderISCSIHelper
      admin-password: {Ref: AdminPassword}
      rabbit:
        host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
        username: {Ref: RabbitUserName}
        password: {Ref: RabbitPassword}
      interfaces:
        control: {Ref: NeutronPublicInterface}
      neutron:
        ovs:
          local_ip:
            Fn::Select:
              - 0
              - Fn::Select:
                - ctlplane
                - Fn::GetAtt:
                  - BlockStorage0
                  - networks
          tenant_network_type: {Ref: NeutronNetworkType}
          enable_tunneling: {Ref: NeutronEnableTunnelling}
        service-password:
          Ref: NeutronPassword