Files
kydah-modules/redis/redis.tf

42 lines
1.3 KiB
HCL

locals {
app_slug = "${var.instance}${var.component == "" ? "" : "-"}${var.component}"
redis_labels = merge(var.labels, {
"app.kubernetes.io/component" = "redis"
})
cfg = merge({
"image" = "${var.images.redis.registry}/${var.images.redis.repository}:${var.images.redis.tag}"
"imagePullPolicy" = var.images.redis.pull_policy
}, lookup(var.password, "enabled", false) ? {
redisSecret = {
name = lookup(var.password, "name", var.component)
key = lookup(var.password, "key", "redis-password")
}
} : {})
}
resource "kubectl_manifest" "redis" {
yaml_body = <<-EOF
apiVersion: "redis.redis.opstreelabs.in/v1beta1"
kind: "Redis"
metadata:
name: "${local.app_slug}-redis"
namespace: "${var.namespace}"
labels: ${jsonencode(local.redis_labels)}
spec:
kubernetesConfig: ${jsonencode(local.cfg)}
storage:
volumeClaimTemplate:
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: "${var.storage.size}"
redisExporter:
enabled: ${var.exporter.enabled}
image: "${var.images.redis_exporter.registry}/${var.images.redis_exporter.repository}:${var.images.redis_exporter.tag}"
securityContext:
runAsUser: 1000
fsGroup: 1000
EOF
}