Skip to content

Commit

Permalink
Assign floating IP option for all nodes (#20)
Browse files Browse the repository at this point in the history
  • Loading branch information
Marco Capuccini authored Nov 22, 2018
1 parent 6c26ed0 commit 66f828a
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 30 deletions.
60 changes: 31 additions & 29 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,21 @@ module "network" {

# Create master node
module "master" {
source = "modules/node"
count = "${var.master_count}"
name_prefix = "${var.cluster_prefix}-master"
flavor_name = "${var.master_flavor_name}"
image_name = "${var.image_name}"
network_name = "${module.network.network_name}"
secgroup_name = "${module.secgroup.secgroup_name}"
floating_ip_pool = "${var.floating_ip_pool}"
ssh_user = "${var.ssh_user}"
ssh_key = "${var.ssh_key}"
os_ssh_keypair = "${openstack_compute_keypair_v2.keypair.name}"
ssh_bastion_host = "${element(module.edge.public_ip_list,0)}"
docker_version = "${var.docker_version}"
role = ["controlplane", "etcd"]
source = "modules/node"
count = "${var.master_count}"
name_prefix = "${var.cluster_prefix}-master"
flavor_name = "${var.master_flavor_name}"
image_name = "${var.image_name}"
network_name = "${module.network.network_name}"
secgroup_name = "${module.secgroup.secgroup_name}"
floating_ip_pool = "${var.floating_ip_pool}"
ssh_user = "${var.ssh_user}"
ssh_key = "${var.ssh_key}"
os_ssh_keypair = "${openstack_compute_keypair_v2.keypair.name}"
ssh_bastion_host = "${element(module.edge.public_ip_list,0)}"
docker_version = "${var.docker_version}"
assign_floating_ip = "${var.master_assign_floating_ip}"
role = ["controlplane", "etcd"]

labels = {
node_type = "master"
Expand All @@ -41,20 +42,21 @@ module "master" {

# Create service nodes
module "service" {
source = "modules/node"
count = "${var.service_count}"
name_prefix = "${var.cluster_prefix}-service"
flavor_name = "${var.service_flavor_name}"
image_name = "${var.image_name}"
network_name = "${module.network.network_name}"
secgroup_name = "${module.secgroup.secgroup_name}"
floating_ip_pool = "${var.floating_ip_pool}"
ssh_user = "${var.ssh_user}"
ssh_key = "${var.ssh_key}"
os_ssh_keypair = "${openstack_compute_keypair_v2.keypair.name}"
ssh_bastion_host = "${element(module.edge.public_ip_list,0)}"
docker_version = "${var.docker_version}"
role = ["worker"]
source = "modules/node"
count = "${var.service_count}"
name_prefix = "${var.cluster_prefix}-service"
flavor_name = "${var.service_flavor_name}"
image_name = "${var.image_name}"
network_name = "${module.network.network_name}"
secgroup_name = "${module.secgroup.secgroup_name}"
floating_ip_pool = "${var.floating_ip_pool}"
ssh_user = "${var.ssh_user}"
ssh_key = "${var.ssh_key}"
os_ssh_keypair = "${openstack_compute_keypair_v2.keypair.name}"
ssh_bastion_host = "${element(module.edge.public_ip_list,0)}"
docker_version = "${var.docker_version}"
assign_floating_ip = "${var.service_assign_floating_ip}"
role = ["worker"]

labels = {
node_type = "service"
Expand All @@ -75,7 +77,7 @@ module "edge" {
ssh_key = "${var.ssh_key}"
os_ssh_keypair = "${openstack_compute_keypair_v2.keypair.name}"
docker_version = "${var.docker_version}"
assign_floating_ip = true
assign_floating_ip = "${var.edge_assign_floating_ip}"
allowed_ingress_tcp = [22, 6443]
role = ["worker"]

Expand Down
2 changes: 1 addition & 1 deletion modules/node/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ resource null_resource "prepare_nodes" {
provisioner "remote-exec" {
connection {
# External
bastion_host = "${var.assign_floating_ip ? element(concat(openstack_compute_floatingip_v2.floating_ip.*.address,list("")), count.index) : var.ssh_bastion_host}" # workaround (empty list, no need in TF 0.12)
bastion_host = "${var.assign_floating_ip && var.ssh_bastion_host == "" ? element(concat(openstack_compute_floatingip_v2.floating_ip.*.address,list("")), count.index) : var.ssh_bastion_host}" # workaround (empty list, no need in TF 0.12)
bastion_host_key = "${file(var.ssh_key)}"

# Internal
Expand Down
15 changes: 15 additions & 0 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,18 @@ variable write_cluster_yaml {
description = "If true cluster.yml will be written locally"
default = true
}

variable master_assign_floating_ip {
description = "If true a floating IP is assigned to each master node"
default = false
}

variable service_assign_floating_ip {
description = "If true a floating IP is assigned to each service node"
default = false
}

variable edge_assign_floating_ip {
description = "If true a floating IP is assigned to each edge node"
default = true
}

0 comments on commit 66f828a

Please sign in to comment.