Browse Source
Terraform/OpenStack: Enable usage of an existing router (#5890)
pull/5903/head
qvicksilver
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with
28 additions and
5 deletions
-
contrib/terraform/openstack/README.md
-
contrib/terraform/openstack/kubespray.tf
-
contrib/terraform/openstack/modules/network/main.tf
-
contrib/terraform/openstack/modules/network/outputs.tf
-
contrib/terraform/openstack/modules/network/variables.tf
-
contrib/terraform/openstack/variables.tf
|
|
@ -38,6 +38,16 @@ hosts where that makes sense. You have the option of creating bastion hosts |
|
|
|
inside the private subnet to access the nodes there. Alternatively, a node with |
|
|
|
a floating IP can be used as a jump host to nodes without. |
|
|
|
|
|
|
|
#### Using an existing router |
|
|
|
It is possible to use an existing router instead of creating one. To use an |
|
|
|
existing router set the router\_id variable to the uuid of the router you wish |
|
|
|
to use. |
|
|
|
|
|
|
|
For example: |
|
|
|
``` |
|
|
|
router_id = "00c542e7-6f46-4535-ae95-984c7f0391a3" |
|
|
|
``` |
|
|
|
|
|
|
|
### Kubernetes Nodes |
|
|
|
You can create many different kubernetes topologies by setting the number of |
|
|
|
different classes of hosts. For each class there are options for allocating |
|
|
|
|
|
@ -12,6 +12,7 @@ module "network" { |
|
|
|
dns_nameservers = "${var.dns_nameservers}" |
|
|
|
network_dns_domain = "${var.network_dns_domain}" |
|
|
|
use_neutron = "${var.use_neutron}" |
|
|
|
router_id = "${var.router_id}" |
|
|
|
} |
|
|
|
|
|
|
|
module "ips" { |
|
|
|
|
|
@ -1,10 +1,15 @@ |
|
|
|
resource "openstack_networking_router_v2" "k8s" { |
|
|
|
name = "${var.cluster_name}-router" |
|
|
|
count = "${var.use_neutron}" |
|
|
|
count = "${var.use_neutron}" == 1 && "${var.router_id}" == null ? 1 : 0 |
|
|
|
admin_state_up = "true" |
|
|
|
external_network_id = "${var.external_net}" |
|
|
|
} |
|
|
|
|
|
|
|
data "openstack_networking_router_v2" "k8s" { |
|
|
|
router_id = "${var.router_id}" |
|
|
|
count = "${var.use_neutron}" == 1 && "${var.router_id}" != null ? 1 : 0 |
|
|
|
} |
|
|
|
|
|
|
|
resource "openstack_networking_network_v2" "k8s" { |
|
|
|
name = "${var.network_name}" |
|
|
|
count = "${var.use_neutron}" |
|
|
@ -23,6 +28,6 @@ resource "openstack_networking_subnet_v2" "k8s" { |
|
|
|
|
|
|
|
resource "openstack_networking_router_interface_v2" "k8s" { |
|
|
|
count = "${var.use_neutron}" |
|
|
|
router_id = "${openstack_networking_router_v2.k8s[count.index].id}" |
|
|
|
router_id = "%{if openstack_networking_router_v2.k8s != []}${openstack_networking_router_v2.k8s[count.index].id} %{else}${var.router_id} %{endif}" |
|
|
|
subnet_id = "${openstack_networking_subnet_v2.k8s[count.index].id}" |
|
|
|
} |
|
|
@ -1,11 +1,11 @@ |
|
|
|
output "router_id" { |
|
|
|
value = "${element(concat(openstack_networking_router_v2.k8s.*.id, list("")), 0)}" |
|
|
|
value = "%{if var.use_neutron == 1} ${var.router_id == null ? element(concat(openstack_networking_router_v2.k8s.*.id, [""]), 0) : var.router_id} %{else} %{endif}" |
|
|
|
} |
|
|
|
|
|
|
|
output "router_internal_port_id" { |
|
|
|
value = "${element(concat(openstack_networking_router_interface_v2.k8s.*.id, list("")), 0)}" |
|
|
|
value = "${element(concat(openstack_networking_router_interface_v2.k8s.*.id, [""]), 0)}" |
|
|
|
} |
|
|
|
|
|
|
|
output "subnet_id" { |
|
|
|
value = "${element(concat(openstack_networking_subnet_v2.k8s.*.id, list("")), 0)}" |
|
|
|
value = "${element(concat(openstack_networking_subnet_v2.k8s.*.id, [""]), 0)}" |
|
|
|
} |
|
|
@ -13,3 +13,5 @@ variable "dns_nameservers" { |
|
|
|
variable "subnet_cidr" {} |
|
|
|
|
|
|
|
variable "use_neutron" {} |
|
|
|
|
|
|
|
variable "router_id" {} |
|
|
@ -220,3 +220,8 @@ variable "use_access_ip" { |
|
|
|
variable "use_server_groups" { |
|
|
|
default = false |
|
|
|
} |
|
|
|
|
|
|
|
variable "router_id" { |
|
|
|
description = "uuid of an externally defined router to use" |
|
|
|
default = null |
|
|
|
} |