heat_template_version: 2016-10-14 description: OpenShift cluster server w/o floating IP parameters: name: type: string label: Name description: Name group: type: string label: Host Group description: The Primary Ansible Host Group default: host cluster_env: type: string label: Cluster environment description: Environment of the cluster 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 availability_zone: type: string description: The Availability Zone to launch the instance. default: nova volume_size: type: number description: Size of the volume to be created. default: 1 constraints: - range: { min: 1, max: 1024 } description: must be between 1 and 1024 Gb. node_labels: type: json description: OpenShift Node Labels default: {"region": "default" } outputs: name: description: Name of the server value: { get_attr: [ server_nofloating, name ] } private_ip: description: Private IP of the server value: get_attr: - server_nofloating - addresses - { get_param: net_name } - 0 - addr resources: server_nofloating: 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 user_data_update_policy: IGNORE metadata: group: { get_param: group } environment: { get_param: cluster_env } clusterid: { get_param: cluster_id } host-type: { get_param: type } sub-host-type: { get_param: subtype } node_labels: { get_param: node_labels } port: type: OS::Neutron::Port properties: network: { get_param: net } fixed_ips: - subnet: { get_param: subnet } security_groups: { get_param: secgrp } {% if not ephemeral_volumes|default(false)|bool %} cinder_volume: type: OS::Cinder::Volume properties: size: { get_param: volume_size } availability_zone: { get_param: availability_zone } volume_attachment: type: OS::Cinder::VolumeAttachment properties: volume_id: { get_resource: cinder_volume } instance_uuid: { get_resource: server_nofloating } mountpoint: /dev/sdb {% endif %}