diff --git a/contrib/terraform/openstack/README.md b/contrib/terraform/openstack/README.md index 83d28a17b293ab8fe2d5fe676a7e60bec2b156a2..7e31a93d6b49c3b93927af72b11c2d42cba88c8c 100644 --- a/contrib/terraform/openstack/README.md +++ b/contrib/terraform/openstack/README.md @@ -16,13 +16,13 @@ most modern installs of OpenStack that support the basic services. - [ElastX](https://elastx.se/) - [EnterCloudSuite](https://www.entercloudsuite.com/) - [FugaCloud](https://fuga.cloud/) +- [OVH](https://www.ovh.com/) +- [Rackspace](https://www.rackspace.com/) - [Ultimum](https://ultimum.io/) - [VexxHost](https://vexxhost.com/) - [Zetta](https://www.zetta.io/) ### Known incompatible public clouds -- OVH: No router support -- Rackspace: No router support - T-Systems / Open Telekom Cloud: requires `wait_until_associated` ## Approach diff --git a/contrib/terraform/openstack/kubespray.tf b/contrib/terraform/openstack/kubespray.tf index 8c733e1895f5c58af7c9713addaff102856df852..f2df92a5694238ce6bd3d7ac9714cc4909c14653 100644 --- a/contrib/terraform/openstack/kubespray.tf +++ b/contrib/terraform/openstack/kubespray.tf @@ -6,6 +6,7 @@ module "network" { subnet_cidr = "${var.subnet_cidr}" cluster_name = "${var.cluster_name}" dns_nameservers = "${var.dns_nameservers}" + use_neutron = "${var.use_neutron}" } module "ips" { diff --git a/contrib/terraform/openstack/modules/compute/variables.tf b/contrib/terraform/openstack/modules/compute/variables.tf index 6258a4fabb01b01d6f8c09bcd3b9c029cfb0476d..713e878ab6eb8e48abf6f50b7de8291f13f5f7e3 100644 --- a/contrib/terraform/openstack/modules/compute/variables.tf +++ b/contrib/terraform/openstack/modules/compute/variables.tf @@ -46,7 +46,9 @@ variable "network_name" {} variable "flavor_bastion" {} -variable "network_id" {} +variable "network_id" { + default = "" +} variable "k8s_master_fips" { type = "list" diff --git a/contrib/terraform/openstack/modules/ips/variables.tf b/contrib/terraform/openstack/modules/ips/variables.tf index b5a32d5b22f4fa6b2ea61e63192181b624b437b9..acc3ced38e074f39f101b58955e88a225a90ef00 100644 --- a/contrib/terraform/openstack/modules/ips/variables.tf +++ b/contrib/terraform/openstack/modules/ips/variables.tf @@ -12,4 +12,6 @@ variable "external_net" {} variable "network_name" {} -variable "router_id" {} +variable "router_id" { + default = "" +} diff --git a/contrib/terraform/openstack/modules/network/main.tf b/contrib/terraform/openstack/modules/network/main.tf index 7c02869d4d70f9340663ed7b335ea7ee5b357f26..9c23513395a7d4e0fbbc9968418b473f87ea72e6 100644 --- a/contrib/terraform/openstack/modules/network/main.tf +++ b/contrib/terraform/openstack/modules/network/main.tf @@ -1,16 +1,19 @@ resource "openstack_networking_router_v2" "k8s" { name = "${var.cluster_name}-router" + count = "${var.use_neutron}" admin_state_up = "true" external_network_id = "${var.external_net}" } resource "openstack_networking_network_v2" "k8s" { name = "${var.network_name}" + count = "${var.use_neutron}" admin_state_up = "true" } resource "openstack_networking_subnet_v2" "k8s" { name = "${var.cluster_name}-internal-network" + count = "${var.use_neutron}" network_id = "${openstack_networking_network_v2.k8s.id}" cidr = "${var.subnet_cidr}" ip_version = 4 @@ -18,6 +21,7 @@ resource "openstack_networking_subnet_v2" "k8s" { } resource "openstack_networking_router_interface_v2" "k8s" { + count = "${var.use_neutron}" router_id = "${openstack_networking_router_v2.k8s.id}" subnet_id = "${openstack_networking_subnet_v2.k8s.id}" } diff --git a/contrib/terraform/openstack/modules/network/outputs.tf b/contrib/terraform/openstack/modules/network/outputs.tf index 430cc9181a579a166081a0116fb7915073f92a9d..8da4b69399e956995928e9010e6c4d949314fb81 100644 --- a/contrib/terraform/openstack/modules/network/outputs.tf +++ b/contrib/terraform/openstack/modules/network/outputs.tf @@ -1,11 +1,12 @@ output "router_id" { - value = "${openstack_networking_router_v2.k8s.id}" + value = "${element(concat(openstack_networking_router_v2.k8s.*.id, list("")), 0)}" } output "router_internal_port_id" { - value = "${openstack_networking_router_interface_v2.k8s.id}" + value = "${element(concat(openstack_networking_router_interface_v2.k8s.*.id, list("")), 0)}" + } output "subnet_id" { - value = "${openstack_networking_subnet_v2.k8s.id}" + value = "${element(concat(openstack_networking_subnet_v2.k8s.*.id, list("")), 0)}" } diff --git a/contrib/terraform/openstack/modules/network/variables.tf b/contrib/terraform/openstack/modules/network/variables.tf index 6494358aa3f302a3a97a3dcfe7efd793b8bd3fb7..c19b7e2d70baa75255235e916a6070dd8969c68c 100644 --- a/contrib/terraform/openstack/modules/network/variables.tf +++ b/contrib/terraform/openstack/modules/network/variables.tf @@ -9,3 +9,5 @@ variable "dns_nameservers" { } variable "subnet_cidr" {} + +variable "use_neutron" {} diff --git a/contrib/terraform/openstack/variables.tf b/contrib/terraform/openstack/variables.tf index ddaf00b536388ee609a489027b119e657bdb45aa..cce00549d77e14a2fd07e7b9307e4b9a7cb7541c 100644 --- a/contrib/terraform/openstack/variables.tf +++ b/contrib/terraform/openstack/variables.tf @@ -103,6 +103,11 @@ variable "network_name" { default = "internal" } +variable "use_neutron" { + description = "Use neutron" + default = 1 +} + variable "subnet_cidr" { description = "Subnet CIDR block." type = "string"