Files
homelab/terraform/bootstrap-releases.tf
T
Story Crater Bot 6109477bf9 Skip TF management of ingress-nginx (helm timeout issues)
- ingress-nginx already deployed and working in cluster
- Helm updates timeout repeatedly (5+ min with context deadline exceeded)
- Remove from bootstrap releases; manage separately via helm/kubectl
- cert-manager + reloader continue via TF
2026-07-14 13:32:40 -07:00

59 lines
1.7 KiB
Terraform

locals {
bootstrap_releases = {
cert-manager = {
chart_version = "v1.21.0"
namespace = "cert-manager"
repo = "jetstack"
}
reloader = {
chart_version = "1.3.0"
namespace = "reloader"
repo = "stakater"
}
# ingress-nginx: managed separately (not via TF due to helm timeout issues)
}
}
resource "helm_release" "bootstrap" {
for_each = local.bootstrap_releases
name = each.key
repository = local.helm_repos[each.value.repo]
chart = each.key
version = each.value.chart_version
namespace = each.value.namespace
dynamic "set" {
for_each = each.key == "cert-manager" ? {
"crds.enabled" = "true"
"prometheus.enabled" = "true"
"prometheus.servicemonitor.enabled" = "true"
"prometheus.servicemonitor.interval" = "60s"
} : (each.key == "ingress-nginx" ? {
"controller.admissionWebhooks.enabled" = "false"
"controller.dnsPolicy" = "ClusterFirstWithHostNet"
"controller.extraArgs.default-ssl-certificate" = "ingress-nginx/homelab-tls"
"controller.hostPort.enabled" = "true"
"controller.ingressClassResource.default" = "true"
"controller.kind" = "DaemonSet"
"controller.metrics.enabled" = "true"
"controller.metrics.serviceMonitor.enabled" = "true"
"controller.metrics.serviceMonitor.interval" = "30s"
} : {})
content {
name = set.key
value = set.value
}
}
depends_on = [
kubernetes_namespace.namespaces
]
lifecycle {
ignore_changes = [
values
]
}
}