heat_stack_server.yaml 3.2 KB

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