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

84 lines
1.8 KiB
HCL

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" {
field_manager {
force_conflicts = true
}
manifest = {
apiVersion = "argoproj.io/v1alpha1"
kind = "Application"
metadata = {
name = "container-registry"
namespace = "argocd"
}
spec = {
project = "default"
source = {
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]
field_manager {
force_conflicts = true
}
manifest = {
apiVersion = "argoproj.io/v1alpha1"
kind = "Application"
metadata = {
name = "php-web-app"
namespace = "argocd"
}
spec = {
project = "default"
source = {
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"]
}
}
}
}