From 6df1a74d419cc6d1ae64a94c1c22a7cd63e46db9 Mon Sep 17 00:00:00 2001 From: Serge Logvinov Date: Thu, 16 Feb 2023 11:33:54 +0200 Subject: [PATCH] ovh tricks --- openstack/instances-controlplane.tf | 6 ++---- openstack/instances-web.tf | 2 +- openstack/instances-workers.tf | 2 +- openstack/modules/worker/main.tf | 2 +- openstack/prepare/outputs.tf | 4 +++- openstack/templates/controlplane.yaml.tpl | 1 + openstack/templates/worker.yaml.tpl | 4 ++++ openstack/variables.tf | 2 +- 8 files changed, 14 insertions(+), 9 deletions(-) diff --git a/openstack/instances-controlplane.tf b/openstack/instances-controlplane.tf index f69fa17..f28532c 100644 --- a/openstack/instances-controlplane.tf +++ b/openstack/instances-controlplane.tf @@ -18,10 +18,8 @@ module "controlplane" { instance_tags = concat(var.tags, ["infra"]) instance_secgroups = [local.network_secgroup[each.key].common, local.network_secgroup[each.key].controlplane] instance_params = merge(var.kubernetes, { - lbv4 = local.lbv4 - # routes: ${indent(10,routes)} - # routes = "\n${join("\n", formatlist("- network: %s", flatten([for zone in local.regions : local.network_subnets[zone] if zone != each.key])))}" - + lbv4 = local.lbv4 + routes = "\n${join("\n", formatlist(" - network: %s", flatten([for zone in local.regions : local.network_subnets[zone]])))}" region = each.key auth = local.openstack_auth_url project_id = local.project_id diff --git a/openstack/instances-web.tf b/openstack/instances-web.tf index afb75ba..0d16696 100644 --- a/openstack/instances-web.tf +++ b/openstack/instances-web.tf @@ -22,7 +22,7 @@ module "web" { ipv4_local_network = local.network[each.key].cidr ipv4_local_gw = local.network_public[each.key].gateway lbv4 = module.controlplane[each.key].controlplane_lb != "" ? module.controlplane[each.key].controlplane_lb : one(local.lbv4s) - # routes = "\n${join("\n", formatlist("- network: %s", flatten([for zone in local.regions : local.network_subnets[zone] if zone != each.key])))}" + routes = "${join("\n ", formatlist("- network: %s", flatten([for zone in local.regions : local.network_subnets[zone]])))}" }) network_internal = local.network_public[each.key] diff --git a/openstack/instances-workers.tf b/openstack/instances-workers.tf index 4376291..63af193 100644 --- a/openstack/instances-workers.tf +++ b/openstack/instances-workers.tf @@ -14,7 +14,7 @@ module "worker" { ipv4_local_network = local.network[each.key].cidr ipv4_local_gw = local.network_private[each.key].gateway lbv4 = module.controlplane[each.key].controlplane_lb != "" ? module.controlplane[each.key].controlplane_lb : one(local.lbv4s) - routes = "\n${join("\n", formatlist("- network: %s", flatten([for zone in local.regions : local.network_subnets[zone] if zone != each.key])))}" + routes = "${join("\n ", formatlist("- network: %s", flatten([for zone in local.regions : local.network_subnets[zone]])))}" }) network_internal = local.network_private[each.key] diff --git a/openstack/modules/worker/main.tf b/openstack/modules/worker/main.tf index 7bcddcf..040c9e3 100644 --- a/openstack/modules/worker/main.tf +++ b/openstack/modules/worker/main.tf @@ -80,7 +80,7 @@ resource "local_file" "worker" { merge(var.instance_params, { name = "${var.instance_name}-${lower(var.region)}-${count.index + 1}" labels = local.worker_labels - iface = try(var.network_external.name, "") == "" ? "eth0" : "eth1" + iface = length(try(var.network_external, {})) == 0 ? "eth0" : "eth1" nodeSubnets = var.network_internal.cidr }) ) diff --git a/openstack/prepare/outputs.tf b/openstack/prepare/outputs.tf index 85561a8..2278aeb 100644 --- a/openstack/prepare/outputs.tf +++ b/openstack/prepare/outputs.tf @@ -8,7 +8,7 @@ output "network" { value = { for zone, network in local.network_id : zone => { name = var.network_name id = network.id - cidr = var.network_cidr + cidr = cidrsubnet(var.network_cidr, 6, (var.network_shift + index(var.regions, zone))) cidr_v6 = local.network_cidr_v6 mtu = network.mtu } } @@ -33,6 +33,7 @@ output "network_public" { cidr = subnet.cidr cidr_v6 = openstack_networking_subnet_v2.private_v6[zone].cidr gateway = subnet.gateway_ip != "" ? subnet.gateway_ip : cidrhost(subnet.cidr, 1) + gateway_v6 = cidrhost(openstack_networking_subnet_v2.private_v6[zone].cidr, 1) mtu = local.network_id[zone].mtu } } } @@ -45,6 +46,7 @@ output "network_private" { cidr = subnet.cidr cidr_v6 = openstack_networking_subnet_v2.private_v6[zone].cidr gateway = subnet.gateway_ip != "" ? subnet.gateway_ip : cidrhost(subnet.cidr, 1) + gateway_v6 = cidrhost(openstack_networking_subnet_v2.private_v6[zone].cidr, 1) mtu = local.network_id[zone].mtu } } } diff --git a/openstack/templates/controlplane.yaml.tpl b/openstack/templates/controlplane.yaml.tpl index bf07062..ea01252 100644 --- a/openstack/templates/controlplane.yaml.tpl +++ b/openstack/templates/controlplane.yaml.tpl @@ -35,6 +35,7 @@ machine: - ${ipv4_local}/24 vip: ip: ${ipv4_local_vip} + routes: ${routes} - interface: dummy0 addresses: - 169.254.2.53/32 diff --git a/openstack/templates/worker.yaml.tpl b/openstack/templates/worker.yaml.tpl index bd347da..9c4de1c 100644 --- a/openstack/templates/worker.yaml.tpl +++ b/openstack/templates/worker.yaml.tpl @@ -19,6 +19,10 @@ machine: network: hostname: "${name}" interfaces: + - interface: ${iface} + dhcp: true + routes: + ${routes} - interface: dummy0 addresses: - 169.254.2.53/32 diff --git a/openstack/variables.tf b/openstack/variables.tf index 90c1dbe..c4424ef 100644 --- a/openstack/variables.tf +++ b/openstack/variables.tf @@ -19,7 +19,7 @@ locals { network = data.terraform_remote_state.prepare.outputs.network network_public = data.terraform_remote_state.prepare.outputs.network_public network_private = data.terraform_remote_state.prepare.outputs.network_private - network_subnets = { for zone in local.regions : zone => [local.network_public[zone].cidr, local.network_private[zone].cidr] } + network_subnets = { for zone in local.regions : zone => [local.network[zone].cidr] } network_secgroup = data.terraform_remote_state.prepare.outputs.network_secgroup }