enable the option to select service type
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
+38
-110
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user