forked from provectus/sak-scaling
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhorizontal-pod-autoscaler.tf
77 lines (74 loc) · 2.05 KB
/
horizontal-pod-autoscaler.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
resource "helm_release" "hpa_operator" {
depends_on = [
var.module_depends_on
]
count = var.hpa_enabled ? 1 - local.argocd_enabled : 0
name = local.hpa_name
repository = local.hpa_chart_repository
chart = local.hpa_chart
version = var.hpa_chart_version
namespace = local.namespace
timeout = 1200
dynamic "set" {
for_each = merge(local.hpa_conf_defaults, var.hpa_conf)
content {
name = set.key
value = set.value
}
}
}
resource "local_file" "hpa" {
count = var.hpa_enabled ? local.argocd_enabled : 0
content = yamlencode(local.hpa_app)
filename = "${var.argocd.path}/${local.hpa_name}.yaml"
}
locals {
hpa_chart_repository = "https://kubernetes-charts.banzaicloud.com"
hpa_name = "hpa-operator"
hpa_chart = "hpa-operator"
hpa_app = {
"apiVersion" = "argoproj.io/v1alpha1"
"kind" = "Application"
"metadata" = {
"name" = local.hpa_name
"namespace" = var.argocd.namespace
}
"spec" = {
"destination" = {
"namespace" = local.namespace
"server" = "https://kubernetes.default.svc"
}
"project" = "default"
"source" = {
"repoURL" = local.hpa_chart_repository
"targetRevision" = var.hpa_chart_version
"chart" = local.hpa_chart
"helm" = {
"parameters" = values({
for key, value in local.hpa_conf :
key => {
"name" = key
"value" = tostring(value)
}
})
}
}
"syncPolicy" = {
"automated" = {
"prune" = true
"selfHeal" = true
}
}
}
}
hpa_conf = merge(local.hpa_conf_defaults, var.hpa_conf)
hpa_conf_defaults = {
"metrics-server.enabled" = true,
"rbac.create" = true,
"rbac.pspEnabled" = true,
"resources.limits.cpu" = "100m",
"resources.limits.memory" = "30Mi",
"resources.requests.cpu" = "100m",
"resources.requests.memory" = "30Mi",
}
}