Skip to content

Commit 9bea9c6

Browse files
committed
feat: upgrade oke module to 5.x branch
Added DRG and bucket for Thanos for each enabled region. Separated each region into their respective files. Updated docs. Signed-off-by: Ali Mukadam <ali.mukadam@oracle.com>
1 parent 2f9531b commit 9bea9c6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+5641
-3073
lines changed

README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
[uri-changelog]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/CHANGELOG.md
22
[uri-docs]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/content/docs
3-
[uri-multi-cluster]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/content/docs/3.-multi-cluster.md
4-
[uri-single-cluster-dev]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/content/docs/1.-single-cluster-dev.md
5-
[uri-single-cluster-prod]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/content/docs/2.-single-cluster-prod.md
3+
[uri-single-cluster-dev]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/src/single/dev.md
4+
[uri-single-cluster-prod]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/src/single/production.md
65
[uri-terraform-oci-oke]: https://github.com/oracle-terraform-modules/terraform-oci-oke
7-
[uri-terraform-options]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/content/docs/5.-terraform-options.md
6+
[uri-terraform-options]: https://github.com/oracle-terraform-modules/terraform-oci-verrazzano/blob/main/docs/src/terraformoptions.md
87
[uri-verrazzano]: https://verrazzano.io
98
[uri-verrazzano-medium]: https://medium.com/verrazzano
109
[uri-verrazzano-slack]: https://bit.ly/3gOeRJn
@@ -18,7 +17,6 @@ This module automates the installation of [Verrazzano Container Platform][uri-ve
1817

1918
* [Create a single cluster with dev profile][uri-single-cluster-dev]
2019
* [Create a single cluster with production profile][uri-single-cluster-prod]
21-
* [Create a multi-cluster][uri-multi-cluster]
2220
* [Terraform Options][uri-terraform-options]
2321

2422

admin.tf

Lines changed: 110 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,35 @@
11
# Copyright (c) 2023 Oracle Corporation and/or its affiliates.
22
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl
33

4+
locals {
5+
all_ports = -1
6+
7+
# keep as reference
8+
# apiserver_port = 6443
9+
10+
# Protocols
11+
# See https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
12+
all_protocols = "all"
13+
icmp_protocol = 1
14+
tcp_protocol = 6
15+
udp_protocol = 17
16+
17+
anywhere = "0.0.0.0/0"
18+
rule_type_nsg = "NETWORK_SECURITY_GROUP"
19+
rule_type_cidr = "CIDR_BLOCK"
20+
rule_type_service = "SERVICE_CIDR_BLOCK"
21+
22+
service_mesh_ports = [80, 443, 15012, 15017, 15021, 15443]
23+
24+
# Todo verify if we need 15021 open for public
25+
public_lb_allowed_ports = [80, 443, 15021]
26+
}
27+
428
module "admin" {
5-
source = "oracle-terraform-modules/oke/oci"
6-
version = "4.5.9"
29+
# source = "oracle-terraform-modules/oke/oci"
30+
# version = "4.5.9"
31+
32+
source = "github.com/oracle-terraform-modules/terraform-oci-oke?ref=5.x&depth=1"
733

834
home_region = local.admin_region
935
region = local.admin_region
@@ -12,28 +38,21 @@ module "admin" {
1238

1339
# general oci parameters
1440
compartment_id = var.compartment_id
15-
label_prefix = var.label_prefix
1641

1742
# ssh keys
1843
ssh_private_key_path = var.ssh_private_key_path
1944
ssh_public_key_path = var.ssh_public_key_path
2045

2146
# networking
22-
create_drg = true
47+
# create_drg = true
2348
drg_display_name = lookup(var.admin_region, "admin_name")
2449

25-
# admin is always connected to everybody
26-
remote_peering_connections = {
27-
for k, v in var.managed_clusters : "rpc-to-${k}" => {} if tobool(v)
28-
}
29-
30-
3150
internet_gateway_route_rules = [
3251
for c in keys(var.managed_clusters) :
3352
{
3453
destination = lookup(lookup(var.cidrs, c), "vcn")
3554
destination_type = "CIDR_BLOCK"
36-
network_entity_id = "drg"
55+
network_entity_id = module.admin_drg.drg_id
3756
description = "Routing to allow ssh to ${title(c)}"
3857
} if tobool(lookup(var.managed_clusters, c))
3958
]
@@ -43,7 +62,7 @@ module "admin" {
4362
{
4463
destination = lookup(lookup(var.cidrs, c), "vcn")
4564
destination_type = "CIDR_BLOCK"
46-
network_entity_id = "drg"
65+
network_entity_id = module.admin_drg.drg_id
4766
description = "Routing to allow connectivity to ${title(c)} cluster"
4867
} if tobool(lookup(var.managed_clusters, c))
4968
]
@@ -52,41 +71,68 @@ module "admin" {
5271
vcn_dns_label = lookup(var.admin_region, "admin_name")
5372
vcn_name = lookup(var.admin_region, "admin_name")
5473

55-
74+
#subnets
75+
subnets = {
76+
bastion = { newbits = 13, dns_label = "bastion" }
77+
operator = { newbits = 13, dns_label = "operator" }
78+
cp = { newbits = 13, dns_label = "cp" }
79+
int_lb = { newbits = 11, dns_label = "ilb" }
80+
pub_lb = { newbits = 11, dns_label = "plb" }
81+
workers = { newbits = 2, dns_label = "workers" }
82+
pods = { newbits = 2, dns_label = "pods" }
83+
}
5684
# bastion host
57-
create_bastion_host = true
58-
upgrade_bastion = false
85+
create_bastion = true
86+
bastion_upgrade = false
87+
bastion_allowed_cidrs = ["0.0.0.0/0"]
88+
5989

6090
# operator host
61-
create_operator = true
62-
upgrade_operator = false
63-
enable_operator_instance_principal = true
91+
create_operator = true
92+
operator_upgrade = false
93+
create_iam_operator_policy = "auto"
6494

6595
# oke cluster options
6696
cluster_name = lookup(var.admin_region, "admin_name")
6797
cni_type = var.preferred_cni
68-
control_plane_type = var.oke_control_plane
69-
control_plane_allowed_cidrs = ["0.0.0.0/0"]
98+
control_plane_is_public = var.oke_control_plane == "public"
99+
control_plane_allowed_cidrs = [local.anywhere]
70100
kubernetes_version = var.kubernetes_version
71101
pods_cidr = lookup(var.admin_region, "pods")
72102
services_cidr = lookup(var.admin_region, "services")
73103

74104

75105
# node pools
76-
kubeproxy_mode = "ipvs"
77-
node_pools = var.nodepools
106+
kubeproxy_mode = "ipvs"
107+
worker_pool_mode = "node-pool"
108+
109+
worker_pools = var.nodepools
78110

79-
cloudinit_nodepool_common = var.cloudinit_nodepool_common
111+
worker_cloud_init = var.worker_cloud_init
80112

81-
node_pool_image_type = "oke"
113+
worker_image_type = "oke"
82114

83115
# oke load balancers
84-
load_balancers = "both"
85-
preferred_load_balancer = "public"
86-
internal_lb_allowed_cidrs = ["0.0.0.0/0"]
87-
internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
88-
public_lb_allowed_cidrs = ["0.0.0.0/0"]
89-
public_lb_allowed_ports = [80, 443, 15021]
116+
load_balancers = "both"
117+
preferred_load_balancer = "public"
118+
119+
allow_rules_internal_lb = {
120+
for p in local.service_mesh_ports :
121+
122+
format("Allow ingress to port %v", p) => {
123+
protocol = local.tcp_protocol, port = p, source = "10.0.0.0/16", source_type = local.rule_type_cidr,
124+
}
125+
}
126+
# internal_lb_allowed_ports = var.connectivity_mode == "mesh" ? [80, 443, 15012, 15017, 15021, 15443] : [80, 443]
127+
# TODO: allow configuration of source cidr
128+
allow_rules_public_lb = {
129+
130+
for p in local.public_lb_allowed_ports :
131+
132+
format("Allow ingress to port %v", p) => {
133+
protocol = local.tcp_protocol, port = p, source = "10.0.0.0/16", source_type = local.rule_type_cidr,
134+
}
135+
}
90136

91137
user_id = var.user_id
92138

@@ -105,3 +151,37 @@ resource "oci_objectstorage_bucket" "thanos_admin" {
105151

106152
count = tobool(lookup(var.thanos, "enabled", "false")) ? 1 : 0
107153
}
154+
155+
156+
module "admin_drg" {
157+
source = "oracle-terraform-modules/drg/oci"
158+
version = "1.0.5"
159+
160+
# general oci parameters
161+
compartment_id = var.compartment_id
162+
label_prefix = var.label_prefix
163+
164+
# drg parameters
165+
drg_display_name = "${lookup(var.admin_region, "admin_name")}-drg"
166+
167+
drg_vcn_attachments = {
168+
drg = {
169+
vcn_id = module.admin.vcn_id
170+
vcn_transit_routing_rt_id = null
171+
drg_route_table_id = null
172+
}
173+
}
174+
175+
# var.drg_id can either contain an existing DRG ID or be null.
176+
drg_id = null
177+
178+
# admin is always connected to everybody
179+
remote_peering_connections = {
180+
for k, v in var.managed_clusters : "rpc-to-${k}" => {} if tobool(v)
181+
}
182+
183+
# count = var.create_drg || var.drg_id != null ? 1 : 0
184+
providers = {
185+
oci = oci.sydney
186+
}
187+
}

docs/src/multi/pri-ep.md

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -125,40 +125,42 @@ Do not remove those that you are not using.
125125
```terraform,editable
126126
output "cluster_ids" {
127127
value = {
128-
# "johannesburg" = join(",", module.johannesburg[*].cluster_id)
129-
# "chuncheon" = join(",", module.chuncheon[*].cluster_id)
130-
# "hyderabad" = join(",", module.hyderabad[*].cluster_id)
131-
# "mumbai" = join(",", module.mumbai[*].cluster_id)
132-
# "osaka" = join(",", module.osaka[*].cluster_id)
133-
# "seoul" = join(",", module.seoul[*].cluster_id)
134-
# "singapore" = join(",", module.singapore[*].cluster_id)
135-
# "tokyo" = join(",", module.tokyo[*].cluster_id)
136-
# "amsterdam" = join(",", module.amsterdam[*].cluster_id)
137-
# "frankfurt" = join(",", module.frankfurt[*].cluster_id)
138-
# "london" = join(",", module.london[*].cluster_id)
139-
# "madrid" = join(",", module.madrid[*].cluster_id)
140-
# "marseille" = join(",", module.marseille[*].cluster_id)
141-
# "milan" = join(",", module.milan[*].cluster_id)
142-
# "newport" = join(",", module.newport[*].cluster_id)
143-
# "paris" = join(",", module.paris[*].cluster_id)
144-
# "stockholm" = join(",", module.stockholm[*].cluster_id)
145-
# "zurich" = join(",", module.zurich[*].cluster_id)
146-
# "abudhabi" = join(",", module.abudhabi[*].cluster_id)
147-
# "dubai" = join(",", module.dubai[*].cluster_id)
148-
# "jeddah" = join(",", module.jeddah[*].cluster_id)
149-
# "jerusalem" = join(",", module.jerusalem[*].cluster_id)
150-
#"melbourne" = join(",", module.melbourne[*].cluster_id)
151-
# "sydney" = join(",", module.sydney[*].cluster_id)
152-
# "santiago" = join(",", module.santiago[*].cluster_id)
153-
# "saupaulo" = join(",", module.saupaulo[*].cluster_id)
154-
# "vinhedo" = join(",", module.vinhedo[*].cluster_id)
155-
# "ashburn" = join(",", module.ashburn[*].cluster_id)
156-
# "chicago" = join(",", module.chicago[*].cluster_id)
157-
# "montreal" = join(",", module.montreal[*].cluster_id)
158-
"phoenix" = join(",", module.phoenix[*].cluster_id)
159-
# "queretaro" = join(",", module.queretaro[*].cluster_id)
160-
# "sanjose" = join(",", module.sanjose[*].cluster_id)
161-
# "toronto" = join(",", module.toronto[*].cluster_id)
128+
# "johannesburg" = one(module.johannesburg[*].cluster_id)
129+
# "chuncheon" = one(module.chuncheon[*].cluster_id)
130+
# "hyderabad" = one(module.hyderabad[*].cluster_id)
131+
# "mumbai" = one(module.mumbai[*].cluster_id)
132+
# "osaka" = one(module.osaka[*].cluster_id)
133+
# "seoul" = one(module.seoul[*].cluster_id)
134+
# "singapore" = one(module.singapore[*].cluster_id)
135+
# "tokyo" = one(module.tokyo[*].cluster_id)
136+
# "amsterdam" = one(module.amsterdam[*].cluster_id)
137+
# "frankfurt" = one(module.frankfurt[*].cluster_id)
138+
# "london" = one(module.london[*].cluster_id)
139+
# "madrid" = one(module.madrid[*].cluster_id)
140+
# "marseille" = one(module.marseille[*].cluster_id)
141+
# "milan" = one(module.milan[*].cluster_id)
142+
# "newport" = one(module.newport[*].cluster_id)
143+
# "paris" = one(module.paris[*].cluster_id)
144+
# "stockholm" = one(module.stockholm[*].cluster_id)
145+
# "zurich" = one(module.zurich[*].cluster_id)
146+
# "abudhabi" = one(module.abudhabi[*].cluster_id)
147+
# "dubai" = one(module.dubai[*].cluster_id)
148+
# "jeddah" = one(module.jeddah[*].cluster_id)
149+
# "jerusalem" = one(module.jerusalem[*].cluster_id)
150+
# "melbourne" = one(module.melbourne[*].cluster_id)
151+
# "sydney" = one(module.sydney[*].cluster_id)
152+
"melbourne" = one(module.melbourne[*].cluster_id)
153+
# "sydney" = one(module.sydney[*].cluster_id)
154+
# "santiago" = one(module.santiago[*].cluster_id)
155+
# "saupaulo" = one(module.saupaulo[*].cluster_id)
156+
# "vinhedo" = one(module.vinhedo[*].cluster_id)
157+
# "ashburn" = one(module.ashburn[*].cluster_id)
158+
# "chicago" = one(module.chicago[*].cluster_id)
159+
# "montreal" = one(module.montreal[*].cluster_id)
160+
# "phoenix" = one(module.phoenix[*].cluster_id)
161+
# "queretaro" = one(module.queretaro[*].cluster_id)
162+
# "sanjose" = one(module.sanjose[*].cluster_id)
163+
# "toronto" = one(module.toronto[*].cluster_id)
162164
}
163165
}
164166
```
@@ -344,7 +346,7 @@ done
344346
- fingerprint
345347
- and the private key
346348

347-
```
349+
```bash,editable
348350
cd /home/opc/vz/clusters
349351
for cluster in admin phoenix; do
350352
kubectx $cluster

docs/src/multi/pub-ep.md

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -124,40 +124,42 @@ Do not remove those that you are not using.
124124
```terraform,editable
125125
output "cluster_ids" {
126126
value = {
127-
# "johannesburg" = join(",", module.johannesburg[*].cluster_id)
128-
# "chuncheon" = join(",", module.chuncheon[*].cluster_id)
129-
# "hyderabad" = join(",", module.hyderabad[*].cluster_id)
130-
# "mumbai" = join(",", module.mumbai[*].cluster_id)
131-
# "osaka" = join(",", module.osaka[*].cluster_id)
132-
# "seoul" = join(",", module.seoul[*].cluster_id)
133-
# "singapore" = join(",", module.singapore[*].cluster_id)
134-
# "tokyo" = join(",", module.tokyo[*].cluster_id)
135-
# "amsterdam" = join(",", module.amsterdam[*].cluster_id)
136-
# "frankfurt" = join(",", module.frankfurt[*].cluster_id)
137-
# "london" = join(",", module.london[*].cluster_id)
138-
# "madrid" = join(",", module.madrid[*].cluster_id)
139-
# "marseille" = join(",", module.marseille[*].cluster_id)
140-
# "milan" = join(",", module.milan[*].cluster_id)
141-
# "newport" = join(",", module.newport[*].cluster_id)
142-
# "paris" = join(",", module.paris[*].cluster_id)
143-
# "stockholm" = join(",", module.stockholm[*].cluster_id)
144-
# "zurich" = join(",", module.zurich[*].cluster_id)
145-
# "abudhabi" = join(",", module.abudhabi[*].cluster_id)
146-
# "dubai" = join(",", module.dubai[*].cluster_id)
147-
# "jeddah" = join(",", module.jeddah[*].cluster_id)
148-
# "jerusalem" = join(",", module.jerusalem[*].cluster_id)
149-
#"melbourne" = join(",", module.melbourne[*].cluster_id)
150-
# "sydney" = join(",", module.sydney[*].cluster_id)
151-
# "santiago" = join(",", module.santiago[*].cluster_id)
152-
# "saupaulo" = join(",", module.saupaulo[*].cluster_id)
153-
# "vinhedo" = join(",", module.vinhedo[*].cluster_id)
154-
# "ashburn" = join(",", module.ashburn[*].cluster_id)
155-
# "chicago" = join(",", module.chicago[*].cluster_id)
156-
# "montreal" = join(",", module.montreal[*].cluster_id)
157-
"phoenix" = join(",", module.phoenix[*].cluster_id)
158-
# "queretaro" = join(",", module.queretaro[*].cluster_id)
159-
# "sanjose" = join(",", module.sanjose[*].cluster_id)
160-
# "toronto" = join(",", module.toronto[*].cluster_id)
127+
# "johannesburg" = one(module.johannesburg[*].cluster_id)
128+
# "chuncheon" = one(module.chuncheon[*].cluster_id)
129+
# "hyderabad" = one(module.hyderabad[*].cluster_id)
130+
# "mumbai" = one(module.mumbai[*].cluster_id)
131+
# "osaka" = one(module.osaka[*].cluster_id)
132+
# "seoul" = one(module.seoul[*].cluster_id)
133+
# "singapore" = one(module.singapore[*].cluster_id)
134+
# "tokyo" = one(module.tokyo[*].cluster_id)
135+
# "amsterdam" = one(module.amsterdam[*].cluster_id)
136+
# "frankfurt" = one(module.frankfurt[*].cluster_id)
137+
# "london" = one(module.london[*].cluster_id)
138+
# "madrid" = one(module.madrid[*].cluster_id)
139+
# "marseille" = one(module.marseille[*].cluster_id)
140+
# "milan" = one(module.milan[*].cluster_id)
141+
# "newport" = one(module.newport[*].cluster_id)
142+
# "paris" = one(module.paris[*].cluster_id)
143+
# "stockholm" = one(module.stockholm[*].cluster_id)
144+
# "zurich" = one(module.zurich[*].cluster_id)
145+
# "abudhabi" = one(module.abudhabi[*].cluster_id)
146+
# "dubai" = one(module.dubai[*].cluster_id)
147+
# "jeddah" = one(module.jeddah[*].cluster_id)
148+
# "jerusalem" = one(module.jerusalem[*].cluster_id)
149+
# "melbourne" = one(module.melbourne[*].cluster_id)
150+
# "sydney" = one(module.sydney[*].cluster_id)
151+
"melbourne" = one(module.melbourne[*].cluster_id)
152+
# "sydney" = one(module.sydney[*].cluster_id)
153+
# "santiago" = one(module.santiago[*].cluster_id)
154+
# "saupaulo" = one(module.saupaulo[*].cluster_id)
155+
# "vinhedo" = one(module.vinhedo[*].cluster_id)
156+
# "ashburn" = one(module.ashburn[*].cluster_id)
157+
# "chicago" = one(module.chicago[*].cluster_id)
158+
# "montreal" = one(module.montreal[*].cluster_id)
159+
# "phoenix" = one(module.phoenix[*].cluster_id)
160+
# "queretaro" = one(module.queretaro[*].cluster_id)
161+
# "sanjose" = one(module.sanjose[*].cluster_id)
162+
# "toronto" = one(module.toronto[*].cluster_id)
161163
}
162164
}
163165
```
@@ -328,7 +330,7 @@ done
328330
- fingerprint
329331
- and the private key
330332

331-
```
333+
```bash,editable
332334
cd /home/opc/vz/clusters
333335
for cluster in admin phoenix; do
334336
kubectx $cluster

0 commit comments

Comments
 (0)