feat(infrastructure): add cloudflare, argocd

This commit is contained in:
2025-09-22 18:51:52 +02:00
parent ec3017929e
commit 5de64c5b1f
19 changed files with 340 additions and 23 deletions

View File

@@ -9,9 +9,13 @@ terraform {
version = "3.0.2"
}
kubernetes = {
source = "hashicorp/kubernetes"
source = "hashicorp/kubernetes"
version = "2.38.0"
}
kustomization = {
source = "kbst/kustomization"
version = "0.9.6"
}
}
}
@@ -23,6 +27,9 @@ provider "kubectl" {
config_path = "./kubeconfig"
}
provider "kustomization" {
kubeconfig_path = "./kubeconfig"
}
provider "helm" {
kubernetes = {
@@ -30,17 +37,36 @@ provider "helm" {
}
}
module "storage" {
source = "${path.module}/modules/storage"
}
module "loadbalancer" {
source = "${path.module}/modules/metallb"
depends_on = [ module.storage ]
source = "${path.module}/modules/metallb"
depends_on = [module.storage]
metallb_ip_range = var.metallb_ip_range
}
module "cert-manager" {
source = "${path.module}/modules/cert-manager"
}
module "cloudflare" {
source = "${path.module}/modules/cloudflare"
depends_on = [module.cert-manager]
cloudflare_api_token = var.cloudflare_api_token
cloudflare_tunnel_name = var.cloudflare_tunnel_name
cloudflare_email = var.cloudflare_email
cloudflare_domain = var.cloudflare_domain
cloudflare_account_id = var.cloudflare_account_id
}
module "database" {
source = "${path.module}/modules/maxscale"
depends_on = [ module.storage, module.loadbalancer ]
depends_on = [module.storage, module.loadbalancer, module.cloudflare]
mariadb_password = var.mariadb_password
mariadb_root_password = var.mariadb_root_password
@@ -48,14 +74,19 @@ module "database" {
mariadb_user_host = var.mariadb_user_host
mariadb_user_password = var.mariadb_user_password
maxscale_ip = var.metallb_maxscale_ip
service_ip = var.metallb_service_ip
primary_ip = var.metallb_primary_ip
secondary_ip = var.metallb_secondary_ip
maxscale_ip = var.metallb_maxscale_ip
service_ip = var.metallb_service_ip
primary_ip = var.metallb_primary_ip
secondary_ip = var.metallb_secondary_ip
phpmyadmin_enabled = var.phpmyadmin_enabled
phpmyadmin_enabled = var.phpmyadmin_enabled
cloudflare_domain = var.cloudflare_domain
}
module "storage" {
source = "${path.module}/modules/storage"
module "argocd" {
source = "${path.module}/modules/argocd"
depends_on = [module.storage, module.loadbalancer, module.cloudflare]
argocd_admin_password = var.argocd_admin_password
cloudflare_domain = var.cloudflare_domain
}