You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

232 lines
4.8 KiB

  1. variable "cluster_name" {
  2. default = "example"
  3. }
  4. variable "az_list" {
  5. description = "List of Availability Zones to use for masters in your OpenStack cluster"
  6. type = list(string)
  7. default = ["nova"]
  8. }
  9. variable "az_list_node" {
  10. description = "List of Availability Zones to use for nodes in your OpenStack cluster"
  11. type = list(string)
  12. default = ["nova"]
  13. }
  14. variable "number_of_bastions" {
  15. default = 1
  16. }
  17. variable "number_of_k8s_masters" {
  18. default = 2
  19. }
  20. variable "number_of_k8s_masters_no_etcd" {
  21. default = 2
  22. }
  23. variable "number_of_etcd" {
  24. default = 2
  25. }
  26. variable "number_of_k8s_masters_no_floating_ip" {
  27. default = 2
  28. }
  29. variable "number_of_k8s_masters_no_floating_ip_no_etcd" {
  30. default = 2
  31. }
  32. variable "number_of_k8s_nodes" {
  33. default = 1
  34. }
  35. variable "number_of_k8s_nodes_no_floating_ip" {
  36. default = 1
  37. }
  38. variable "number_of_gfs_nodes_no_floating_ip" {
  39. default = 0
  40. }
  41. variable "bastion_root_volume_size_in_gb" {
  42. default = 0
  43. }
  44. variable "etcd_root_volume_size_in_gb" {
  45. default = 0
  46. }
  47. variable "master_root_volume_size_in_gb" {
  48. default = 0
  49. }
  50. variable "node_root_volume_size_in_gb" {
  51. default = 0
  52. }
  53. variable "gfs_root_volume_size_in_gb" {
  54. default = 0
  55. }
  56. variable "gfs_volume_size_in_gb" {
  57. default = 75
  58. }
  59. variable "public_key_path" {
  60. description = "The path of the ssh pub key"
  61. default = "~/.ssh/id_rsa.pub"
  62. }
  63. variable "image" {
  64. description = "the image to use"
  65. default = ""
  66. }
  67. variable "image_gfs" {
  68. description = "Glance image to use for GlusterFS"
  69. default = ""
  70. }
  71. variable "ssh_user" {
  72. description = "used to fill out tags for ansible inventory"
  73. default = "ubuntu"
  74. }
  75. variable "ssh_user_gfs" {
  76. description = "used to fill out tags for ansible inventory"
  77. default = "ubuntu"
  78. }
  79. variable "flavor_bastion" {
  80. description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs"
  81. default = 3
  82. }
  83. variable "flavor_k8s_master" {
  84. description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs"
  85. default = 3
  86. }
  87. variable "flavor_k8s_node" {
  88. description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs"
  89. default = 3
  90. }
  91. variable "flavor_etcd" {
  92. description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs"
  93. default = 3
  94. }
  95. variable "flavor_gfs_node" {
  96. description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs"
  97. default = 3
  98. }
  99. variable "network_name" {
  100. description = "name of the internal network to use"
  101. default = "internal"
  102. }
  103. variable "network_dns_domain" {
  104. description = "dns_domain for the internal network"
  105. type = "string"
  106. default = null
  107. }
  108. variable "use_neutron" {
  109. description = "Use neutron"
  110. default = 1
  111. }
  112. variable "subnet_cidr" {
  113. description = "Subnet CIDR block."
  114. type = "string"
  115. default = "10.0.0.0/24"
  116. }
  117. variable "dns_nameservers" {
  118. description = "An array of DNS name server names used by hosts in this subnet."
  119. type = "list"
  120. default = []
  121. }
  122. variable "floatingip_pool" {
  123. description = "name of the floating ip pool to use"
  124. default = "external"
  125. }
  126. variable "wait_for_floatingip" {
  127. description = "Terraform will poll the instance until the floating IP has been associated."
  128. default = "false"
  129. }
  130. variable "external_net" {
  131. description = "uuid of the external/public network"
  132. }
  133. variable "supplementary_master_groups" {
  134. description = "supplementary kubespray ansible groups for masters, such kube-node"
  135. default = ""
  136. }
  137. variable "supplementary_node_groups" {
  138. description = "supplementary kubespray ansible groups for worker nodes, such as kube-ingress"
  139. default = ""
  140. }
  141. variable "bastion_allowed_remote_ips" {
  142. description = "An array of CIDRs allowed to SSH to hosts"
  143. type = "list"
  144. default = ["0.0.0.0/0"]
  145. }
  146. variable "master_allowed_remote_ips" {
  147. description = "An array of CIDRs allowed to access API of masters"
  148. type = "list"
  149. default = ["0.0.0.0/0"]
  150. }
  151. variable "k8s_allowed_remote_ips" {
  152. description = "An array of CIDRs allowed to SSH to hosts"
  153. type = "list"
  154. default = []
  155. }
  156. variable "k8s_allowed_egress_ips" {
  157. description = "An array of CIDRs allowed for egress traffic"
  158. type = "list"
  159. default = ["0.0.0.0/0"]
  160. }
  161. variable "worker_allowed_ports" {
  162. type = "list"
  163. default = [
  164. {
  165. "protocol" = "tcp"
  166. "port_range_min" = 30000
  167. "port_range_max" = 32767
  168. "remote_ip_prefix" = "0.0.0.0/0"
  169. },
  170. ]
  171. }
  172. variable "use_access_ip" {
  173. default = 1
  174. }
  175. variable "use_server_groups" {
  176. default = false
  177. }
  178. variable "router_id" {
  179. description = "uuid of an externally defined router to use"
  180. default = null
  181. }
  182. variable "k8s_nodes" {
  183. default = {}
  184. }