75 lines
1.7 KiB
HCL
75 lines
1.7 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" {
|
|
manifest = {
|
|
apiVersion = "argoproj.io/v1alpha1"
|
|
kind = "Application"
|
|
metadata = {
|
|
name = "container-registry"
|
|
namespace = "argocd"
|
|
}
|
|
spec = {
|
|
project = "default"
|
|
source = {
|
|
repoURL = "https://github.com/juvdiaz/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 = "production-website"
|
|
namespace = "argocd"
|
|
}
|
|
spec = {
|
|
project = "default"
|
|
source = {
|
|
repoURL = "https://github.com/juvdiaz/my-homelab-configs.git"
|
|
targetRevision = "HEAD"
|
|
path = "apps/website"
|
|
}
|
|
destination = {
|
|
server = "https://kubernetes.default.svc"
|
|
namespace = "website-production"
|
|
}
|
|
syncPolicy = {
|
|
automated = {
|
|
prune = true
|
|
selfHeal = true
|
|
}
|
|
syncOptions = ["CreateNamespace=true"]
|
|
}
|
|
}
|
|
}
|
|
}
|