3
3
#
4
4
5
5
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
7
7
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 ])
8
8
cluster_autoscaler_default_region = " us-ashburn-1"
9
9
cluster_autoscaler_image_regions = [" us-ashburn-1" , " us-phoenix-1" , " uk-london-1" , " eu-frankfurt-1" ]
10
10
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
13
13
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
18
18
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"
19
20
k8s_major_minor_version = regex (" \\ d+(?:\\ .(?:\\ d+|x)(?:))" , var. oke_node_pools . 0 . node_k8s_version )
20
21
}
21
22
22
23
# 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" {
24
25
metadata {
25
26
name = " cluster-autoscaler"
26
27
namespace = " kube-system"
@@ -29,25 +30,25 @@ resource "kubernetes_service_account" "cluster_autoscaler_sa" {
29
30
k8s-app = " cluster-autoscaler"
30
31
}
31
32
}
32
- automount_service_account_token = false
33
+ automount_service_account_token = true # false
33
34
34
35
count = local. cluster_autoscaler_enabled ? 1 : 0
35
36
}
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"
46
47
47
- depends_on = [kubernetes_service_account . cluster_autoscaler_sa ]
48
+ # depends_on = [kubernetes_service_account.cluster_autoscaler_sa]
48
49
49
- count = local. cluster_autoscaler_enabled ? 1 : 0
50
- }
50
+ # count = local.cluster_autoscaler_enabled ? 1 : 0
51
+ # }
51
52
resource "kubernetes_cluster_role" "cluster_autoscaler_cr" {
52
53
metadata {
53
54
name = " cluster-autoscaler"
@@ -206,7 +207,7 @@ resource "kubernetes_deployment" "cluster_autoscaler_deployment" {
206
207
}
207
208
208
209
spec {
209
- replicas = 3
210
+ replicas = var . cluster_autoscaler_num_of_replicas
210
211
211
212
selector {
212
213
match_labels = {
@@ -246,7 +247,7 @@ resource "kubernetes_deployment" "cluster_autoscaler_deployment" {
246
247
" ./cluster-autoscaler" ,
247
248
" --v=${ local . cluster_autoscaler_log_level_verbosity } " ,
248
249
" --stderrthreshold=info" ,
249
- " --cloud-provider=oci " ,
250
+ " --cloud-provider=${ local . cluster_autoscaler_cloud_provider } " ,
250
251
" --max-node-provision-time=${ local . cluster_autoscaler_max_node_provision_time } " ,
251
252
" --scale-down-delay-after-add=${ local . cluster_autoscaler_scale_down_delay_after_add } " ,
252
253
" --scale-down-unneeded-time=${ local . cluster_autoscaler_scale_down_unneeded_time } " ,
@@ -257,7 +258,8 @@ resource "kubernetes_deployment" "cluster_autoscaler_deployment" {
257
258
" --balancing-ignore-label=internal_addr" ,
258
259
" --balancing-ignore-label=oci.oraclecloud.com/fault-domain"
259
260
],
260
- local. cluster_autoscaler_node_pools )
261
+ local. cluster_autoscaler_node_pools ,
262
+ var. cluster_autoscaler_extra_args )
261
263
image_pull_policy = " Always"
262
264
env {
263
265
name = " OKE_USE_INSTANCE_PRINCIPAL"
0 commit comments