|
|
|
@ -96,25 +96,25 @@ resource "openstack_networking_secgroup_rule_v2" "worker" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_servergroup_v2" "k8s_master" {
|
|
|
|
|
count = "%{ if var.use_server_groups }1%{else}0%{endif}"
|
|
|
|
|
name = "k8s-master-srvgrp"
|
|
|
|
|
count = "%{if var.use_server_groups}1%{else}0%{endif}"
|
|
|
|
|
name = "k8s-master-srvgrp"
|
|
|
|
|
policies = ["anti-affinity"]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_servergroup_v2" "k8s_node" {
|
|
|
|
|
count = "%{ if var.use_server_groups }1%{else}0%{endif}"
|
|
|
|
|
name = "k8s-node-srvgrp"
|
|
|
|
|
count = "%{if var.use_server_groups}1%{else}0%{endif}"
|
|
|
|
|
name = "k8s-node-srvgrp"
|
|
|
|
|
policies = ["anti-affinity"]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_servergroup_v2" "k8s_etcd" {
|
|
|
|
|
count = "%{ if var.use_server_groups }1%{else}0%{endif}"
|
|
|
|
|
name = "k8s-etcd-srvgrp"
|
|
|
|
|
count = "%{if var.use_server_groups}1%{else}0%{endif}"
|
|
|
|
|
name = "k8s-etcd-srvgrp"
|
|
|
|
|
policies = ["anti-affinity"]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "bastion" {
|
|
|
|
|
name = "${var.cluster_name}-bastion-${count.index+1}"
|
|
|
|
|
name = "${var.cluster_name}-bastion-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_bastions}"
|
|
|
|
|
image_name = "${var.image}"
|
|
|
|
|
flavor_id = "${var.flavor_bastion}"
|
|
|
|
@ -153,8 +153,8 @@ resource "openstack_compute_instance_v2" "bastion" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "k8s_master" {
|
|
|
|
|
name = "${var.cluster_name}-k8s-master-${count.index+1}"
|
|
|
|
|
count = "${var.number_of_k8s_masters }"
|
|
|
|
|
name = "${var.cluster_name}-k8s-master-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_k8s_masters}"
|
|
|
|
|
availability_zone = "${element(var.az_list, count.index)}"
|
|
|
|
|
image_name = "${var.image}"
|
|
|
|
|
flavor_id = "${var.flavor_k8s_master}"
|
|
|
|
@ -196,13 +196,13 @@ resource "openstack_compute_instance_v2" "k8s_master" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
provisioner "local-exec" {
|
|
|
|
|
command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element( concat(var.bastion_fips, var.k8s_master_fips), 0)}/ > group_vars/no-floating.yml"
|
|
|
|
|
command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_master_fips), 0)}/ > group_vars/no-floating.yml"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "k8s_master_no_etcd" {
|
|
|
|
|
name = "${var.cluster_name}-k8s-master-ne-${count.index+1}"
|
|
|
|
|
count = "${var.number_of_k8s_masters_no_etcd }"
|
|
|
|
|
name = "${var.cluster_name}-k8s-master-ne-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_k8s_masters_no_etcd}"
|
|
|
|
|
availability_zone = "${element(var.az_list, count.index)}"
|
|
|
|
|
image_name = "${var.image}"
|
|
|
|
|
flavor_id = "${var.flavor_k8s_master}"
|
|
|
|
@ -228,7 +228,7 @@ resource "openstack_compute_instance_v2" "k8s_master_no_etcd" {
|
|
|
|
|
security_groups = ["${openstack_networking_secgroup_v2.k8s_master.name}",
|
|
|
|
|
"${openstack_networking_secgroup_v2.k8s.name}",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dynamic "scheduler_hints" {
|
|
|
|
|
for_each = var.use_server_groups ? [openstack_compute_servergroup_v2.k8s_master[0]] : []
|
|
|
|
|
content {
|
|
|
|
@ -244,18 +244,18 @@ resource "openstack_compute_instance_v2" "k8s_master_no_etcd" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
provisioner "local-exec" {
|
|
|
|
|
command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element( concat(var.bastion_fips, var.k8s_master_fips), 0)}/ > group_vars/no-floating.yml"
|
|
|
|
|
command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_master_fips), 0)}/ > group_vars/no-floating.yml"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "etcd" {
|
|
|
|
|
name = "${var.cluster_name}-etcd-${count.index+1}"
|
|
|
|
|
count = "${var.number_of_etcd }"
|
|
|
|
|
name = "${var.cluster_name}-etcd-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_etcd}"
|
|
|
|
|
availability_zone = "${element(var.az_list, count.index)}"
|
|
|
|
|
image_name = "${var.image}"
|
|
|
|
|
flavor_id = "${var.flavor_etcd}"
|
|
|
|
|
key_pair = "${openstack_compute_keypair_v2.k8s.name}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dynamic "block_device" {
|
|
|
|
|
for_each = var.etcd_root_volume_size_in_gb > 0 ? [var.image] : []
|
|
|
|
|
content {
|
|
|
|
@ -290,7 +290,7 @@ resource "openstack_compute_instance_v2" "etcd" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "k8s_master_no_floating_ip" {
|
|
|
|
|
name = "${var.cluster_name}-k8s-master-nf-${count.index+1}"
|
|
|
|
|
name = "${var.cluster_name}-k8s-master-nf-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_k8s_masters_no_floating_ip}"
|
|
|
|
|
availability_zone = "${element(var.az_list, count.index)}"
|
|
|
|
|
image_name = "${var.image}"
|
|
|
|
@ -316,7 +316,7 @@ resource "openstack_compute_instance_v2" "k8s_master_no_floating_ip" {
|
|
|
|
|
security_groups = ["${openstack_networking_secgroup_v2.k8s_master.name}",
|
|
|
|
|
"${openstack_networking_secgroup_v2.k8s.name}",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dynamic "scheduler_hints" {
|
|
|
|
|
for_each = var.use_server_groups ? [openstack_compute_servergroup_v2.k8s_master[0]] : []
|
|
|
|
|
content {
|
|
|
|
@ -333,7 +333,7 @@ resource "openstack_compute_instance_v2" "k8s_master_no_floating_ip" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "k8s_master_no_floating_ip_no_etcd" {
|
|
|
|
|
name = "${var.cluster_name}-k8s-master-ne-nf-${count.index+1}"
|
|
|
|
|
name = "${var.cluster_name}-k8s-master-ne-nf-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_k8s_masters_no_floating_ip_no_etcd}"
|
|
|
|
|
availability_zone = "${element(var.az_list, count.index)}"
|
|
|
|
|
image_name = "${var.image}"
|
|
|
|
@ -359,7 +359,7 @@ resource "openstack_compute_instance_v2" "k8s_master_no_floating_ip_no_etcd" {
|
|
|
|
|
security_groups = ["${openstack_networking_secgroup_v2.k8s_master.name}",
|
|
|
|
|
"${openstack_networking_secgroup_v2.k8s.name}",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dynamic "scheduler_hints" {
|
|
|
|
|
for_each = var.use_server_groups ? [openstack_compute_servergroup_v2.k8s_master[0]] : []
|
|
|
|
|
content {
|
|
|
|
@ -376,7 +376,7 @@ resource "openstack_compute_instance_v2" "k8s_master_no_floating_ip_no_etcd" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "k8s_node" {
|
|
|
|
|
name = "${var.cluster_name}-k8s-node-${count.index+1}"
|
|
|
|
|
name = "${var.cluster_name}-k8s-node-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_k8s_nodes}"
|
|
|
|
|
availability_zone = "${element(var.az_list_node, count.index)}"
|
|
|
|
|
image_name = "${var.image}"
|
|
|
|
@ -418,12 +418,12 @@ resource "openstack_compute_instance_v2" "k8s_node" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
provisioner "local-exec" {
|
|
|
|
|
command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element( concat(var.bastion_fips, var.k8s_node_fips), 0)}/ > group_vars/no-floating.yml"
|
|
|
|
|
command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_node_fips), 0)}/ > group_vars/no-floating.yml"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "k8s_node_no_floating_ip" {
|
|
|
|
|
name = "${var.cluster_name}-k8s-node-nf-${count.index+1}"
|
|
|
|
|
name = "${var.cluster_name}-k8s-node-nf-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_k8s_nodes_no_floating_ip}"
|
|
|
|
|
availability_zone = "${element(var.az_list_node, count.index)}"
|
|
|
|
|
image_name = "${var.image}"
|
|
|
|
@ -449,7 +449,7 @@ resource "openstack_compute_instance_v2" "k8s_node_no_floating_ip" {
|
|
|
|
|
security_groups = ["${openstack_networking_secgroup_v2.k8s.name}",
|
|
|
|
|
"${openstack_networking_secgroup_v2.worker.name}",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dynamic "scheduler_hints" {
|
|
|
|
|
for_each = var.use_server_groups ? [openstack_compute_servergroup_v2.k8s_node[0]] : []
|
|
|
|
|
content {
|
|
|
|
@ -466,7 +466,7 @@ resource "openstack_compute_instance_v2" "k8s_node_no_floating_ip" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_compute_instance_v2" "glusterfs_node_no_floating_ip" {
|
|
|
|
|
name = "${var.cluster_name}-gfs-node-nf-${count.index+1}"
|
|
|
|
|
name = "${var.cluster_name}-gfs-node-nf-${count.index + 1}"
|
|
|
|
|
count = "${var.number_of_gfs_nodes_no_floating_ip}"
|
|
|
|
|
availability_zone = "${element(var.az_list, count.index)}"
|
|
|
|
|
image_name = "${var.image_gfs}"
|
|
|
|
@ -490,7 +490,7 @@ resource "openstack_compute_instance_v2" "glusterfs_node_no_floating_ip" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
security_groups = ["${openstack_networking_secgroup_v2.k8s.name}"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dynamic "scheduler_hints" {
|
|
|
|
|
for_each = var.use_server_groups ? [openstack_compute_servergroup_v2.k8s_node[0]] : []
|
|
|
|
|
content {
|
|
|
|
@ -535,7 +535,7 @@ resource "openstack_compute_floatingip_associate_v2" "k8s_node" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "openstack_blockstorage_volume_v2" "glusterfs_volume" {
|
|
|
|
|
name = "${var.cluster_name}-glusterfs_volume-${count.index+1}"
|
|
|
|
|
name = "${var.cluster_name}-glusterfs_volume-${count.index + 1}"
|
|
|
|
|
count = "${var.gfs_root_volume_size_in_gb == 0 ? var.number_of_gfs_nodes_no_floating_ip : 0}"
|
|
|
|
|
description = "Non-ephemeral volume for GlusterFS"
|
|
|
|
|
size = "${var.gfs_volume_size_in_gb}"
|
|
|
|
|