enable the option to select service type
This commit is contained in:
@@ -32,6 +32,7 @@ variable "kubernetes" {
|
|||||||
replicas = optional(number, 1)
|
replicas = optional(number, 1)
|
||||||
namespace = optional(string)
|
namespace = optional(string)
|
||||||
service_port = optional(number)
|
service_port = optional(number)
|
||||||
|
service_type = optional(string, "ClusterIP")
|
||||||
service_name = optional(string)
|
service_name = optional(string)
|
||||||
liveness_tcp_socket = optional(number)
|
liveness_tcp_socket = optional(number)
|
||||||
liveness_http_get = optional(string)
|
liveness_http_get = optional(string)
|
||||||
@@ -62,7 +63,7 @@ locals {
|
|||||||
name = pvc.name
|
name = pvc.name
|
||||||
pvc_size = pvc.pvc_size
|
pvc_size = pvc.pvc_size
|
||||||
mount_path = pvc.mount_path
|
mount_path = pvc.mount_path
|
||||||
namespace = coalesce(value.namespace, key)
|
namespace = coalesce(value.namespace, key)
|
||||||
}] if value.enabled == true && value.pvc != null
|
}] if value.enabled == true && value.pvc != null
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
@@ -112,13 +113,14 @@ locals {
|
|||||||
resource "kubernetes_manifest" "service" {
|
resource "kubernetes_manifest" "service" {
|
||||||
for_each = { for item in local.kubernetes_manifests : item.key => item }
|
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
|
provider = kubernetes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
resource "kubernetes_persistent_volume_claim" "automatic-pvc" {
|
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 }
|
for_each = { for key, value in local.pvc_details : "${value.index}" => merge(value, { mew_key = value.index }) if value.pvc }
|
||||||
metadata {
|
metadata {
|
||||||
namespace = each.value.namespace
|
namespace = each.value.namespace
|
||||||
@@ -194,6 +196,7 @@ resource "kubernetes_service" "automatic_service" {
|
|||||||
port = each.value.service_port
|
port = each.value.service_port
|
||||||
target_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)
|
target_port = try(each.value.database.port, 5432)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+38
-110
@@ -1,11 +1,11 @@
|
|||||||
kubernetes = {
|
kubernetes = {
|
||||||
bookstack = {
|
bookstack = {
|
||||||
namespace = "bookstack"
|
namespace = "bookstack"
|
||||||
enabled = true
|
enabled = true
|
||||||
replicas = 01
|
replicas = 01
|
||||||
extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml","/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"]
|
extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml", "/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"]
|
||||||
image = "linuxserver/bookstack:24.10.3"
|
image = "linuxserver/bookstack:24.10.3"
|
||||||
service_port = 80
|
service_port = 80
|
||||||
database = {
|
database = {
|
||||||
"image" = "lscr.io/linuxserver/mariadb"
|
"image" = "lscr.io/linuxserver/mariadb"
|
||||||
"port" = 3306
|
"port" = 3306
|
||||||
@@ -13,9 +13,9 @@ kubernetes = {
|
|||||||
}
|
}
|
||||||
requirements = {
|
requirements = {
|
||||||
limits-cpu = "500m"
|
limits-cpu = "500m"
|
||||||
limits-memory = "400Mi"
|
limits-memory = "200Mi"
|
||||||
requests-cpu = "300m"
|
requests-cpu = "300m"
|
||||||
requests-memory = "300Mi"
|
requests-memory = "100Mi"
|
||||||
}
|
}
|
||||||
secret_ref = ["bookstack-credentials"]
|
secret_ref = ["bookstack-credentials"]
|
||||||
config_map_ref = ["config"]
|
config_map_ref = ["config"]
|
||||||
@@ -73,12 +73,13 @@ kubernetes = {
|
|||||||
|
|
||||||
|
|
||||||
screeps = {
|
screeps = {
|
||||||
enabled = false
|
# enabled = false
|
||||||
name = "screeps-server"
|
name = "screeps-server"
|
||||||
pvc_size = "1Gi"
|
pvc_size = "1Gi"
|
||||||
mount_path = "/screeps"
|
mount_path = "/screeps"
|
||||||
image = "screepers/screeps-launcher"
|
image = "screepers/screeps-launcher"
|
||||||
service_port = 21025
|
service_port = 21025
|
||||||
|
service_type = "LoadBalancer"
|
||||||
environment_variables = { t1est = "tset" }
|
environment_variables = { t1est = "tset" }
|
||||||
requirements = {
|
requirements = {
|
||||||
limits-cpu = "900m"
|
limits-cpu = "900m"
|
||||||
@@ -89,10 +90,10 @@ kubernetes = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onitama = {
|
onitama = {
|
||||||
enabled = true
|
enabled = true
|
||||||
namespace = "onitama"
|
namespace = "onitama"
|
||||||
image = "ghcr.io/jackadamson/onitama:latest"
|
image = "ghcr.io/jackadamson/onitama:latest"
|
||||||
service_port = 8080
|
service_port = 8080
|
||||||
requirements = {
|
requirements = {
|
||||||
limits-cpu = "50m"
|
limits-cpu = "50m"
|
||||||
limits-memory = "50Mi"
|
limits-memory = "50Mi"
|
||||||
@@ -111,7 +112,7 @@ kubernetes = {
|
|||||||
nginx = {
|
nginx = {
|
||||||
enabled = false
|
enabled = false
|
||||||
namespace = "testnginx"
|
namespace = "testnginx"
|
||||||
image = "nginx:latest"
|
image = "nginx:latest"
|
||||||
#pvc_size = "10Mi"
|
#pvc_size = "10Mi"
|
||||||
# mount_path = "/code"
|
# mount_path = "/code"
|
||||||
# service_port = 80
|
# service_port = 80
|
||||||
@@ -234,89 +235,9 @@ kubernetes = {
|
|||||||
service_port = 80
|
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 = {
|
paper = {
|
||||||
enabled = true
|
enabled = false
|
||||||
namespace = "paper"
|
namespace = "paper"
|
||||||
image = "ghcr.io/paperless-ngx/paperless-ngx:latest"
|
image = "ghcr.io/paperless-ngx/paperless-ngx:latest"
|
||||||
service_port = 8000
|
service_port = 8000
|
||||||
@@ -438,19 +359,12 @@ kubernetes = {
|
|||||||
|
|
||||||
|
|
||||||
next = {
|
next = {
|
||||||
enabled = false
|
# enabled = false
|
||||||
namespace = "next"
|
namespace = "next"
|
||||||
image = "nextcloud:29.0.3-apache"
|
replicas = 01
|
||||||
service_port = 80
|
image = "nextcloud:29.0.3-apache"
|
||||||
secret = {
|
service_port = 80
|
||||||
POSTGRES_DB = "nextcloud"
|
extra_manifest = ["/opt/kubernetes/Nextcloud_kube/next.secret.yaml"]
|
||||||
POSTGRES_PASSWORD = "nextcloud"
|
|
||||||
POSTGRES_USER = "nextcloud"
|
|
||||||
PI_USER_USERNAME = "pi"
|
|
||||||
PI_USER_PASSWORD = "test"
|
|
||||||
POSTGRES_HOST = "next-db-svc"
|
|
||||||
|
|
||||||
}
|
|
||||||
database = {
|
database = {
|
||||||
image = "docker.io/library/postgres:14" }
|
image = "docker.io/library/postgres:14" }
|
||||||
redis = {
|
redis = {
|
||||||
@@ -495,8 +409,21 @@ kubernetes = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
REDIS_HOST = {
|
# REDIS_HOST = {
|
||||||
value = "redis://next-redis-svc:6379"
|
# 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 = {
|
NEXTCLOUD_ADMIN_USER = {
|
||||||
value = "admin"
|
value = "admin"
|
||||||
@@ -514,6 +441,7 @@ kubernetes = {
|
|||||||
nextcloud-webserver = {
|
nextcloud-webserver = {
|
||||||
name = "nextcloud-webserver"
|
name = "nextcloud-webserver"
|
||||||
pvc_size = "2Mi"
|
pvc_size = "2Mi"
|
||||||
|
pvc = true
|
||||||
mount_path = "/var/www/html"
|
mount_path = "/var/www/html"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user