From 6af77be6243f5be14a3f9f8f5aa489aed8628209 Mon Sep 17 00:00:00 2001 From: pierre Date: Tue, 18 Mar 2025 21:32:08 +0000 Subject: [PATCH] enable the option to select service type --- module.tf | 8 ++- variables.auto.tfvars | 148 +++++++++++------------------------------- 2 files changed, 43 insertions(+), 113 deletions(-) diff --git a/module.tf b/module.tf index 82bb846..f448143 100644 --- a/module.tf +++ b/module.tf @@ -32,6 +32,7 @@ variable "kubernetes" { replicas = optional(number, 1) namespace = optional(string) service_port = optional(number) + service_type = optional(string, "ClusterIP") service_name = optional(string) liveness_tcp_socket = optional(number) liveness_http_get = optional(string) @@ -62,7 +63,7 @@ locals { name = pvc.name pvc_size = pvc.pvc_size mount_path = pvc.mount_path - namespace = coalesce(value.namespace, key) + namespace = coalesce(value.namespace, key) }] if value.enabled == true && value.pvc != null ]) } @@ -112,13 +113,14 @@ locals { resource "kubernetes_manifest" "service" { for_each = { for item in local.kubernetes_manifests : item.key => item } - manifest = yamldecode(file(each.value.manifest)) + manifest = yamldecode(file(each.value.manifest)) provider = kubernetes } resource "kubernetes_persistent_volume_claim" "automatic-pvc" { + # for_each = { for key, value in var.kubernetes : key => value if value.enabled == true } for_each = { for key, value in local.pvc_details : "${value.index}" => merge(value, { mew_key = value.index }) if value.pvc } metadata { namespace = each.value.namespace @@ -194,6 +196,7 @@ resource "kubernetes_service" "automatic_service" { port = each.value.service_port target_port = each.value.service_port } + type = each.value.service_type } @@ -219,7 +222,6 @@ resource "kubernetes_service" "automatic_service_database" { target_port = try(each.value.database.port, 5432) } - } diff --git a/variables.auto.tfvars b/variables.auto.tfvars index 16871be..5a9cf0c 100644 --- a/variables.auto.tfvars +++ b/variables.auto.tfvars @@ -1,11 +1,11 @@ kubernetes = { bookstack = { - namespace = "bookstack" - enabled = true - replicas = 01 - extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml","/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"] - image = "linuxserver/bookstack:24.10.3" - service_port = 80 + namespace = "bookstack" + enabled = true + replicas = 01 + extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml", "/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"] + image = "linuxserver/bookstack:24.10.3" + service_port = 80 database = { "image" = "lscr.io/linuxserver/mariadb" "port" = 3306 @@ -13,9 +13,9 @@ kubernetes = { } requirements = { limits-cpu = "500m" - limits-memory = "400Mi" + limits-memory = "200Mi" requests-cpu = "300m" - requests-memory = "300Mi" + requests-memory = "100Mi" } secret_ref = ["bookstack-credentials"] config_map_ref = ["config"] @@ -73,12 +73,13 @@ kubernetes = { screeps = { - enabled = false + # enabled = false name = "screeps-server" pvc_size = "1Gi" mount_path = "/screeps" image = "screepers/screeps-launcher" service_port = 21025 + service_type = "LoadBalancer" environment_variables = { t1est = "tset" } requirements = { limits-cpu = "900m" @@ -89,10 +90,10 @@ kubernetes = { } onitama = { - enabled = true - namespace = "onitama" - image = "ghcr.io/jackadamson/onitama:latest" - service_port = 8080 + enabled = true + namespace = "onitama" + image = "ghcr.io/jackadamson/onitama:latest" + service_port = 8080 requirements = { limits-cpu = "50m" limits-memory = "50Mi" @@ -111,7 +112,7 @@ kubernetes = { nginx = { enabled = false namespace = "testnginx" - image = "nginx:latest" + image = "nginx:latest" #pvc_size = "10Mi" # mount_path = "/code" # service_port = 80 @@ -234,89 +235,9 @@ kubernetes = { service_port = 80 } - nextcloud-web = { - namespace = "nextcloud-terraform" - enabled = false - image = "nextcloud:29.0.3-apache" - service_port = 80 - requirements = { - limits-cpu = "1000m" - limits-memory = "500Mi" - requests-cpu = "500m" - requests-memory = "25Mi" - } - environment = { - POSTGRES_HOST = { - value = "db" - } - } - pvc = { - nextcloud-webserver = { - name = "nextcloud-webserver" - pvc_size = "2Mi" - mount_path = "/var/www/html" - } - } - } - - nextcloud-db = { - namespace = "nextcloud-terraform" - enabled = false - image = "docker.io/library/postgres:14" - service_port = 5432 - requirements = { - limits-cpu = "1000m" - limits-memory = "500Mi" - requests-cpu = "500m" - requests-memory = "25Mi" - } - environment = { - POSTGRES_HOST = { - value = "db" - } - } - - environment = { - POSTGRES_DB = { - value_from = { - secret_key_ref = { - name = "nextcloud-credentials" - key = "POSTGRES_DB" - } - } - } - POSTGRES_USER = { - value_from = { - secret_key_ref = { - name = "nextcloud-credentials" - key = "POSTGRES_USER" - } - } - } - POSTGRES_PASSWORD = { - value_from = { - secret_key_ref = { - name = "nextcloud-credentials" - key = "POSTGRES_PASSWORD" - } - } - } - PORT = { - value = "80" - } - } - - pvc = { - nextcloud-database = { - name = "nextcloud-database" - pvc_size = "2Mi" - mount_path = "/var/lib/postgresql/data" - } - } - } paper = { - enabled = true + enabled = false namespace = "paper" image = "ghcr.io/paperless-ngx/paperless-ngx:latest" service_port = 8000 @@ -438,19 +359,12 @@ kubernetes = { next = { - enabled = false - namespace = "next" - image = "nextcloud:29.0.3-apache" - service_port = 80 - secret = { - POSTGRES_DB = "nextcloud" - POSTGRES_PASSWORD = "nextcloud" - POSTGRES_USER = "nextcloud" - PI_USER_USERNAME = "pi" - PI_USER_PASSWORD = "test" - POSTGRES_HOST = "next-db-svc" - - } + # enabled = false + namespace = "next" + replicas = 01 + image = "nextcloud:29.0.3-apache" + service_port = 80 + extra_manifest = ["/opt/kubernetes/Nextcloud_kube/next.secret.yaml"] database = { image = "docker.io/library/postgres:14" } redis = { @@ -495,8 +409,21 @@ kubernetes = { } } - REDIS_HOST = { - value = "redis://next-redis-svc:6379" + # REDIS_HOST = { + # value = "redis://next-redis-svc:6379" + # } + TRUSTED_PROXIES = { + value = "192.168.88.50 192.168.88.52" + } + OVERWRITECLIURL = { + value = "https://nextcloud.tryton.geeraert.eu" + } + OVERWRITEPROTOCOL = { + value = "https" + } + + NEXTCLOUD_TRUSTED_DOMAINS = { + value = "nextcloud.tryton.geeraert.eu 192.168.88.52" } NEXTCLOUD_ADMIN_USER = { value = "admin" @@ -514,6 +441,7 @@ kubernetes = { nextcloud-webserver = { name = "nextcloud-webserver" pvc_size = "2Mi" + pvc = true mount_path = "/var/www/html" } }