File tree Expand file tree Collapse file tree 6 files changed +120
-0
lines changed Expand file tree Collapse file tree 6 files changed +120
-0
lines changed Original file line number Diff line number Diff line change @@ -50,6 +50,20 @@ module "karpenter" {
50
50
node_role_arn = var. karpenter . node_role_arn
51
51
}
52
52
53
+ module "keda" {
54
+ count = var. keda . enabled ? 1 : 0
55
+ source = " ./modules/keda"
56
+
57
+ namespace = var. keda . namespace
58
+ repository = var. keda . repository
59
+ replicas = var. keda . replicas
60
+ log_level = var. keda . log_level
61
+ metrics_server = var. keda . metrics_server
62
+ node_selector = var. keda . node_selector
63
+ tolerations = var. keda . tolerations
64
+ pod_annotations = var. keda . pod_annotations
65
+ }
66
+
53
67
module "external_secrets" {
54
68
count = var. external_secrets . enabled ? 1 : 0
55
69
Original file line number Diff line number Diff line change
1
+ resource "helm_release" "keda" {
2
+ name = " keda"
3
+ repository = var. repository
4
+ chart = " keda"
5
+ namespace = var. namespace
6
+ version = " 2.16.1"
7
+
8
+ values = [
9
+ yamlencode ({
10
+ replicas = var.replicas
11
+ logLevel = var.log_level
12
+ metricsServer = { enabled = var.metrics_server }
13
+ nodeSelector = var.node_selector
14
+ tolerations = var.tolerations
15
+ podAnnotations = var.pod_annotations
16
+ })
17
+ ]
18
+ }
19
+
Original file line number Diff line number Diff line change
1
+ variable "namespace" {
2
+ description = " Namespace where Keda will be deployed"
3
+ type = string
4
+ default = " cluster-apps"
5
+ }
6
+
7
+ variable "repository" {
8
+ description = " Helm repository URL for Keda"
9
+ type = string
10
+ default = " https://kedacore.github.io/charts"
11
+ }
12
+
13
+ variable "replicas" {
14
+ description = " Number of replicas for Keda operator"
15
+ type = number
16
+ default = 2
17
+ }
18
+
19
+ variable "log_level" {
20
+ description = " Logging level for Keda operator"
21
+ type = string
22
+ default = " info"
23
+ }
24
+
25
+ variable "metrics_server" {
26
+ description = " Enable Keda's Prometheus metrics adapter"
27
+ type = bool
28
+ default = true
29
+ }
30
+
31
+ variable "node_selector" {
32
+ description = " Node selector for Keda pods"
33
+ type = map (string )
34
+ default = {}
35
+ }
36
+
37
+ variable "tolerations" {
38
+ description = " Tolerations for Keda pods"
39
+ type = list (object ({
40
+ key = string
41
+ operator = string
42
+ value = optional (string , null )
43
+ effect = optional (string , null )
44
+ }))
45
+ default = []
46
+ }
47
+
48
+ variable "pod_annotations" {
49
+ description = " Annotations for Keda pods"
50
+ type = map (string )
51
+ default = {}
52
+ }
Original file line number Diff line number Diff line change
1
+ terraform {
2
+ required_version = " >= 1.9, < 2.0"
3
+
4
+ required_providers {
5
+ kubernetes = {
6
+ source = " hashicorp/kubernetes"
7
+ version = " ~> 2.30"
8
+ }
9
+ helm = {
10
+ source = " hashicorp/helm"
11
+ version = " ~> 2.14"
12
+ }
13
+ }
14
+ }
Original file line number Diff line number Diff line change @@ -83,6 +83,27 @@ variable "karpenter" {
83
83
default = {}
84
84
}
85
85
86
+ variable "keda" {
87
+ description = " Keda configuration"
88
+ type = object ({
89
+ enabled = optional (bool , false )
90
+ repository = optional (string , " https://kedacore.github.io/charts" )
91
+ namespace = optional (string , " cluster-apps" )
92
+ replicas = optional (number , 2 )
93
+ log_level = optional (string , " info" )
94
+ metrics_server = optional (bool , true )
95
+ node_selector = optional (map (string ), {})
96
+ tolerations = optional (list (object ({
97
+ key = string
98
+ operator = string
99
+ value = optional (string , null )
100
+ effect = optional (string , null )
101
+ })), [])
102
+ pod_annotations = optional (map (string ), {})
103
+ })
104
+ default = {}
105
+ }
106
+
86
107
variable "external_secrets" {
87
108
description = " external secrets configuration"
88
109
type = object ({
You can’t perform that action at this time.
0 commit comments