my-homelab-configs/bootstrap/apps/main.tf

50 lines
1.1 KiB
HCL

terraform {
required_version = ">= 1.0"
required_providers {
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> 2.26"
}
}
}
provider "kubernetes" {
config_path = var.kubeconfig_path
}
resource "kubernetes_manifest" "argocd_application" {
for_each = var.applications
field_manager {
force_conflicts = true
}
manifest = {
apiVersion = "argoproj.io/v1alpha1"
kind = "Application"
metadata = {
name = each.key
namespace = var.argocd_namespace
}
spec = {
project = each.value.project
source = {
repoURL = var.gitops_repo_url
targetRevision = each.value.target_revision
path = each.value.path
}
destination = {
server = "https://kubernetes.default.svc"
namespace = each.value.namespace
}
syncPolicy = {
automated = {
prune = each.value.prune
selfHeal = each.value.self_heal
}
syncOptions = each.value.create_namespace ? ["CreateNamespace=true"] : []
}
}
}
}