Skip to content

Commit a8ee643

Browse files
committed
feat: cross-cluster mesh
Signed-off-by: Ali Mukadam <ali.mukadam@oracle.com>
1 parent 3e4d2a2 commit a8ee643

File tree

21 files changed

+248
-132
lines changed

21 files changed

+248
-132
lines changed

main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ module "verrazzano" {
9494
verrazzano_load_balancer = var.verrazzano_load_balancer
9595
cluster_ids = merge({ "admin" = module.admin.cluster_id }, module.clusters.cluster_ids)
9696
int_nsg_ids = merge({ "admin" = lookup(module.admin.nsg_ids, "int_lb") }, module.clusters.int_nsg_ids)
97+
int_lb_subnet_ids = merge({ "admin" = lookup(module.admin.subnet_ids, "int_lb") }, module.clusters.int_lb_subnet_ids)
9798
pub_nsg_ids = merge({ "admin" = lookup(module.admin.nsg_ids, "pub_lb") }, module.clusters.pub_nsg_ids)
9899

99100
# verrazzano components

modules/clusters/africa.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# load_balancers = "both"
7575
# preferred_load_balancer = "public"
7676
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
# public_lb_allowed_ports = [80, 443]
8080

modules/clusters/australia.tf

Lines changed: 91 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ module "melbourne" {
5555
# oke cluster options
5656
allow_worker_ssh_access = false
5757
cluster_name = "melbourne"
58-
cni_type = var.preferred_cni
58+
cni_type = var.preferred_cni
5959
control_plane_type = var.oke_control_plane
6060
control_plane_allowed_cidrs = ["0.0.0.0/0"]
6161
kubernetes_version = var.kubernetes_version
@@ -64,8 +64,8 @@ module "melbourne" {
6464

6565

6666
# node pools
67-
kubeproxy_mode = "ipvs"
68-
node_pools = local.managed_nodepools
67+
kubeproxy_mode = "ipvs"
68+
node_pools = local.managed_nodepools
6969
cloudinit_nodepool_common = var.cloudinit_nodepool_common
7070

7171
node_pool_image_type = "oke"
@@ -74,7 +74,7 @@ module "melbourne" {
7474
load_balancers = "both"
7575
preferred_load_balancer = "public"
7676
internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
public_lb_allowed_ports = [80, 443]
8080

@@ -87,91 +87,91 @@ module "melbourne" {
8787

8888
}
8989

90-
# module "sydney" {
91-
# source = "oracle-terraform-modules/oke/oci"
92-
# version = "4.5.9"
93-
94-
# home_region = var.home_region
95-
# region = local.regions["sydney"]
96-
97-
# tenancy_id = var.tenancy_id
98-
99-
# # general oci parameters
100-
# compartment_id = var.compartment_id
101-
# label_prefix = var.label_prefix
102-
103-
# # ssh keys
104-
# ssh_private_key_path = "~/.ssh/id_rsa"
105-
# ssh_public_key_path = "~/.ssh/id_rsa.pub"
106-
107-
# # networking
108-
# create_drg = true
109-
# drg_display_name = "sydney"
110-
111-
# remote_peering_connections = var.connectivity_mode == "mesh" ? { for k, v in merge({ "admin" = true }, var.clusters) : "rpc-to-${k}" => {} if tobool(v) && k != "sydney" } : { "rpc-to-admin" : {} }
112-
113-
# nat_gateway_route_rules = concat([
114-
# {
115-
# destination = lookup(var.admin_region, "vcn_cidr")
116-
# destination_type = "CIDR_BLOCK"
117-
# network_entity_id = "drg"
118-
# description = "To Admin"
119-
# }], var.connectivity_mode == "mesh" ?
120-
# [for c in keys(var.clusters) :
121-
# {
122-
# destination = lookup(lookup(var.cidrs, c), "vcn")
123-
# destination_type = "CIDR_BLOCK"
124-
# network_entity_id = "drg"
125-
# description = "Routing to allow connectivity to ${title(c)} cluster"
126-
# } if tobool(lookup(var.clusters, c) && c != "sydney")] : []
127-
# )
128-
129-
# vcn_cidrs = [lookup(lookup(var.cidrs, lower("sydney")), "vcn")]
130-
# vcn_dns_label = "sydney"
131-
# vcn_name = "sydney"
132-
133-
# # bastion host
134-
# create_bastion_host = false
135-
# upgrade_bastion = false
136-
137-
# # operator host
138-
# create_operator = false
139-
# upgrade_operator = false
140-
# enable_operator_instance_principal = false
141-
142-
143-
# # oke cluster options
144-
# allow_worker_ssh_access = false
145-
# cluster_name = "sydney"
146-
# cni_type = var.preferred_cni
147-
# control_plane_type = var.oke_control_plane
148-
# control_plane_allowed_cidrs = ["0.0.0.0/0"]
149-
# kubernetes_version = var.kubernetes_version
150-
# pods_cidr = lookup(lookup(var.cidrs, lower("sydney")), "pods")
151-
# services_cidr = lookup(lookup(var.cidrs, lower("sydney")), "services")
152-
153-
154-
# # node pools
155-
# kubeproxy_mode = "ipvs"
156-
# node_pools = local.managed_nodepools
157-
# cloudinit_nodepool_common = var.cloudinit_nodepool_common
158-
159-
# node_pool_image_type = "oke"
160-
161-
# # oke load balancers
162-
# load_balancers = "both"
163-
# preferred_load_balancer = "public"
164-
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
165-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
166-
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
167-
# public_lb_allowed_ports = [80, 443]
168-
169-
# providers = {
170-
# oci = oci.sydney
171-
# oci.home = oci.home
172-
# }
173-
174-
# count = tobool(lookup(var.clusters, "sydney")) ? 1 : 0
175-
176-
# }
90+
module "sydney" {
91+
source = "oracle-terraform-modules/oke/oci"
92+
version = "4.5.9"
93+
94+
home_region = var.home_region
95+
region = local.regions["sydney"]
96+
97+
tenancy_id = var.tenancy_id
98+
99+
# general oci parameters
100+
compartment_id = var.compartment_id
101+
label_prefix = var.label_prefix
102+
103+
# ssh keys
104+
ssh_private_key_path = "~/.ssh/id_rsa"
105+
ssh_public_key_path = "~/.ssh/id_rsa.pub"
106+
107+
# networking
108+
create_drg = true
109+
drg_display_name = "sydney"
110+
111+
remote_peering_connections = var.connectivity_mode == "mesh" ? { for k, v in merge({ "admin" = true }, var.clusters) : "rpc-to-${k}" => {} if tobool(v) && k != "sydney" } : { "rpc-to-admin" : {} }
112+
113+
nat_gateway_route_rules = concat([
114+
{
115+
destination = lookup(var.admin_region, "vcn_cidr")
116+
destination_type = "CIDR_BLOCK"
117+
network_entity_id = "drg"
118+
description = "To Admin"
119+
}], var.connectivity_mode == "mesh" ?
120+
[for c in keys(var.clusters) :
121+
{
122+
destination = lookup(lookup(var.cidrs, c), "vcn")
123+
destination_type = "CIDR_BLOCK"
124+
network_entity_id = "drg"
125+
description = "Routing to allow connectivity to ${title(c)} cluster"
126+
} if tobool(lookup(var.clusters, c) && c != "sydney")] : []
127+
)
128+
129+
vcn_cidrs = [lookup(lookup(var.cidrs, lower("sydney")), "vcn")]
130+
vcn_dns_label = "sydney"
131+
vcn_name = "sydney"
132+
133+
# bastion host
134+
create_bastion_host = false
135+
upgrade_bastion = false
136+
137+
# operator host
138+
create_operator = false
139+
upgrade_operator = false
140+
enable_operator_instance_principal = false
141+
142+
143+
# oke cluster options
144+
allow_worker_ssh_access = false
145+
cluster_name = "sydney"
146+
cni_type = var.preferred_cni
147+
control_plane_type = var.oke_control_plane
148+
control_plane_allowed_cidrs = ["0.0.0.0/0"]
149+
kubernetes_version = var.kubernetes_version
150+
pods_cidr = lookup(lookup(var.cidrs, lower("sydney")), "pods")
151+
services_cidr = lookup(lookup(var.cidrs, lower("sydney")), "services")
152+
153+
154+
# node pools
155+
kubeproxy_mode = "ipvs"
156+
node_pools = local.managed_nodepools
157+
cloudinit_nodepool_common = var.cloudinit_nodepool_common
158+
159+
node_pool_image_type = "oke"
160+
161+
# oke load balancers
162+
load_balancers = "both"
163+
preferred_load_balancer = "public"
164+
internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
165+
internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
166+
public_lb_allowed_cidrs = ["0.0.0.0/0"]
167+
public_lb_allowed_ports = [80, 443]
168+
169+
providers = {
170+
oci = oci.sydney
171+
oci.home = oci.home
172+
}
173+
174+
count = tobool(lookup(var.clusters, "sydney")) ? 1 : 0
175+
176+
}
177177

modules/clusters/brazil.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# load_balancers = "both"
7575
# preferred_load_balancer = "public"
7676
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
# public_lb_allowed_ports = [80, 443]
8080

@@ -160,7 +160,7 @@
160160
# load_balancers = "both"
161161
# preferred_load_balancer = "public"
162162
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
163-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
163+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
164164
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
165165
# public_lb_allowed_ports = [80, 443]
166166

modules/clusters/canada.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# load_balancers = "both"
7575
# preferred_load_balancer = "public"
7676
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
# public_lb_allowed_ports = [80, 443]
8080

@@ -160,7 +160,7 @@
160160
# load_balancers = "both"
161161
# preferred_load_balancer = "public"
162162
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
163-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
163+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
164164
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
165165
# public_lb_allowed_ports = [80, 443]
166166

modules/clusters/europe.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# load_balancers = "both"
7575
# preferred_load_balancer = "public"
7676
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
# public_lb_allowed_ports = [80, 443]
8080

@@ -161,7 +161,7 @@
161161
# load_balancers = "both"
162162
# preferred_load_balancer = "public"
163163
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
164-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
164+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
165165
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
166166
# public_lb_allowed_ports = [80, 443]
167167

@@ -248,7 +248,7 @@
248248
# load_balancers = "both"
249249
# preferred_load_balancer = "public"
250250
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
251-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
251+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
252252
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
253253
# public_lb_allowed_ports = [80, 443]
254254

@@ -334,7 +334,7 @@
334334
# load_balancers = "both"
335335
# preferred_load_balancer = "public"
336336
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
337-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
337+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
338338
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
339339
# public_lb_allowed_ports = [80, 443]
340340

@@ -420,7 +420,7 @@
420420
# load_balancers = "both"
421421
# preferred_load_balancer = "public"
422422
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
423-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
423+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
424424
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
425425
# public_lb_allowed_ports = [80, 443]
426426

@@ -506,7 +506,7 @@
506506
# load_balancers = "both"
507507
# preferred_load_balancer = "public"
508508
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
509-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
509+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
510510
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
511511
# public_lb_allowed_ports = [80, 443]
512512

modules/clusters/france.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# load_balancers = "both"
7575
# preferred_load_balancer = "public"
7676
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
# public_lb_allowed_ports = [80, 443]
8080

@@ -160,7 +160,7 @@
160160
# load_balancers = "both"
161161
# preferred_load_balancer = "public"
162162
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
163-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
163+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
164164
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
165165
# public_lb_allowed_ports = [80, 443]
166166

modules/clusters/india.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# load_balancers = "both"
7575
# preferred_load_balancer = "public"
7676
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
# public_lb_allowed_ports = [80, 443]
8080

@@ -160,7 +160,7 @@
160160
# load_balancers = "both"
161161
# preferred_load_balancer = "public"
162162
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
163-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
163+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
164164
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
165165
# public_lb_allowed_ports = [80, 443]
166166

modules/clusters/japan.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# load_balancers = "both"
7575
# preferred_load_balancer = "public"
7676
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
# public_lb_allowed_ports = [80, 443]
8080

@@ -160,7 +160,7 @@
160160
# load_balancers = "both"
161161
# preferred_load_balancer = "public"
162162
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
163-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
163+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
164164
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
165165
# public_lb_allowed_ports = [80, 443]
166166

modules/clusters/korea.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# load_balancers = "both"
7575
# preferred_load_balancer = "public"
7676
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
77-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
77+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
7878
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
7979
# public_lb_allowed_ports = [80, 443]
8080

@@ -160,7 +160,7 @@
160160
# load_balancers = "both"
161161
# preferred_load_balancer = "public"
162162
# internal_lb_allowed_cidrs = [lookup(var.admin_region, "vcn_cidr")]
163-
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
163+
# internal_lb_allowed_ports = [80, 443, 15012, 15017, 15021, 15443]
164164
# public_lb_allowed_cidrs = ["0.0.0.0/0"]
165165
# public_lb_allowed_ports = [80, 443]
166166

0 commit comments

Comments
 (0)