diff --git a/bashsource.tf b/bashsource.tf index 8a9c4b7..a4fcf64 100644 --- a/bashsource.tf +++ b/bashsource.tf @@ -4,61 +4,6 @@ resource null_resource "build_source" { } } -resource null_resource "etcd-ad1" { - count = "${var.etcdAd1Count}" - depends_on = [ - "module.instances-etcd-ad1", - "null_resource.build_source" - ] - - triggers { - etcd_id = "${element(module.instances-etcd-ad1.ids, count.index)}" - build_source_id = "${null_resource.build_source.id}" - } - - provisioner "local-exec" { - command = "echo 'alias ${var.label_prefix}etcdad1-${count.index}=\"ssh -i ${path.root}/generated/instances_id_rsa opc@${element(module.instances-etcd-ad1.instance_public_ips, count.index)}\"' >> source.sh" - } -} - -resource null_resource "etcd-ad2" { - count = "${var.etcdAd2Count}" - depends_on = [ - "module.instances-etcd-ad2", - "null_resource.build_source" - ] - - triggers { - etcd_id = "${element(module.instances-etcd-ad2.ids, count.index)}" - build_source_id = "${null_resource.build_source.id}" - } - - provisioner "local-exec" { - command = "echo 'alias ${var.label_prefix}etcdad2-${count.index}=\"ssh -i ${path.root}/generated/instances_id_rsa opc@${element(module.instances-etcd-ad2.instance_public_ips, count.index)}\"' >> source.sh" - } -} - - -resource null_resource "etcd-ad3" { - count = "${var.etcdAd3Count}" - depends_on = [ - "module.instances-etcd-ad3", - ] - - triggers { - etcd_id = "${element(module.instances-etcd-ad3.ids, count.index)}" - build_source_id = "${null_resource.build_source.id}" - } - - provisioner "local-exec" { - command = "echo 'alias ${var.label_prefix}etcad3-${count.index}=\"ssh -i ${path.root}/generated/instances_id_rsa opc@${element(module.instances-etcd-ad3.instance_public_ips, count.index)}\"' >> source.sh" - } -} - - - - - resource null_resource "k8smaster-ad1" { count = "${var.k8sMasterAd1Count}" depends_on = [ diff --git a/datasources.tf b/datasources.tf index 75b1db1..5f949fb 100644 --- a/datasources.tf +++ b/datasources.tf @@ -2,8 +2,3 @@ data "oci_identity_availability_domains" "ADs" { compartment_id = "${var.tenancy_ocid}" } -resource "template_file" "etcd_discovery_url" { - provisioner "local-exec" { - command = "[ -d ${path.root}/generated ] || mkdir -p ${path.root}/generated && curl --retry 3 https://discovery.etcd.io/new?size=${var.etcdAd1Count + var.etcdAd2Count + var.etcdAd3Count} > ${path.root}/generated/discovery${self.id}" - } -} diff --git a/etcd-cluster/datasources.tf b/etcd-cluster/datasources.tf new file mode 100644 index 0000000..75b1db1 --- /dev/null +++ b/etcd-cluster/datasources.tf @@ -0,0 +1,9 @@ +data "oci_identity_availability_domains" "ADs" { + compartment_id = "${var.tenancy_ocid}" +} + +resource "template_file" "etcd_discovery_url" { + provisioner "local-exec" { + command = "[ -d ${path.root}/generated ] || mkdir -p ${path.root}/generated && curl --retry 3 https://discovery.etcd.io/new?size=${var.etcdAd1Count + var.etcdAd2Count + var.etcdAd3Count} > ${path.root}/generated/discovery${self.id}" + } +} diff --git a/instances/etcd/cloud_init/bootstrap.template.sh b/etcd-cluster/instance/cloud_init/bootstrap.template.sh similarity index 100% rename from instances/etcd/cloud_init/bootstrap.template.sh rename to etcd-cluster/instance/cloud_init/bootstrap.template.sh diff --git a/instances/etcd/datasources.tf b/etcd-cluster/instance/datasources.tf similarity index 100% rename from instances/etcd/datasources.tf rename to etcd-cluster/instance/datasources.tf diff --git a/instances/etcd/main.tf b/etcd-cluster/instance/main.tf similarity index 96% rename from instances/etcd/main.tf rename to etcd-cluster/instance/main.tf index cfe5ddd..fa8b058 100644 --- a/instances/etcd/main.tf +++ b/etcd-cluster/instance/main.tf @@ -16,7 +16,7 @@ resource "oci_core_instance" "TFInstanceEtcd" { display_name = "${var.label_prefix}${var.display_name_prefix}-${count.index}" hostname_label = "${var.hostname_label_prefix}-${count.index}" assign_public_ip = "${(var.control_plane_subnet_access == "private") ? "false" : "true"}" - private_ip = "${var.assign_private_ip == "true" ? cidrhost(lookup(var.network_cidrs,var.subnet_name), count.index+2) : ""}" + private_ip = "${var.assign_private_ip == "true" ? cidrhost(var.subnet_cidr, count.index+2) : ""}" }, extended_metadata { diff --git a/instances/etcd/outputs.tf b/etcd-cluster/instance/outputs.tf similarity index 100% rename from instances/etcd/outputs.tf rename to etcd-cluster/instance/outputs.tf diff --git a/instances/etcd/variables.tf b/etcd-cluster/instance/variables.tf similarity index 95% rename from instances/etcd/variables.tf rename to etcd-cluster/instance/variables.tf index 0298ec3..c4f1324 100644 --- a/instances/etcd/variables.tf +++ b/etcd-cluster/instance/variables.tf @@ -1,6 +1,3 @@ -variable "network_cidrs" { - type = "map" -} variable "availability_domain" {} variable "compartment_ocid" {} variable "display_name_prefix" {} @@ -11,7 +8,7 @@ variable "shape" { } variable "subnet_id" {} -variable "subnet_name" {} +variable "subnet_cidr" {} variable "ssh_public_key_openssh" {} variable "domain_name" {} diff --git a/network/loadbalancers/etcd/main.tf b/etcd-cluster/loadbalancer/main.tf similarity index 100% rename from network/loadbalancers/etcd/main.tf rename to etcd-cluster/loadbalancer/main.tf diff --git a/network/loadbalancers/etcd/outputs.tf b/etcd-cluster/loadbalancer/outputs.tf similarity index 100% rename from network/loadbalancers/etcd/outputs.tf rename to etcd-cluster/loadbalancer/outputs.tf diff --git a/network/loadbalancers/etcd/variables.tf b/etcd-cluster/loadbalancer/variables.tf similarity index 100% rename from network/loadbalancers/etcd/variables.tf rename to etcd-cluster/loadbalancer/variables.tf diff --git a/etcd-cluster/main.tf b/etcd-cluster/main.tf new file mode 100644 index 0000000..ab5c646 --- /dev/null +++ b/etcd-cluster/main.tf @@ -0,0 +1,148 @@ + + +module "etcd-lb" { + source = "./loadbalancer" + etcd_lb_enabled = "${var.etcd_lb_enabled}" + compartment_ocid = "${var.compartment_ocid}" + is_private = "${var.etcd_lb_access == "private" ? "true": "false"}" + + # Handle case where var.etcd_lb_access=public, but var.control_plane_subnet_access=private + # etcd_subnet_0_id = "${var.subnet_ad1_id}" + # etcd_subnet_1_id = "${var.subnet_ad2_id}" + # FIXME add LB subnet?? + # For public access??? + # Crazy talk... + etcd_subnet_0_id = "${var.subnet_ad1_id}" + etcd_subnet_1_id = "" # ${var.subnet_ad2_id}" + etcd_ad1_private_ips = "${module.instances-etcd-ad1.private_ips}" + etcd_ad2_private_ips = "${module.instances-etcd-ad2.private_ips}" + etcd_ad3_private_ips = "${module.instances-etcd-ad3.private_ips}" + etcdAd1Count = "${var.etcdAd1Count}" + etcdAd2Count = "${var.etcdAd2Count}" + etcdAd3Count = "${var.etcdAd3Count}" + label_prefix = "${var.label_prefix}" + shape = "${var.etcdLBShape}" +} + + +module "instances-etcd-ad1" { + source = "./instance" + count = "${var.etcdAd1Count}" + + availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[0],"name")}" + # Provider + compartment_ocid = "${var.compartment_ocid}" + tenancy_ocid = "${var.compartment_ocid}" + + # Instancey?? + display_name_prefix = "etcd-ad1" + hostname_label_prefix = "etcd-ad1" + label_prefix = "${var.label_prefix}" + etcd_discovery_url = "${template_file.etcd_discovery_url.id}" + oracle_linux_image_name = "${var.etcd_ol_image_name}" + shape = "${var.etcdShape}" + ssh_public_key_openssh = "${var.ssh_public_key_openssh}" + + # Network + subnet_id = "${var.subnet_ad1_id}" + subnet_cidr = "10.0.20.0/24" + domain_name = "${var.domain_name}" + assign_private_ip = "${var.etcd_maintain_private_ip == "true" ? "true": "false"}" + control_plane_subnet_access = "${var.control_plane_subnet_access}" + + # Network Overlay + flannel_backend = "${var.flannel_config["backend"]}" + flannel_network_cidr = "${var.flannel_config["network_cidr"]}" + flannel_network_subnetlen = "${var.flannel_config["network_subnetlen"]}" + + # Docker + etcd_docker_max_log_size = "${var.docker_config["max_log_size"]}" + etcd_docker_max_log_files = "${var.docker_config["max_log_files"]}" + + # volume + etcd_iscsi_volume_create = "${var.iscsi_volume_config["create"]}" + etcd_iscsi_volume_size = "${var.iscsi_volume_config["size"]}" +} + + +module "instances-etcd-ad2" { + source = "./instance" + count = "${var.etcdAd2Count}" + + availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[1],"name")}" + # Provider + compartment_ocid = "${var.compartment_ocid}" + tenancy_ocid = "${var.compartment_ocid}" + + # Instancey?? + display_name_prefix = "etcd-ad2" + hostname_label_prefix = "etcd-ad2" + label_prefix = "${var.label_prefix}" + etcd_discovery_url = "${template_file.etcd_discovery_url.id}" + oracle_linux_image_name = "${var.etcd_ol_image_name}" + shape = "${var.etcdShape}" + ssh_public_key_openssh = "${var.ssh_public_key_openssh}" + + # Network + subnet_id = "${var.subnet_ad2_id}" + #FIXME + subnet_cidr = "10.0.21.0/24" + domain_name = "${var.domain_name}" + assign_private_ip = "${var.etcd_maintain_private_ip == "true" ? "true": "false"}" + control_plane_subnet_access = "${var.control_plane_subnet_access}" + + # Network Overlay + flannel_backend = "${var.flannel_config["backend"]}" + flannel_network_cidr = "${var.flannel_config["network_cidr"]}" + flannel_network_subnetlen = "${var.flannel_config["network_subnetlen"]}" + + # Docker + etcd_docker_max_log_size = "${var.docker_config["max_log_size"]}" + etcd_docker_max_log_files = "${var.docker_config["max_log_files"]}" + + # volume + etcd_iscsi_volume_create = "${var.iscsi_volume_config["create"]}" + etcd_iscsi_volume_size = "${var.iscsi_volume_config["size"]}" +} + + +module "instances-etcd-ad3" { + source = "./instance" + count = "${var.etcdAd3Count}" + + availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[2],"name")}" + # Provider + compartment_ocid = "${var.compartment_ocid}" + tenancy_ocid = "${var.compartment_ocid}" + + # Instancey?? + display_name_prefix = "etcd-ad3" + hostname_label_prefix = "etcd-ad3" + label_prefix = "${var.label_prefix}" + etcd_discovery_url = "${template_file.etcd_discovery_url.id}" + oracle_linux_image_name = "${var.etcd_ol_image_name}" + shape = "${var.etcdShape}" + ssh_public_key_openssh = "${var.ssh_public_key_openssh}" + + # Network + subnet_id = "${var.subnet_ad3_id}" + #FIXME + subnet_cidr = "10.0.22.0/24" + domain_name = "${var.domain_name}" + assign_private_ip = "${var.etcd_maintain_private_ip == "true" ? "true": "false"}" + control_plane_subnet_access = "${var.control_plane_subnet_access}" + + # Network Overlay + flannel_backend = "${var.flannel_config["backend"]}" + flannel_network_cidr = "${var.flannel_config["network_cidr"]}" + flannel_network_subnetlen = "${var.flannel_config["network_subnetlen"]}" + + # Docker + etcd_docker_max_log_size = "${var.docker_config["max_log_size"]}" + etcd_docker_max_log_files = "${var.docker_config["max_log_files"]}" + + # volume + etcd_iscsi_volume_create = "${var.iscsi_volume_config["create"]}" + etcd_iscsi_volume_size = "${var.iscsi_volume_config["size"]}" +} + diff --git a/etcd-cluster/output.tf b/etcd-cluster/output.tf new file mode 100644 index 0000000..fc45ce9 --- /dev/null +++ b/etcd-cluster/output.tf @@ -0,0 +1,23 @@ +output "etcd_lb_ip" { + value = ["${module.etcd-lb.ip_addresses}"] +} + +output "etcd_public_ips" { + value = "${compact(concat(module.instances-etcd-ad1.instance_public_ips,module.instances-etcd-ad2.instance_public_ips,module.instances-etcd-ad3.instance_public_ips))}" +} + +output "etcd_private_ips" { + value = "${concat(module.instances-etcd-ad1.private_ips,module.instances-etcd-ad2.private_ips,module.instances-etcd-ad3.private_ips)}" +} + + +output "endpoints" { + value = "${var.etcd_lb_enabled == "true" ? + join(",",formatlist("http://%s:2379", module.etcd-lb.ip_addresses)) : + join(",",formatlist("http://%s:2379", compact(concat( + module.instances-etcd-ad1.private_ips, + module.instances-etcd-ad2.private_ips, + module.instances-etcd-ad3.private_ips)))) }" +} + + diff --git a/etcd-cluster/variables.tf b/etcd-cluster/variables.tf new file mode 100644 index 0000000..ff226e1 --- /dev/null +++ b/etcd-cluster/variables.tf @@ -0,0 +1,91 @@ +variable "compartment_ocid" {} +variable "tenancy_ocid" {} + + +variable "vcn" {} + +variable "subnet_ad1_id" {} +variable "subnet_ad2_id" {} +variable "subnet_ad3_id" {} + +variable "control_plane_subnet_access" { + description = "Whether instances in the control plane are launched in a public or private subnets" + default = "public" +} + +variable "domain_name" {} + +variable "etcd_ol_image_name" { + default = "Oracle-Linux-7.4-2018.01.20-0" +} + +variable "label_prefix" { + description = "To create unique identifier for multiple clusters in a compartment." + type = "string" + default = "" +} + +# Load Balancers +variable "etcd_lb_enabled" { + description = "enable/disable the etcd load balancer. true: use the etcd load balancer ip. false:use a list of etcd instance ips." + default = "true" +} + +variable "etcd_lb_access" { + description = "Whether etcd load balancer is launched in a public or private subnet" + default = "private" +} + +variable "etcdLBShape" { + default = "100Mbps" +} + +variable "ssh_public_key_openssh" { + +} + +variable "etcdShape" { + default = "VM.Standard1.1" +} + +variable "docker_config" { + type = "map" + default = { + max_log_size = "50m" + max_log_files = "5" + } +} + +variable "flannel_config" { + type = "map" + default = { + backend = "VXLAN" + network_cidr = "10.99.0.0/16" + network_subnetlen = 24 + } +} + +variable "iscsi_volume_config" { + type = "map" + default = { + create = false + size = 50 + } +} + +variable "etcdAd1Count" { + default = 1 +} + +variable "etcdAd2Count" { + default = 0 +} + +variable "etcdAd3Count" { + default = 0 +} + +variable "etcd_maintain_private_ip" { + default = "false" +} + diff --git a/k8s-oci.tf b/k8s-oci.tf index 4560e86..b871840 100644 --- a/k8s-oci.tf +++ b/k8s-oci.tf @@ -5,13 +5,6 @@ locals { reverse_proxy_clount_init = "${var.master_oci_lb_enabled == "true" ? "" : module.reverse-proxy.clount_init}" reverse_proxy_setup = "${var.master_oci_lb_enabled == "true" ? "" : module.reverse-proxy.setup}" - - etcd_endpoints = "${var.etcd_lb_enabled == "true" ? - join(",",formatlist("http://%s:2379", module.etcd-lb.ip_addresses)) : - join(",",formatlist("http://%s:2379", compact(concat( - module.instances-etcd-ad1.private_ips, - module.instances-etcd-ad2.private_ips, - module.instances-etcd-ad3.private_ips)))) }" } ### CA and Cluster Certificates @@ -109,91 +102,30 @@ module "oci-volume-provisioner" { } ### Compute Instance(s) +module "etcd-cluster" { + source = "./etcd-cluster" -module "instances-etcd-ad1" { - source = "./instances/etcd" - count = "${var.etcdAd1Count}" - availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[0],"name")}" - compartment_ocid = "${var.compartment_ocid}" - control_plane_subnet_access = "${var.control_plane_subnet_access}" - display_name_prefix = "etcd-ad1" - domain_name = "${var.domain_name}" - etcd_discovery_url = "${template_file.etcd_discovery_url.id}" - flannel_backend = "${var.flannel_backend}" - flannel_network_cidr = "10.99.0.0/16" - flannel_network_subnetlen = 24 - hostname_label_prefix = "etcd-ad1" - oracle_linux_image_name = "${var.etcd_ol_image_name}" - label_prefix = "${var.label_prefix}" - shape = "${var.etcdShape}" ssh_public_key_openssh = "${module.k8s-tls.ssh_public_key_openssh}" - network_cidrs = "${var.network_cidrs}" - subnet_id = "${module.vcn.etcd_subnet_ad1_id}" - subnet_name = "etcdSubnetAD1" - tenancy_ocid = "${var.compartment_ocid}" - etcd_docker_max_log_size = "${var.etcd_docker_max_log_size}" - etcd_docker_max_log_files = "${var.etcd_docker_max_log_files}" - etcd_iscsi_volume_create = "${var.etcd_iscsi_volume_create}" - etcd_iscsi_volume_size = "${var.etcd_iscsi_volume_size}" - assign_private_ip = "${var.etcd_maintain_private_ip == "true" ? "true": "false"}" -} - -module "instances-etcd-ad2" { - source = "./instances/etcd" - count = "${var.etcdAd2Count}" - availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[1],"name")}" + label_prefix = "${var.label_prefix}" + + tenancy_ocid = "${var.tenancy_ocid}" compartment_ocid = "${var.compartment_ocid}" - control_plane_subnet_access = "${var.control_plane_subnet_access}" - display_name_prefix = "etcd-ad2" + # Network + vcn = "${module.vcn.id}" + # Maybe a Map + subnet_ad1_id = "${module.vcn.etcd_subnet_ad1_id}" + subnet_ad2_id = "${module.vcn.etcd_subnet_ad2_id}" + subnet_ad3_id = "${module.vcn.etcd_subnet_ad3_id}" domain_name = "${var.domain_name}" - etcd_discovery_url = "${template_file.etcd_discovery_url.id}" - flannel_backend = "${var.flannel_backend}" - flannel_network_cidr = "10.99.0.0/16" - flannel_network_subnetlen = 24 - hostname_label_prefix = "etcd-ad2" - oracle_linux_image_name = "${var.etcd_ol_image_name}" - label_prefix = "${var.label_prefix}" - shape = "${var.etcdShape}" - ssh_public_key_openssh = "${module.k8s-tls.ssh_public_key_openssh}" - network_cidrs = "${var.network_cidrs}" - subnet_id = "${module.vcn.etcd_subnet_ad2_id}" - subnet_name = "etcdSubnetAD2" - tenancy_ocid = "${var.compartment_ocid}" - etcd_docker_max_log_size = "${var.etcd_docker_max_log_size}" - etcd_docker_max_log_files = "${var.etcd_docker_max_log_files}" - etcd_iscsi_volume_create = "${var.etcd_iscsi_volume_create}" - etcd_iscsi_volume_size = "${var.etcd_iscsi_volume_size}" - assign_private_ip = "${var.etcd_maintain_private_ip == "true" ? "true": "false"}" -} -module "instances-etcd-ad3" { - source = "./instances/etcd" - count = "${var.etcdAd3Count}" - availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[2],"name")}" - compartment_ocid = "${var.compartment_ocid}" + etcdShape = "${etcdShape}" + etcdAd1Count = "${var.etcdAd1Count}" + etcdAd2Count = "${var.etcdAd2Count}" + etcdAd3Count = "${var.etcdAd3Count}" + + etcd_lb_enabled = "${etcd_lb_enabled}" + control_plane_subnet_access = "${var.control_plane_subnet_access}" - display_name_prefix = "etcd-ad3" - docker_ver = "${var.docker_ver}" - domain_name = "${var.domain_name}" - etcd_discovery_url = "${template_file.etcd_discovery_url.id}" - etcd_ver = "${var.etcd_ver}" - flannel_backend = "${var.flannel_backend}" - flannel_network_cidr = "10.99.0.0/16" - flannel_network_subnetlen = 24 - hostname_label_prefix = "etcd-ad3" - oracle_linux_image_name = "${var.etcd_ol_image_name}" - label_prefix = "${var.label_prefix}" - shape = "${var.etcdShape}" - ssh_public_key_openssh = "${module.k8s-tls.ssh_public_key_openssh}" - network_cidrs = "${var.network_cidrs}" - subnet_id = "${module.vcn.etcd_subnet_ad3_id}" - subnet_name = "etcdSubnetAD3" - tenancy_ocid = "${var.compartment_ocid}" - etcd_docker_max_log_size = "${var.etcd_docker_max_log_size}" - etcd_docker_max_log_files = "${var.etcd_docker_max_log_files}" - etcd_iscsi_volume_create = "${var.etcd_iscsi_volume_create}" - etcd_iscsi_volume_size = "${var.etcd_iscsi_volume_size}" - assign_private_ip = "${var.etcd_maintain_private_ip == "true" ? "true": "false"}" } module "instances-k8smaster-ad1" { @@ -434,26 +366,6 @@ module "instances-k8sworker-ad3" { } ### Load Balancers - -module "etcd-lb" { - source = "./network/loadbalancers/etcd" - etcd_lb_enabled = "${var.etcd_lb_enabled}" - compartment_ocid = "${var.compartment_ocid}" - is_private = "${var.etcd_lb_access == "private" ? "true": "false"}" - - # Handle case where var.etcd_lb_access=public, but var.control_plane_subnet_access=private - etcd_subnet_0_id = "${var.etcd_lb_access == "private" ? module.vcn.etcd_subnet_ad1_id: coalesce(join(" ", module.vcn.public_subnet_ad1_id), join(" ", list(module.vcn.etcd_subnet_ad1_id)))}" - etcd_subnet_1_id = "${var.etcd_lb_access == "private" ? "": coalesce(join(" ", module.vcn.public_subnet_ad2_id), join(" ", list(module.vcn.etcd_subnet_ad2_id)))}" - etcd_ad1_private_ips = "${module.instances-etcd-ad1.private_ips}" - etcd_ad2_private_ips = "${module.instances-etcd-ad2.private_ips}" - etcd_ad3_private_ips = "${module.instances-etcd-ad3.private_ips}" - etcdAd1Count = "${var.etcdAd1Count}" - etcdAd2Count = "${var.etcdAd2Count}" - etcdAd3Count = "${var.etcdAd3Count}" - label_prefix = "${var.label_prefix}" - shape = "${var.etcdLBShape}" -} - module "k8smaster-public-lb" { source = "./network/loadbalancers/k8smaster" master_oci_lb_enabled = "${var.master_oci_lb_enabled}" diff --git a/outputs.tf b/outputs.tf index 87baaea..921c000 100644 --- a/outputs.tf +++ b/outputs.tf @@ -14,17 +14,6 @@ output "master_lb_backendset_name" { value = "${module.k8smaster-public-lb.backendset_name}" } -output "etcd_lb_id" { - value = "${module.etcd-lb.load_balancer_id}" -} - -output "etcd_lb_backendset_2379_name" { - value = "${module.etcd-lb.backendset_2379_name}" -} - -output "etcd_lb_backendset_2380_name" { - value = "${module.etcd-lb.backendset_2380_name}" -} output "vcn_id" { value = "${module.vcn.id}" @@ -114,15 +103,15 @@ output "ssh_public_key_openssh" { } output "etcd_lb_ip" { - value = ["${module.etcd-lb.ip_addresses}"] + value = ["${module.etcd-cluster.ip_addresses}"] } output "etcd_public_ips" { - value = "${compact(concat(module.instances-etcd-ad1.instance_public_ips,module.instances-etcd-ad2.instance_public_ips,module.instances-etcd-ad3.instance_public_ips))}" + value = "${module.etcd-cluster.etcd_public_ips}" } output "etcd_private_ips" { - value = "${concat(module.instances-etcd-ad1.private_ips,module.instances-etcd-ad2.private_ips,module.instances-etcd-ad3.private_ips)}" + value = "${module.etcd-cluster.etcd_private_ips}" } output "master_lb_ip" {