summaryrefslogtreecommitdiffstats
path: root/playbooks/openstack/openshift-cluster/files/heat_stack_server.yaml
blob: 9dcab3e60be29814fb121d0fa88458846667ab1c (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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
heat_template_version: 2014-10-16

description: OpenShift cluster server

parameters:

  name:
    type: string
    label: Name
    description: Name

  cluster_id:
    type: string
    label: Cluster ID
    description: Identifier of the cluster

  type:
    type: string
    label: Type
    description: Type master or node

  subtype:
    type: string
    label: Sub-type
    description: Sub-type compute or infra for nodes, default otherwise
    default: default

  key_name:
    type: string
    label: Key name
    description: Key name of keypair

  image:
    type: string
    label: Image
    description: Name of the image

  flavor:
    type: string
    label: Flavor
    description: Name of the flavor

  net:
    type: string
    label: Net ID
    description: Net resource

  net_name:
    type: string
    label: Net name
    description: Net name

  subnet:
    type: string
    label: Subnet ID
    description: Subnet resource

  secgrp:
    type: comma_delimited_list
    label: Security groups
    description: Security group resources

  floating_network:
    type: string
    label: Floating network
    description: Network to allocate floating IP from

outputs:

  name:
    description: Name of the server
    value: { get_attr: [ server, name ] }

  private_ip:
    description: Private IP of the server
    value:
      get_attr:
        - server
        - addresses
        - { get_param: net_name }
        - 0
        - addr

  floating_ip:
    description: Floating IP of the server
    value:
      get_attr:
        - server
        - addresses
        - { get_param: net_name }
        - 1
        - addr

resources:

  server:
    type: OS::Nova::Server
    properties:
      name:      { get_param: name }
      key_name:  { get_param: key_name }
      image:     { get_param: image }
      flavor:    { get_param: flavor }
      networks:
        - port:  { get_resource: port }
      user_data: { get_file: user-data }
      user_data_format: RAW
      metadata:
        env: { get_param: cluster_id }
        host-type: { get_param: type }
        env-host-type:
          str_replace:
            template: cluster_id-openshift-type
            params:
              cluster_id: { get_param: cluster_id }
              type:       { get_param: type }
        sub-host-type:    { get_param: subtype }

  port:
    type: OS::Neutron::Port
    properties:
      network: { get_param: net }
      fixed_ips:
        - subnet: { get_param: subnet }
      security_groups: { get_param: secgrp }

  floating-ip:
    type: OS::Neutron::FloatingIP
    properties:
      floating_network: { get_param: floating_network }
      port_id: { get_resource: port }