diff --git a/contrib/terraform/openstack/kubespray.tf b/contrib/terraform/openstack/kubespray.tf
index 278b8152be644e39368bf78f4e13c8e5f679ba29..b53cccab7f23c6833007de86b21eda94ec707e4a 100644
--- a/contrib/terraform/openstack/kubespray.tf
+++ b/contrib/terraform/openstack/kubespray.tf
@@ -53,6 +53,7 @@ module "compute" {
   network_name                                 = "${var.network_name}"
   flavor_bastion                               = "${var.flavor_bastion}"
   k8s_master_fips                              = "${module.ips.k8s_master_fips}"
+  k8s_master_no_etcd_fips                      = "${module.ips.k8s_master_no_etcd_fips}"
   k8s_node_fips                                = "${module.ips.k8s_node_fips}"
   bastion_fips                                 = "${module.ips.bastion_fips}"
   bastion_allowed_remote_ips                   = "${var.bastion_allowed_remote_ips}"
@@ -79,7 +80,7 @@ output "router_id" {
 }
 
 output "k8s_master_fips" {
-  value = "${module.ips.k8s_master_fips}"
+  value = "${concat(module.ips.k8s_master_fips, module.ips.k8s_master_no_etcd_fips)}"
 }
 
 output "k8s_node_fips" {
diff --git a/contrib/terraform/openstack/modules/compute/main.tf b/contrib/terraform/openstack/modules/compute/main.tf
index 9e35d4d7c13cf0c043471767a1df072310199578..c745021a8126bcfbd3a10c4b76d099bb74b76459 100644
--- a/contrib/terraform/openstack/modules/compute/main.tf
+++ b/contrib/terraform/openstack/modules/compute/main.tf
@@ -296,6 +296,12 @@ resource "openstack_compute_floatingip_associate_v2" "k8s_master" {
   floating_ip = "${var.k8s_master_fips[count.index]}"
 }
 
+resource "openstack_compute_floatingip_associate_v2" "k8s_master_no_etcd" {
+  count       = "${var.number_of_k8s_masters_no_etcd}"
+  instance_id = "${element(openstack_compute_instance_v2.k8s_master_no_etcd.*.id, count.index)}"
+  floating_ip = "${var.k8s_master_no_etcd_fips[count.index]}"
+}
+
 resource "openstack_compute_floatingip_associate_v2" "k8s_node" {
   count       = "${var.number_of_k8s_nodes}"
   floating_ip = "${var.k8s_node_fips[count.index]}"
diff --git a/contrib/terraform/openstack/modules/compute/variables.tf b/contrib/terraform/openstack/modules/compute/variables.tf
index dfb4381282427d7a4745fc7bdc92f4ab157a21bc..004342dc4266d0436e5390d2d1a56097a16ea468 100644
--- a/contrib/terraform/openstack/modules/compute/variables.tf
+++ b/contrib/terraform/openstack/modules/compute/variables.tf
@@ -54,6 +54,10 @@ variable "k8s_master_fips" {
   type = "list"
 }
 
+variable "k8s_master_no_etcd_fips" {
+  type = "list"
+}
+
 variable "k8s_node_fips" {
   type = "list"
 }
diff --git a/contrib/terraform/openstack/modules/ips/main.tf b/contrib/terraform/openstack/modules/ips/main.tf
index 43d543307fde888b080bc828754745192732441b..d3b06609e9ae51882bae59b835d426a56ee04ca0 100644
--- a/contrib/terraform/openstack/modules/ips/main.tf
+++ b/contrib/terraform/openstack/modules/ips/main.tf
@@ -10,6 +10,12 @@ resource "openstack_networking_floatingip_v2" "k8s_master" {
   depends_on = ["null_resource.dummy_dependency"]
 }
 
+resource "openstack_networking_floatingip_v2" "k8s_master_no_etcd" {
+  count      = "${var.number_of_k8s_masters_no_etcd}"
+  pool       = "${var.floatingip_pool}"
+  depends_on = ["null_resource.dummy_dependency"]
+}
+
 resource "openstack_networking_floatingip_v2" "k8s_node" {
   count      = "${var.number_of_k8s_nodes}"
   pool       = "${var.floatingip_pool}"
diff --git a/contrib/terraform/openstack/modules/ips/outputs.tf b/contrib/terraform/openstack/modules/ips/outputs.tf
index 10bea5519fc0de17373060ece4a234282b33d29a..1b2ed6aa2f8852359e647532f75b1fd0e5681a3f 100644
--- a/contrib/terraform/openstack/modules/ips/outputs.tf
+++ b/contrib/terraform/openstack/modules/ips/outputs.tf
@@ -2,6 +2,10 @@ output "k8s_master_fips" {
   value = ["${openstack_networking_floatingip_v2.k8s_master.*.address}"]
 }
 
+output "k8s_master_no_etcd_fips" {
+  value = ["${openstack_networking_floatingip_v2.k8s_master_no_etcd.*.address}"]
+}
+
 output "k8s_node_fips" {
   value = ["${openstack_networking_floatingip_v2.k8s_node.*.address}"]
 }