heat_stack_server.yaml.j2 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. heat_template_version: 2016-10-14
  2. description: OpenShift cluster server
  3. parameters:
  4. name:
  5. type: string
  6. label: Name
  7. description: Name
  8. group:
  9. type: string
  10. label: Host Group
  11. description: The Primary Ansible Host Group
  12. default: host
  13. cluster_env:
  14. type: string
  15. label: Cluster environment
  16. description: Environment of the cluster
  17. cluster_id:
  18. type: string
  19. label: Cluster ID
  20. description: Identifier of the cluster
  21. type:
  22. type: string
  23. label: Type
  24. description: Type master or node
  25. subtype:
  26. type: string
  27. label: Sub-type
  28. description: Sub-type compute or infra for nodes, default otherwise
  29. default: default
  30. key_name:
  31. type: string
  32. label: Key name
  33. description: Key name of keypair
  34. image:
  35. type: string
  36. label: Image
  37. description: Name of the image
  38. flavor:
  39. type: string
  40. label: Flavor
  41. description: Name of the flavor
  42. net:
  43. type: string
  44. label: Net ID
  45. description: Net resource
  46. net_name:
  47. type: string
  48. label: Net name
  49. description: Net name
  50. subnet:
  51. type: string
  52. label: Subnet ID
  53. description: Subnet resource
  54. secgrp:
  55. type: comma_delimited_list
  56. label: Security groups
  57. description: Security group resources
  58. floating_network:
  59. type: string
  60. label: Floating network
  61. description: Network to allocate floating IP from
  62. availability_zone:
  63. type: string
  64. description: The Availability Zone to launch the instance.
  65. default: nova
  66. volume_size:
  67. type: number
  68. description: Size of the volume to be created.
  69. default: 1
  70. constraints:
  71. - range: { min: 1, max: 1024 }
  72. description: must be between 1 and 1024 Gb.
  73. node_labels:
  74. type: json
  75. description: OpenShift Node Labels
  76. default: {"region": "default" }
  77. outputs:
  78. name:
  79. description: Name of the server
  80. value: { get_attr: [ server, name ] }
  81. private_ip:
  82. description: Private IP of the server
  83. value:
  84. get_attr:
  85. - server
  86. - addresses
  87. - { get_param: net_name }
  88. - 0
  89. - addr
  90. floating_ip:
  91. description: Floating IP of the server
  92. value:
  93. get_attr:
  94. - server
  95. - addresses
  96. - { get_param: net_name }
  97. - 1
  98. - addr
  99. resources:
  100. server:
  101. type: OS::Nova::Server
  102. properties:
  103. name: { get_param: name }
  104. key_name: { get_param: key_name }
  105. image: { get_param: image }
  106. flavor: { get_param: flavor }
  107. networks:
  108. - port: { get_resource: port }
  109. user_data:
  110. get_file: user-data
  111. user_data_format: RAW
  112. metadata:
  113. group: { get_param: group }
  114. environment: { get_param: cluster_env }
  115. clusterid: { get_param: cluster_id }
  116. host-type: { get_param: type }
  117. sub-host-type: { get_param: subtype }
  118. node_labels: { get_param: node_labels }
  119. port:
  120. type: OS::Neutron::Port
  121. properties:
  122. network: { get_param: net }
  123. fixed_ips:
  124. - subnet: { get_param: subnet }
  125. security_groups: { get_param: secgrp }
  126. floating-ip:
  127. type: OS::Neutron::FloatingIP
  128. properties:
  129. floating_network: { get_param: floating_network }
  130. port_id: { get_resource: port }
  131. cinder_volume:
  132. type: OS::Cinder::Volume
  133. properties:
  134. size: { get_param: volume_size }
  135. availability_zone: { get_param: availability_zone }
  136. volume_attachment:
  137. type: OS::Cinder::VolumeAttachment
  138. properties:
  139. volume_id: { get_resource: cinder_volume }
  140. instance_uuid: { get_resource: server }
  141. mountpoint: /dev/sdb