terraform { required_version = ">= 1.0" required_providers { kubernetes = { source = "hashicorp/kubernetes" version = "~> 2.26" } } } provider "kubernetes" { config_path = "/home/jv/.kube/config" } resource "kubernetes_manifest" "container_registry" { manifest = { apiVersion = "argoproj.io/v1alpha1" kind = "Application" metadata = { name = "container-registry" namespace = "argocd" } spec = { project = "default" source = { # Targets your laptop's private IP and filesystem path via SSH repoURL = "ssh://jv@192.168.100.68/home/jv/git-server/my-homelab-configs.git" targetRevision = "HEAD" path = "apps/container-registry" } destination = { server = "https://kubernetes.default.svc" namespace = "container-registry" } syncPolicy = { automated = { prune = true selfHeal = true } syncOptions = ["CreateNamespace=true"] } } } } resource "kubernetes_manifest" "production_website" { depends_on = [kubernetes_manifest.container_registry] manifest = { apiVersion = "argoproj.io/v1alpha1" kind = "Application" metadata = { name = "php-web-app" namespace = "argocd" } spec = { project = "default" source = { # Targets your laptop's private IP and filesystem path via SSH repoURL = "ssh://jv@192.168.100.68/home/jv/git-server/my-homelab-configs.git" targetRevision = "HEAD" path = "apps/website" } destination = { server = "https://kubernetes.default.svc" namespace = "default" } syncPolicy = { automated = { prune = true selfHeal = true } syncOptions = ["CreateNamespace=true"] } } } }