Skip to content

Commit 4c2f7b5

Browse files
committed
quick fix 0.8.12
Signed-off-by: junior <junior@users.noreply.github.com>
1 parent 0ff894c commit 4c2f7b5

File tree

12 files changed

+146
-85
lines changed

12 files changed

+146
-85
lines changed

.terraform.lock.hcl

Lines changed: 37 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.8.11
1+
0.8.12

examples/5G-NF-Infra/oke.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,5 +79,6 @@ EOF
7979
# Cluster Tools
8080
# ingress_nginx_enabled = true
8181
# cert_manager_enabled = true
82-
prometheus_enabled = true
82+
prometheus_enabled = true
83+
metrics_server_enabled = true
8384
}

main.tf

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ module "oke_node_pools" {
119119
node_pool_node_shape_config_ocpus = each.value.node_pool_node_shape_config_ocpus
120120
node_pool_node_shape_config_memory_in_gbs = each.value.node_pool_node_shape_config_memory_in_gbs
121121
existent_oke_nodepool_id_for_autoscaler = each.value.existent_oke_nodepool_id_for_autoscaler
122+
node_pool_autoscaler_enabled = try(each.value.node_pool_autoscaler_enabled, true)
122123
node_pool_oke_init_params = each.value.node_pool_oke_init_params
123124
node_pool_cloud_init_parts = each.value.node_pool_cloud_init_parts
124125
public_ssh_key = local.workers_public_ssh_key
@@ -179,8 +180,8 @@ module "oke_cluster_autoscaler" {
179180
region = var.region
180181

181182
## Enable Cluster Autoscaler
182-
cluster_autoscaler_enabled = var.cluster_autoscaler_enabled
183-
oke_node_pools = values(module.oke_node_pools)
183+
# cluster_autoscaler_enabled = var.cluster_autoscaler_enabled
184+
oke_node_pools = [for node_pool in values(module.oke_node_pools) : node_pool if node_pool.node_pool_autoscaler_enabled]
184185

185186
depends_on = [module.oke, module.oke_node_pools]
186187
}
@@ -617,6 +618,15 @@ locals {
617618
udp_options = { max = -1, min = -1, source_port_range = null }
618619
icmp_options = null
619620
}, {
621+
description = "Allow Pods to communicate with Worker Nodes"
622+
destination = lookup(local.network_cidrs, "NODES-REGIONAL-SUBNET-CIDR")
623+
destination_type = "SERVICE_CIDR_BLOCK"
624+
protocol = local.security_list_ports.tcp_protocol_number
625+
stateless = false
626+
tcp_options = { max = -1, min = -1, source_port_range = null }
627+
udp_options = { max = -1, min = -1, source_port_range = null }
628+
icmp_options = null
629+
}, {
620630
description = "Pod to Kubernetes API endpoint communication (when using VCN-native pod networking)"
621631
destination = lookup(local.network_cidrs, "ENDPOINT-REGIONAL-SUBNET-CIDR")
622632
destination_type = "CIDR_BLOCK"

modules/oke-cluster-autoscaler/main.tf

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,25 @@
33
#
44

55
locals {
6-
cluster_autoscaler_supported_k8s_versions = { "1.21" = "1.21.1-3", "1.22" = "1.22.2-4", "1.23" = "1.23.0-4", "1.24" = "1.23.0-4" } # There's no API to get that list. Need to be updated manually
6+
cluster_autoscaler_supported_k8s_versions = var.cluster_autoscaler_supported_k8s_versions # There's no API to get that list. Need to be updated manually
77
cluster_autoscaler_image_version = lookup(local.cluster_autoscaler_supported_k8s_versions, local.k8s_major_minor_version, reverse(values(local.cluster_autoscaler_supported_k8s_versions))[0])
88
cluster_autoscaler_default_region = "us-ashburn-1"
99
cluster_autoscaler_image_regions = ["us-ashburn-1", "us-phoenix-1", "uk-london-1", "eu-frankfurt-1"]
1010
cluster_autoscaler_image_region = contains(local.cluster_autoscaler_image_regions, var.region) ? var.region : local.cluster_autoscaler_default_region
11-
cluster_autoscaler_image = "${local.cluster_autoscaler_image_region}.ocir.io/oracle/oci-cluster-autoscaler:${local.cluster_autoscaler_image_version}"
12-
cluster_autoscaler_log_level_verbosity = 4
11+
cluster_autoscaler_image = var.custom_cluster_autoscaler_image != "" ? var.custom_cluster_autoscaler_image : "${local.cluster_autoscaler_image_region}.ocir.io/oracle/oci-cluster-autoscaler:${local.cluster_autoscaler_image_version}"
12+
cluster_autoscaler_log_level_verbosity = var.cluster_autoscaler_log_level_verbosity
1313
cluster_autoscaler_node_pools = [for map in var.oke_node_pools[*] : "--nodes=${map.node_pool_min_nodes}:${map.node_pool_max_nodes}:${map.node_pool_id}"]
14-
cluster_autoscaler_max_node_provision_time = "25m"
15-
cluster_autoscaler_scale_down_delay_after_add = "10m"
16-
cluster_autoscaler_scale_down_unneeded_time = "10m"
17-
cluster_autoscaler_unremovable_node_recheck_timeout = "5m"
14+
cluster_autoscaler_max_node_provision_time = var.cluster_autoscaler_max_node_provision_time
15+
cluster_autoscaler_scale_down_delay_after_add = var.cluster_autoscaler_scale_down_delay_after_add
16+
cluster_autoscaler_scale_down_unneeded_time = var.cluster_autoscaler_scale_down_unneeded_time
17+
cluster_autoscaler_unremovable_node_recheck_timeout = var.cluster_autoscaler_unremovable_node_recheck_timeout
1818
cluster_autoscaler_enabled = alltrue([contains(keys(local.cluster_autoscaler_supported_k8s_versions), local.k8s_major_minor_version)]) ? var.cluster_autoscaler_enabled : false
19+
cluster_autoscaler_cloud_provider = local.k8s_major_minor_version < "1.24" ? "oci" : "oci-oke"
1920
k8s_major_minor_version = regex("\\d+(?:\\.(?:\\d+|x)(?:))", var.oke_node_pools.0.node_k8s_version)
2021
}
2122

2223
# NOTE: Service Account Terraform resource is not supported with Kubernetes 1.24.
23-
resource "kubernetes_service_account" "cluster_autoscaler_sa" {
24+
resource "kubernetes_service_account_v1" "cluster_autoscaler_sa" {
2425
metadata {
2526
name = "cluster-autoscaler"
2627
namespace = "kube-system"
@@ -29,25 +30,25 @@ resource "kubernetes_service_account" "cluster_autoscaler_sa" {
2930
k8s-app = "cluster-autoscaler"
3031
}
3132
}
32-
automount_service_account_token = false
33+
automount_service_account_token = true # false
3334

3435
count = local.cluster_autoscaler_enabled ? 1 : 0
3536
}
36-
resource "kubernetes_secret" "cluster_autoscaler_sa_secret" {
37-
metadata {
38-
name = "cluster-autoscaler-token-secret"
39-
namespace = "kube-system"
40-
annotations = {
41-
"kubernetes.io/service-account.name" = "cluster-autoscaler"
42-
"kubernetes.io/service-account.namespace" = "kube-system"
43-
}
44-
}
45-
type = "kubernetes.io/service-account-token"
37+
# resource "kubernetes_secret" "cluster_autoscaler_sa_secret" {
38+
# metadata {
39+
# name = "cluster-autoscaler-token-secret"
40+
# namespace = "kube-system"
41+
# annotations = {
42+
# "kubernetes.io/service-account.name" = "cluster-autoscaler"
43+
# "kubernetes.io/service-account.namespace" = "kube-system"
44+
# }
45+
# }
46+
# type = "kubernetes.io/service-account-token"
4647

47-
depends_on = [kubernetes_service_account.cluster_autoscaler_sa]
48+
# depends_on = [kubernetes_service_account.cluster_autoscaler_sa]
4849

49-
count = local.cluster_autoscaler_enabled ? 1 : 0
50-
}
50+
# count = local.cluster_autoscaler_enabled ? 1 : 0
51+
# }
5152
resource "kubernetes_cluster_role" "cluster_autoscaler_cr" {
5253
metadata {
5354
name = "cluster-autoscaler"
@@ -206,7 +207,7 @@ resource "kubernetes_deployment" "cluster_autoscaler_deployment" {
206207
}
207208

208209
spec {
209-
replicas = 3
210+
replicas = var.cluster_autoscaler_num_of_replicas
210211

211212
selector {
212213
match_labels = {
@@ -246,7 +247,7 @@ resource "kubernetes_deployment" "cluster_autoscaler_deployment" {
246247
"./cluster-autoscaler",
247248
"--v=${local.cluster_autoscaler_log_level_verbosity}",
248249
"--stderrthreshold=info",
249-
"--cloud-provider=oci",
250+
"--cloud-provider=${local.cluster_autoscaler_cloud_provider}",
250251
"--max-node-provision-time=${local.cluster_autoscaler_max_node_provision_time}",
251252
"--scale-down-delay-after-add=${local.cluster_autoscaler_scale_down_delay_after_add}",
252253
"--scale-down-unneeded-time=${local.cluster_autoscaler_scale_down_unneeded_time}",
@@ -257,7 +258,8 @@ resource "kubernetes_deployment" "cluster_autoscaler_deployment" {
257258
"--balancing-ignore-label=internal_addr",
258259
"--balancing-ignore-label=oci.oraclecloud.com/fault-domain"
259260
],
260-
local.cluster_autoscaler_node_pools)
261+
local.cluster_autoscaler_node_pools,
262+
var.cluster_autoscaler_extra_args)
261263
image_pull_policy = "Always"
262264
env {
263265
name = "OKE_USE_INSTANCE_PRINCIPAL"

modules/oke-cluster-autoscaler/variables.tf

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,51 @@ variable "cluster_autoscaler_enabled" {
88
default = true
99
description = "Enables OKE cluster autoscaler. Node pools will auto scale based on the resources usage"
1010
}
11-
variable "cluster_autoscaler_min_nodes" {
11+
# variable "cluster_autoscaler_min_nodes" {
12+
# default = 3
13+
# description = "Minimum number of nodes on the node pool to be scheduled by the Kubernetes"
14+
# }
15+
# variable "cluster_autoscaler_max_nodes" {
16+
# default = 10
17+
# description = "Maximum number of nodes on the node pool to be scheduled by the Kubernetes"
18+
# }
19+
variable "cluster_autoscaler_supported_k8s_versions" {
20+
type = map(string)
21+
22+
default = { "1.22" = "1.22.2-4", "1.23" = "1.23.0-4", "1.24" = "1.24.0-5", "1.25" = "1.25.0-6" } # There's no API to get that list. Need to be updated manually
23+
description = "Supported Kubernetes versions for OKE cluster autoscaler"
24+
}
25+
variable "custom_cluster_autoscaler_image" {
26+
default = ""
27+
description = "Custom Image for OKE cluster autoscaler"
28+
}
29+
variable "cluster_autoscaler_log_level_verbosity" {
30+
default = 4
31+
description = "Log level verbosity for OKE cluster autoscaler"
32+
}
33+
variable "cluster_autoscaler_max_node_provision_time" {
34+
default = "25m"
35+
description = "Maximum time in minutes for a node to be provisioned. If the node is not ready after this time, it will be deleted and recreated"
36+
}
37+
variable "cluster_autoscaler_scale_down_delay_after_add" {
38+
default = "10m"
39+
description = "Time to wait after scale up before attempting to scale down"
40+
}
41+
variable "cluster_autoscaler_scale_down_unneeded_time" {
42+
default = "10m"
43+
description = "Time after which a node should be deleted after it has been unneeded for this long"
44+
}
45+
variable "cluster_autoscaler_unremovable_node_recheck_timeout" {
46+
default = "5m"
47+
description = "Time after which a node which failed to be removed is retried"
48+
}
49+
variable "cluster_autoscaler_num_of_replicas" {
1250
default = 3
13-
description = "Minimum number of nodes on the node pool to be scheduled by the Kubernetes"
51+
description = "Number of replicas for OKE cluster autoscaler"
1452
}
15-
variable "cluster_autoscaler_max_nodes" {
16-
default = 10
17-
description = "Maximum number of nodes on the node pool to be scheduled by the Kubernetes"
53+
variable "cluster_autoscaler_extra_args" {
54+
default = []
55+
description = "Extra arguments to pass to OKE cluster autoscaler"
1856
}
1957

2058
## OKE Node Pool Details

modules/oke-node-pool/main.tf

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,6 @@ resource "oci_containerengine_node_pool" "oke_node_pool" {
5656
node_metadata = {
5757
user_data = anytrue([var.node_pool_oke_init_params != "", var.node_pool_cloud_init_parts != []]) ? data.cloudinit_config.nodes.rendered : null
5858
}
59-
# dynamic "node_metadata" {
60-
# for_each = alltrue([var.node_pool_oke_init_params != "", var.node_pool_cloud_init_parts != []]) ? [1] : []
61-
62-
# content {
63-
# user_data = data.cloudinit_config.nodes.rendered
64-
# }
65-
# }
6659

6760
initial_node_labels {
6861
key = "name"
@@ -78,6 +71,12 @@ resource "oci_containerengine_node_pool" "oke_node_pool" {
7871
}
7972
}
8073

74+
lifecycle {
75+
ignore_changes = [
76+
node_config_details.0.size
77+
]
78+
}
79+
8180
count = var.create_new_node_pool ? 1 : 0
8281
}
8382

modules/oke-node-pool/outputs.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ output "node_pool_id" {
1717
output "node_k8s_version" {
1818
value = local.node_k8s_version
1919
}
20+
output "node_pool_autoscaler_enabled" {
21+
value = var.node_pool_autoscaler_enabled
22+
}

modules/oke-node-pool/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ variable "existent_oke_nodepool_id_for_autoscaler" {
7373
default = ""
7474
description = "Nodepool Id of the existent OKE to use with Cluster Autoscaler"
7575
}
76+
variable "node_pool_autoscaler_enabled" {
77+
default = true
78+
description = "Enable Cluster Autoscaler for the node pool"
79+
}
7680
variable "image_operating_system" {
7781
default = "Oracle Linux"
7882
description = "The OS/image installed on all nodes in the node pool."

modules/oke/main.tf

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,9 @@ resource "oci_containerengine_cluster" "oke_cluster" {
5757

5858
# Local kubeconfig for when using Terraform locally. Not used by Oracle Resource Manager
5959
resource "local_file" "oke_kubeconfig" {
60-
content = data.oci_containerengine_cluster_kube_config.oke.content
61-
filename = "${path.root}/generated/kubeconfig"
60+
content = data.oci_containerengine_cluster_kube_config.oke.content
61+
filename = "${path.root}/generated/kubeconfig"
62+
file_permission = "0644"
6263
}
6364

6465
# Get OKE options

providers.tf

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ provider "oci" {
7171
provider "kubernetes" {
7272
host = local.cluster_endpoint
7373
cluster_ca_certificate = local.cluster_ca_certificate
74+
insecure = local.external_private_endpoint
7475
exec {
7576
api_version = "client.authentication.k8s.io/v1beta1"
7677
args = ["ce", "cluster", "generate-token", "--cluster-id", local.cluster_id, "--region", local.cluster_region]
@@ -83,6 +84,7 @@ provider "helm" {
8384
kubernetes {
8485
host = local.cluster_endpoint
8586
cluster_ca_certificate = local.cluster_ca_certificate
87+
insecure = local.external_private_endpoint
8688
exec {
8789
api_version = "client.authentication.k8s.io/v1beta1"
8890
args = ["ce", "cluster", "generate-token", "--cluster-id", local.cluster_id, "--region", local.cluster_region]
@@ -95,7 +97,8 @@ locals {
9597
cluster_endpoint = (var.cluster_endpoint_visibility == "Private") ? (
9698
"https://${module.oke.orm_private_endpoint_oke_api_ip_address}:6443") : (
9799
yamldecode(module.oke.kubeconfig)["clusters"][0]["cluster"]["server"])
98-
cluster_ca_certificate = base64decode(yamldecode(module.oke.kubeconfig)["clusters"][0]["cluster"]["certificate-authority-data"])
99-
cluster_id = yamldecode(module.oke.kubeconfig)["users"][0]["user"]["exec"]["args"][4]
100-
cluster_region = yamldecode(module.oke.kubeconfig)["users"][0]["user"]["exec"]["args"][6]
100+
external_private_endpoint = (var.cluster_endpoint_visibility == "Private") ? true : false
101+
cluster_ca_certificate = base64decode(yamldecode(module.oke.kubeconfig)["clusters"][0]["cluster"]["certificate-authority-data"])
102+
cluster_id = yamldecode(module.oke.kubeconfig)["users"][0]["user"]["exec"]["args"][4]
103+
cluster_region = yamldecode(module.oke.kubeconfig)["users"][0]["user"]["exec"]["args"][6]
101104
}

0 commit comments

Comments
 (0)