Files
Terraform_kube/applications/variables.auto.tfvars.save.1
T

2670 lines
64 KiB
Groff

kubernetes = {
bookstack = {
#enabled = false
replicas = 01
image = "linuxserver/bookstack:latest"
service_port = [80, 443]
database = {
"engine" = "mysql"
"image" = "lscr.io/linuxserver/mariadb"
"port" = 3306
"mountPath" = "/config"
username = "bookstack_username"
name = "bookstackapp"
}
config_map_ref = ["config"]
secret_ref = ["bookstack-credentials"]
config_map_import = ["bb9a8965-994a-4fea-9411-b4020182fa78"]
secret_import = ["d1c2b8c9-71a0-4e47-9d9d-b402018376b6"]
pvc = {
bookstack-webserver = {
name = "bookstack-webserver"
pvc = true
pvc_size = "2Gi"
mount_path = "/config"
}
}
}
screeps = {
enabled = false
name = "screeps-server"
image = "screepers/screeps-launcher"
service_port = [21025]
service_type = "LoadBalancer"
environment = {
STEAM_KEY = {
value = "F2B37945342AD0DBD6DCAF3440E77C4E"
}
}
requirements = {
limits-cpu = "1000m"
limits-memory = "1Gi"
requests-cpu = "500m"
requests-memory = "400Mi"
}
pvc = {
screeps-volume = {
name = "screeps"
pvc_size = "1Gi"
pvc = true
mount_path = "/screeps"
}
}
}
minecraft = {
enabled = false
image = "itzg/minecraft-server"
service_port = [25565]
service_type = "LoadBalancer"
environment = {
EULA = {
value = "TRUE"
}
ONLINE_MODE = {
value = "FALSE"
}
VERSION = {
value = "1.21.8"
}
}
#requirements = {
# limits-cpu = "1000m"
# limits-memory = "1Gi"
# requests-cpu = "500m"
# requests-memory = "400Mi"
#}
pvc = {
minecraft-volume = {
name = "minecraft"
pvc_size = "1Gi"
pvc = true
mount_path = "/data"
}
}
}
stirling = {
enabled = false
name = "stirling-pdf"
image = "stirlingtools/stirling-pdf:2.0.0"
domain_name = "stirling"
service_port = [8080]
environment = {
LANGS = {
value = "en_GB"
}
SECURITY_ENABLELOGIN = {
value = "false"
}
}
# requirements = {
# limits-cpu = "100m"
# limits-memory = "300Mi"
# requests-cpu = "50m"
# requests-memory = "150Mi"
# }
pvc = {
stirling-volume = {
name = "stirling-pdf"
pvc_size = "100Mi"
pvc = true
mount_path = "/configs"
}
}
}
stash = {
# enabled = false
replicas = 0
name = "stash"
#image = "stashapp/stash:latest"
image = "stashapp/stash:v0.30.1"
service_port = [9999]
#extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/stash/stash-reddit-dowloader.configmap.yml"]
environment = {
STASH_STASH = {
value = "/data/"
}
STASH_GENERATED = {
value = "/generated/"
}
STASH_METADATA = {
value = "/metadata/"
}
STASH_CACHE = {
value = "/cache/"
}
STASH_PORT = {
value = "9999"
}
}
requirements = {
limits-cpu = "1000m"
limits-memory = "3000Mi"
requests-cpu = "50m"
requests-memory = "150Mi"
}
pvc = {
data = {
name = "data"
pvc_size = "100Mi"
pvc = true
mount_path = "/data"
storage_class_name = "nfs-storage-fastaccess"
}
metadata = {
name = "metadata"
pvc_size = "100Mi"
pvc = true
mount_path = "/metadata"
}
generated = {
name = "generated"
pvc_size = "100Mi"
pvc = true
mount_path = "/generated"
}
config = {
name = "config"
pvc_size = "100Mi"
pvc = true
mount_path = "/root/.stash"
}
}
}
gluetun = {
# enabled = false
dns_nameservers = "1.1.1.1"
replicas = 01
image = "qmcgaw/gluetun:latest"
service_port = [8888]
#extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/gluetun/gluetun-secret-netherlandNL-FREE-280.yaml"]
secret_import = ["5527ba11-07e3-415b-8d1f-b3ee0154eb56", "b0d22160-d81a-4702-a3dd-b40e0168d617", "643dbe99-ace0-4ef5-8a2e-b44f014dccb0"]
security_context = true
# requirements = {
# limits-cpu = "800Mi"
# limits-memory = "800Mi"
# requests-cpu = "800Mi"
# requests-memory = "800Mi"
# }
environment = {
WIREGUARD_PRIVATE_KEY = {
value_from = {
secret_key_ref = {
name = "gluetun-secret-nl-free-280"
key = "WIREGUARD_PRIVATE_KEY"
}
}
}
HTTPPROXY = {
value = "on"
}
HTTPPROXY_LOG = {
value = "on"
}
HTTPPROXY_LISTENING_ADDRESS = {
value = "0.0.0.0:8888"
}
# DNS_KEEP_NAMESERVER = {
# value = "on"
# }
VPN_SERVICE_PROVIDER = {
value = "protonvpn"
}
VPN_TYPE = {
value = "wireguard"
}
SERVER_COUNTRIES = {
value = "Netherlands"
}
HEALTH_TARGET_ADDRESS = {
value = "0.0.0.0:8888"
}
FREE_ONLY = {
value = "on"
}
# WIREGUARD_ADDRESSES = {
# value = "10.2.0.2/32"
# }
FIREWALL_INPUT_PORTS = {
value = "8081,7878,9696,9091,51413,8080,6881,8989,8191,8888,8000"
}
PUBLICIP_API = {
value = "ip2location"
}
# HEALTH_TARGET_ADDRESS = {
# value = "protonvpn.com:80"
# }
# FIREWALL_OUTBOUND_SUBNETS = {
# value = "10.0.0.0/24" }
}
}
onitama = {
enabled = false
namespace = "onitama"
domain_name = "onitama"
image = "ghcr.io/jackadamson/onitama:latest"
service_port = [8080]
requirements = {
limits-cpu = "50m"
limits-memory = "50Mi"
requests-cpu = "25m"
requests-memory = "25Mi"
}
environment = {
PORT = {
value = "80"
}
}
}
nginx = {
enabled = false
namespace = "testnginx"
image = "nginx:latest"
#pvc_size = "10Mi"
# mount_path = "/code"
# service_port = 80
# liveness_http_get = 80
# requirements = {
# limits-cpu = "200m"
# limits-memory = "200Mi"
# requests-cpu = "50m"
# requests-memory = "50Mi"
# }
# environment_variables = [{
# "name" : "NGINX_PORT",
# "value" : "80"
# name = "NGINX-second_PORT" , value = "81"
# }]
environment_variables = { t1est = "tset", a2nother = "rehtona" }
# environment_variables = { t1est = "tset" }
# environment_variables = {
# name = "NGINX_PORT" , value = "80"
# name = "NGINX-second_PORT" , value = "81"
# }
pvc = {
first = {
name = "nginx"
pvc_size = "1Mi"
mount_path = "/code"
}
}
}
redis = {
enabled = false
image = "redis"
service_port = [6379]
liveness_tcp_socket = 6379
# environment_variables = [{
# "name" : "redis_PORT",
# "value" : "6379"
# }]
}
vulcan = {
enabled = false
image = "localhost:31795/vulcan-frontend:latest"
service_port = [80]
requirements = {
limits-cpu = "50m"
limits-memory = "50Mi"
requests-cpu = "50m"
requests-memory = "50Mi"
}
}
bwdownload = {
enabled = false
namespace = "backup-bitwarden"
image = "alpine"
requirements = {
limits-cpu = "50m"
limits-memory = "50Mi"
requests-cpu = "50m"
requests-memory = "50Mi"
}
}
gogs = {
enabled = false
image = "gogs/gogs"
requirements = {
limits-cpu = "50m"
limits-memory = "50Mi"
requests-cpu = "50m"
requests-memory = "50Mi"
}
service_port = [3000]
pvc_size = "1Gi"
mount_path = "/data"
}
gitea = {
enabled = false
image = "gitea/gitea:1.22.3"
requirements = {
limits-cpu = "50m"
limits-memory = "50Mi"
requests-cpu = "50m"
requests-memory = "50Mi"
}
service_port = [3000]
pvc_size = "1Gi"
mount_path = "/data"
}
notmuch = {
enabled = false
image = "kalbasit/notmuch"
service_port = [80]
}
spider = {
#needs to create a secret.key on the pvc
enabled = false
image = "iredmail/spider:latest"
requirements = {
limits-cpu = "200m"
limits-memory = "500Mi"
requests-cpu = "50m"
requests-memory = "50Mi"
}
service_port = [8080]
pvc = {
spider-data = {
pvc = true
name = "spider-data"
pvc_size = "100Mi"
mount_path = "/opt/spider"
}
}
}
piler = {
enabled = false
image = "sutoj/piler:1.4.5"
requirements = {
limits-cpu = "200m"
limits-memory = "500Mi"
requests-cpu = "50m"
requests-memory = "50Mi"
}
service_port = [80]
}
paperless = {
#enabled = false
#namespace = "paper"
#replicas = 0
image = "ghcr.io/paperless-ngx/paperless-ngx:2.18.4"
service_port = [8000]
domain_name = "paperless2"
database = {
image = "postgres:15.6"
mountPath = "/var/lib/postgresql/data"
}
redis = {
image = "redis:7.4.1" }
#requirements = {
# limits-cpu = "800m"
# limits-memory = "800Mi"
# requests-cpu = "10m"
# requests-memory = "300Mi"
#}
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/paperless/Paperless.secret.yaml"]
#config_map_ref = ["config"]
environment = {
POSTGRES_DB = {
value_from = {
secret_key_ref = {
name = "paperless-credentials"
key = "POSTGRES_DB"
}
}
}
POSTGRES_USER = {
value_from = {
secret_key_ref = {
name = "paperless-credentials"
key = "POSTGRES_USER"
}
}
}
POSTGRES_PASSWORD = {
value_from = {
secret_key_ref = {
name = "paperless-credentials"
key = "POSTGRES_PASSWORD"
}
}
}
PAPERLESS_URL = {
value = "https://paperless.tryton.geeraert.eu"
}
PAPERLESS_TIKA_ENABLED = {
value = "1"
}
PAPERLESS_TIKA_GOTENBERG_ENDPOINT = {
value = "http://gotenberg-svc.paperless.svc:3000"
}
PAPERLESS_TIKA_ENDPOINT = {
value = "http://tika-svc.paperless.svc:9998"
}
PAPERLESS_DBHOST = {
value_from = {
secret_key_ref = {
name = "paperless-credentials"
key = "POSTGRES_HOST"
}
}
}
PAPERLESS_REDIS = {
value = "redis://paperless-redis-svc:6379"
}
PAPERLESS_ADMIN_USER = {
value_from = {
secret_key_ref = {
name = "paperless-credentials"
key = "POSTGRES_USER"
}
}
}
PAPERLESS_ADMIN_PASSWORD = {
value_from = {
secret_key_ref = {
name = "paperless-credentials"
key = "POSTGRES_PASSWORD"
}
}
}
# PAPERLESS_ADMIN_USER = {
# value = "admin"
# }
# PAPERLESS_ADMIN_PASSWORD = {
# value = "admin"
# }
PAPERLESS_OCR_USER_ARGS = {
value = "{'invalidate_digital_signatures': true}"
}
}
pvc = {
paperless-data = {
pvc = true
name = "paperless-data"
pvc_size = "2Mi"
mount_path = "/usr/src/paperless/data"
}
paperless-media = {
pvc = true
name = "paperless-media"
pvc_size = "2Mi"
mount_path = "/usr/src/paperless/media"
}
# export = {
# host_path = "/tmp"
# name = "export"
# pvc_size = "2Mi"
# mount_path = "/usr/src/paperless/export"
# }
consume = {
pvc = true
name = "consume"
pvc_size = "2Mi"
mount_path = "/usr/src/paperless/consume"
}
}
}
gotenberg = {
#enabled = false
name = "gotenberg"
command = ["gotenberg", "--chromium-disable-javascript=true", "--chromium-allow-list=file:///tmp/.*", "--chromium-auto-start"]
connected_namespace = "paperless"
image = "gotenberg/gotenberg:8"
#image = "gotenberg/gotenberg:7.4.3"
service_port = [3000]
environment = {
CHROMIUM_PAPER_WIDTH = {
value = "595"
}
CHROMIUM_PAPER_HEIGHT = {
value = "842"
}
CHROMIUM_MARGIN_TOP = {
value = "7.2"
}
CHROMIUM_MARGIN_BOTTOM = {
value = "7.2"
}
CHROMIUM_MARGIN_LEFT = {
value = "7.2"
}
CHROMIUM_MARGIN_RIGHT = {
value = "7.2"
}
GOTENBERG_CHROMIUM_STARTUP_TIMEOUT = {
value = "60s"
}
GOTENBERG_BUILD_DEBUG_DATA = {
value = "false"
}
GOTENBERG_CHROMIUM_ARGS = {
value = "--no-sandbox,--disable-dev-shm-usage,--no-zygote"
}
}
pvc = {
devshm = {
host_path = "/tmp"
name = "devshm"
pvc_size = "2Mi"
mount_path = "/dev/shm"
}
}
requirements = {
limits-cpu = "1"
limits-memory = "1000Mi"
requests-cpu = "500m"
requests-memory = "512Mi"
}
}
tika = {
#enabled = false
name = "tika"
connected_namespace = "paperless"
image = "docker.io/apache/tika:latest"
service_port = [9998]
requirements = {
limits-cpu = "1"
limits-memory = "1000Mi"
requests-cpu = "500m"
requests-memory = "512Mi"
}
}
emailproxy = {
enabled = false
name = "email-oauth2-proxy"
connected_namespace = "paper"
dns_nameservers = "1.1.1.1"
image = "blacktirion/email-oauth2-proxy-docker"
#command = ["python", "emailproxy.py", "--no-gui", "--external-auth", "--debug", "--cache-store", "/config/credstore.config", "--config-file", "/config/emailproxy.config", "--log-file", "/config/emailproxy.log"]
#extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/paperless/emailproxyconfig.configmap.yml"]
service_port = [80, 1993, 1995]
requirements = {
limits-cpu = "1"
limits-memory = "1000Mi"
requests-cpu = "500m"
requests-memory = "512Mi"
}
environment = {
LOGFILE = {
value = true
}
DEBUG = {
value = true
}
CACHE_STORE = {
value = "/config/credstore.config"
}
LOCAL_SERVER_AUTH = { value = true }
}
pvc = {
emailproxy-config = {
#config_map = true
pvc = true
name = "emailproxyconfig"
pvc_size = "2Mi"
#mount_path = "/config/emailproxy.config"
mount_path = "/config/"
}
}
}
next = {
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 = {
image = "docker.io/library/redis:7" }
requirements = {
limits-cpu = "800Mi"
limits-memory = "800Mi"
requests-cpu = "800Mi"
requests-memory = "800Mi"
}
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"
}
}
}
POSTGRES_HOST = {
value_from = {
secret_key_ref = {
name = "nextcloud-credentials"
key = "POSTGRES_HOST"
}
}
}
# 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"
}
NEXTCLOUD_ADMIN_PASSWORD = {
value_from = {
secret_key_ref = {
name = "nextcloud-credentials"
key = "PI_USER_PASSWORD"
}
}
}
}
pvc = {
nextcloud-webserver = {
name = "nextcloud-webserver"
pvc_size = "2Mi"
pvc = true
mount_path = "/var/www/html"
}
}
}
neko = {
enabled = false
name = "neko"
image = "ghcr.io/m1k1o/neko/firefox:latest"
service_port = [8080]
environment = {
NEKO_WEBRTC_EPR = {
value = "56000-56100"
}
NEKO_WEBRTC_NAT1TO1 = {
value = "127.0.0.1"
}
NEKO_MEMBER_MULTIUSER_USER_PASSWORD = {
value = "neko"
}
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD = {
value = "admin"
}
}
requirements = {
limits-cpu = "900m"
limits-memory = "600Mi"
requests-cpu = "300m"
requests-memory = "400Mi"
}
}
homeassistant = {
enabled = false
image = "ghcr.io/home-assistant/home-assistant:stable"
service_port = [8123]
environment = {
PORT = {
value = "80"
}
}
pvc = {
homeassistant-config = {
pvc = true
name = "homeassistant-config"
pvc_size = "2Mi"
mount_path = "/config"
}
etc_localtime = {
host_path = "/etc/localtime"
name = "export"
pvc_size = "2Mi"
mount_path = "/etc/localtime"
}
}
requirements = {
limits-cpu = "900m"
limits-memory = "600Mi"
requests-cpu = "300m"
requests-memory = "400Mi"
}
}
jellyfin = {
# enabled = false
replicas = 0
image = "jellyfin/jellyfin:latest"
service_port = [8096]
environment = {
JELLYFIN_PublishedServerUrl = {
value = "https://jellyfin.tryton.geeraert.eu"
}
}
pvc = {
jellyfin-config = {
pvc = true
name = "jellyfin-config"
pvc_size = "2Mi"
mount_path = "/config"
}
jellyfin-cache = {
pvc = true
name = "jellyfin-cache"
pvc_size = "2Mi"
mount_path = "/cache"
}
jellyfin-date = {
host_path = "/data"
name = "export"
pvc_size = "2Mi"
mount_path = "/data"
}
}
# requirements = {
# limits-cpu = "900m"
# limits-memory = "600Mi"
# requests-cpu = "300m"
# requests-memory = "400Mi"
# }
}
dupeguru = {
enabled = false
image = "jlesage/dupeguru"
service_port = [5800]
pvc = {
dupeguru-config = {
pvc = true
name = "dupeguru-config"
pvc_size = "2Mi"
mount_path = "/config"
}
dupeguru-storage = {
pvc = true
name = "dupeguru-storage"
pvc_size = "2Mi"
mount_path = "/storage"
}
dupeguru-duplicate = {
host_path = "/data"
name = "dupeguru-duplicate"
pvc_size = "2Mi"
mount_path = "/duplicate"
}
}
requirements = {
limits-cpu = "900m"
limits-memory = "600Mi"
requests-cpu = "300m"
requests-memory = "400Mi"
}
}
pinchflat = {
enabled = false
connected_namespace = "screeps"
image = "ghcr.io/kieraneglin/pinchflat:latest"
service_port = [8945]
pvc = {
pinchflat-config = {
pvc = true
name = "pinchflat-config"
pvc_size = "2Mi"
mount_path = "/config"
}
pinchflat-storage = {
pvc = true
name = "pinchflat-storage"
pvc_size = "2Mi"
mount_path = "/downloads"
}
}
requirements = {
limits-cpu = "900m"
limits-memory = "600Mi"
requests-cpu = "300m"
requests-memory = "400Mi"
}
}
jobspy = {
enabled = false
connected_namespace = "stash"
image = "rainmanjam/jobspy-api:latest"
service_port = [8000]
environment = {
ENABLE_API_KEY_AUTH = {
value = "true"
}
API_KEYS = {
value = "true"
}
}
requirements = {
limits-cpu = "900m"
limits-memory = "600Mi"
requests-cpu = "300m"
requests-memory = "400Mi"
}
}
prowlarr = {
# enabled = false
image = "linuxserver/prowlarr:latest"
namespace = "servarr"
#replicas = 0
# dns_nameservers = "10.2.0.1"
service_port = [9696]
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/servarr/servarr-db.secret.yaml"]
database = {
"image" = "docker.io/library/postgres:17.5"
name = "prowlarr-main"
username = "servarr_username"
mountPath = "/var/lib/postgresql/data"
}
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
POSTGRES_DB = {
value_from = {
secret_key_ref = {
name = "servarr-db-credentials"
key = "DB_DATABASE"
}
}
}
POSTGRES_USER = {
value_from = {
secret_key_ref = {
name = "servarr-db-credentials"
key = "DB_USER"
}
}
}
POSTGRES_PASSWORD = {
value_from = {
secret_key_ref = {
name = "servarr-db-credentials"
key = "DB_PASS"
}
}
}
}
pvc = {
prowlarr-config = {
name = "prowlarr-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/config"
}
servarr-data = {
name = "servarr-data"
pvc_size = "10Mi"
pvc = false
host_path = "/data"
mount_path = "/disk"
}
}
}
radarr = {
#enabled = false
image = "lscr.io/linuxserver/radarr:latest"
connected_namespace = "servarr"
#replicas = 0
service_port = [7878]
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
}
# requirements = {
# limits-cpu = "1000m"
# limits-memory = "1Gi"
# requests-cpu = "500m"
# requests-memory = "400Mi"
# }
pvc = {
radarr-config = {
name = "radarr-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/config"
}
servarr-data = {
name = "servarr-data"
pvc_size = "10Mi"
pvc = false
host_path = "/data"
mount_path = "/disk"
}
}
}
sonarr = {
#enabled = false
image = "lscr.io/linuxserver/sonarr:latest"
connected_namespace = "servarr"
#replicas = 0
service_port = [8989]
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
}
# requirements = {
# limits-cpu = "1000m"
# limits-memory = "1Gi"
# requests-cpu = "500m"
# requests-memory = "400Mi"
# }
pvc = {
sonarr-config = {
name = "sonarr-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/config"
}
servarr-data = {
name = "servarr-data"
pvc_size = "10Mi"
pvc = false
host_path = "/data"
mount_path = "/disk"
}
}
}
recommendarr = {
enabled = false
image = "tannermiddleton/recommendarr:latest"
connected_namespace = "servarr"
#replicas = 0
service_port = [3000]
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
}
# requirements = {
# limits-cpu = "1000m"
# limits-memory = "1Gi"
# requests-cpu = "500m"
# requests-memory = "400Mi"
# }
pvc = {
recommendarr-config = {
name = "recommendarr-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/app/server/data"
}
}
}
qbittorrent = {
#enabled = false
image = "lscr.io/linuxserver/qbittorrent:latest"
connected_namespace = "servarr"
service_port = [8080]
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
WEBUI_PORT = {
value = "8080"
}
}
requirements = {
limits-cpu = "200m"
limits-memory = "250Mi"
requests-cpu = "100m"
requests-memory = "100Mi"
}
pvc = {
qbittorrent-config = {
name = "qbittorrent-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/config"
}
servarr-data = {
name = "servarr-data"
pvc_size = "10Mi"
pvc = false
host_path = "/data"
mount_path = "/disk"
}
}
}
flaresolverr = {
#image = "ghcr.io/flaresolverr/flaresolverr:latest"
image = "alexfozor/flaresolverr:pr-1300-experimental"
connected_namespace = "servarr"
#enabled = false
image = "ghcr.io/flaresolverr/flaresolverr:latest"
service_port = [8191]
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
CAPTCHA_SOLVER = { value = "hcaptcha-solver"
}
}
# requirements = {
# limits-cpu = "1000m"
# limits-memory = "1Gi"
# requests-cpu = "500m"
# requests-memory = "400Mi"
# }
}
poste = {
enabled = false
image = "analogic/poste.io:latest"
service_port = [25, 80, 110, 143, 443, 465, 587, 993, 995, 4190]
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
}
# requirements = {
# limits-cpu = "1000m"
# limits-memory = "1Gi"
# requests-cpu = "500m"
# requests-memory = "400Mi"
# }
pvc = {
poste-data = {
name = "poste-data"
pvc_size = "10Mi"
pvc = true
mount_path = "/data"
}
}
}
wikijs = {
#enabled = false
image = "ghcr.io/requarks/wiki:2.5"
service_port = [3000]
#domain_name = "wikijs"
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/wikijs/wikijs-db.secret.yaml"]
database = {
image = "postgres:17"
name = "wiki"
username = "wikijs_username"
mountPath = "/var/lib/postgresql/data"
}
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
DB_TYPE = { value = "postgres" }
DB_PORT = { value = "5432" }
POSTGRES_DB = {
value_from = {
secret_key_ref = {
name = "wikijs-db-credentials"
key = "DB_DATABASE"
}
}
}
POSTGRES_USER = {
value_from = {
secret_key_ref = {
name = "wikijs-db-credentials"
key = "DB_USER"
}
}
}
POSTGRES_PASSWORD = {
value_from = {
secret_key_ref = {
name = "wikijs-db-credentials"
key = "DB_PASS"
}
}
}
DB_NAME = {
value_from = {
secret_key_ref = {
name = "wikijs-db-credentials"
key = "DB_DATABASE"
}
}
}
DB_USER = {
value_from = {
secret_key_ref = {
name = "wikijs-db-credentials"
key = "DB_USER"
}
}
}
DB_PASS = {
value_from = {
secret_key_ref = {
name = "wikijs-db-credentials"
key = "DB_PASS"
}
}
}
DB_HOST = {
value_from = {
secret_key_ref = {
name = "wikijs-db-credentials"
key = "DB_HOST"
}
}
}
}
}
immich = {
#enabled = false
#replicas = 0
connected_namespace = "immich"
image = "ghcr.io/immich-app/immich-server:v2.5.6"
service_port = [2283]
database = {
image = "docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0"
mountPath = "/var/lib/postgresql/data"
}
redis = {
image = "docker.io/bitnami/redis:7.2.5-debian-12-r0" }
requirements = {
limits-cpu = "800m"
limits-memory = "2Gi"
requests-cpu = "10m"
requests-memory = "300Mi"
}
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/immich/immich-db.secret.yaml"]
environment = {
DB_DATABASE_NAME = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_DATABASE_NAME"
}
}
}
DB_USERNAME = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_USERNAME"
}
}
}
DB_PASSWORD = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_PASSWORD"
}
}
}
POSTGRES_DATABASE = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_DATABASE_NAME"
}
}
}
POSTGRES_USER = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_USERNAME"
}
}
}
POSTGRES_PASSWORD = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_PASSWORD"
}
}
}
POSTGRES_POSTGRES_PASSWORD = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_PASSWORD"
}
}
}
DB_HOSTNAME = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_HOST"
}
}
}
IMMICH_MACHINE_LEARNING_URL = { value = "http://machinelearning-svc:3003" }
REDIS_HOSTNAME = { value = "immich-redis-svc" }
UPLOAD_LOCATION = { value = "/tmp" }
POSTGRESQL_ENABLE_LDAP = { value = "no" }
POSTGRESQL_ENABLE_TLS = { value = "no" }
POSTGRESQL_LOG_HOSTNAME = { value = "false" }
POSTGRESQL_LOG_CONNECTIONS = { value = "false" }
POSTGRESQL_LOG_DISCONNECTIONS = { value = "false" }
POSTGRESQL_PGAUDIT_LOG_CATALOG = { value = "off" }
POSTGRESQL_CLIENT_MIN_MESSAGES = { value = "error" }
POSTGRESQL_SHARED_PRELOAD_LIBRARIES = { value = "pgaudit" }
POSTGRES_INITDB_ARGS = { value = "--data-checksums" }
BITNAMI_DEBUG = { value = "false" }
REDIS_REPLICATION_MODE = { value = "master" }
ALLOW_EMPTY_PASSWORD = { value = "yes" }
REDIS_TLS_ENABLED = { value = "no" }
REDIS_PORT = { value = "6379" }
}
pvc = {
immich-data = {
name = "immich-data"
pvc_size = "10Mi"
pvc = false
host_path = "/ssd/Image/immich/immich-storage-fastaccess"
mount_path = "/usr/src/app/upload"
}
stash-data = {
name = "stash-data"
pvc_size = "10Mi"
pvc = false
host_path = "/ssd/stash/data-pvc"
mount_path = "/stash/"
}
}
}
machinelearning = {
#enabled = false
#replicas = 0
connected_namespace = "immich"
image = "ghcr.io/immich-app/immich-machine-learning:v2.5.6"
service_port = [3003]
environment = {
DB_DATABASE_NAME = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_DATABASE_NAME"
}
}
}
DB_USERNAME = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_USERNAME"
}
}
}
DB_PASSWORD = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_PASSWORD"
}
}
}
DB_HOSTNAME = {
value_from = {
secret_key_ref = {
name = "immich-db-credentials"
key = "DB_HOST"
}
}
}
IMMICH_MACHINE_LEARNING_URL = {
value = "http://machinelearning-svc:3003"
}
REDIS_HOSTNAME = {
value = "immich-redis-svc"
}
TRANSFORMERS_CACHE = {
value = "/cache"
}
}
}
django = {
#enabled =false
namespace = "django"
image = "gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest"
service_port = [8000]
database = {
image = "docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0"
username = "django_username"
mountPath = "/var/lib/postgresql/data"
}
redis = {}
secret_ref = ["django-bitwarden-credentials"]
secret_import = ["9fc5a725-75f5-4bab-b595-b474017146c3"]
requirements = {
limits-cpu = "800m"
limits-memory = "800Mi"
requests-cpu = "10m"
requests-memory = "300Mi"
}
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/django/kubeconfig.secret.yaml", "/opt/kubernetes/Terraform_kube/external_manifests/django/django-db.secret.yaml"]
environment = {
ALLOWED_HOSTS = {
value = "django.tryton.geeraert.eu,redirect.tryton.geeraert.eu"
}
DEBUG = {
value = "False"
}
#HTTP_PROXY = {
#value = "http://gluetun-svc.gluetun.svc:8888" }
DB_PASSWORD = {
value_from = {
secret_key_ref = {
name = "django-db-credentials"
key = "DB_PASSWORD"
}
}
}
POSTGRES_DB = {
value_from = {
secret_key_ref = {
name = "django-db-credentials"
key = "DB_DATABASE_NAME"
}
}
}
POSTGRES_USER = {
value_from = {
secret_key_ref = {
name = "django-db-credentials"
key = "DB_USERNAME"
}
}
}
POSTGRES_PASSWORD = {
value_from = {
secret_key_ref = {
name = "django-db-credentials"
key = "DB_PASSWORD"
}
}
}
DB_HOSTNAME = {
value_from = {
secret_key_ref = {
name = "django-db-credentials"
key = "DB_HOST"
}
}
}
}
pvc = {
kubeconfig-secret = {
secret = true
name = "kubeconfig"
mount_path = "/kubeconfig"
}
stash-django-pvc = {
host_path = "/ssd/stash/data-pvc/"
name = "stash-django-pvc"
pvc_size = "2Mi"
mount_path = "/stash"
}
}
}
celery-worker = {
#enabled = false
connected_namespace = "django"
image = "gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest"
command = ["celery", "--workdir=django_code/", "-A", "core", "worker"]
secret_ref = ["django-bitwarden-credentials"]
pvc = {
#kubeconfig-secret = {
# secret = true
# name = "kubeconfig"
# mount_path = "/kubeconfig"
#}
stash-django-pvc = {
host_path = "/ssd/stash/data-pvc/"
name = "stash-django-pvc"
pvc_size = "2Mi"
mount_path = "/stash"
}
}
environment = {
CELERY_BROKER_URL = {
value = "redis://django-redis-svc:6379"
}
CELERY_IMPORTS = {
value = "stash_management.apps" }
}
HTTP_PROXY = {
value = "http://gluetun-svc.gluetun.svc:8888" }
PYTHONPATH = {
value = "/code/django_code/" }
}
django-testing = {
#enabled =false
image = "gitea.tryton.geeraert.eu/pi-ux-ce/django-testing:latest"
service_port = [8000]
database = {}
requirements = {
limits-cpu = "800m"
limits-memory = "800Mi"
requests-cpu = "10m"
requests-memory = "300Mi"
}
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/django/kubeconfig-testing.secret.yaml"]
secret_ref = ["django-bitwarden-credentials"]
secret_import = ["68dce7aa-8e5f-4483-9083-b474016e34fc"]
environment = {
ALLOWED_HOSTS = {
value = "django-testing.tryton.geeraert.eu,redirect.tryton.geeraert.eu,redirect-testing.tryton.geeraert.eu,job-testing.tryton.geeraert.eu"
}
DEBUG = {
value = "true"
}
DB_PORT = {
value = 5432
}
CUSTOM_DB_DATABASE = {
value = "cloudmanager" }
}
pvc = {
kubeconfig-secret = {
secret = true
name = "kubeconfig"
mount_path = "/kubeconfig"
}
}
}
keycloak = {
enabled = false
name = "keycloak"
image = "quay.io/keycloak/keycloak:25.0.1"
service_port = [8080]
command = ["/opt/keycloak/bin/kc.sh", "start-dev"]
environment = {
KEYCLOAK_ADMIN = {
value = "admin"
}
KEYCLOAK_ADMIN_PASSWORD = {
value = "admin"
}
#KC_DB = {
# value = "dev-mem"
#}
KC_HTTP_ENABLED = {
value = "true"
}
KC_PROXY_HEADERS = {
value = "xforwarded"
}
KC_HOSTNAME_STRICT = {
value = "false"
}
KC_HOSTNAME = {
value = "https://keycloak.tryton.geeraert.eu"
}
KC_HOSTNAME_ADMIN = {
value = "https://keycloak.tryton.geeraert.eu"
}
}
requirements = {
limits-cpu = "1000m"
limits-memory = "1Gi"
requests-cpu = "500m"
requests-memory = "400Mi"
}
}
echo = {
enabled = false
image = "ealen/echo-server:latest"
service_port = [80]
# command = ["-text=Hello authenticated world!"]
pvc = {
echo-config = {
name = "echo-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/app/configs"
}
}
}
echo2 = {
enabled = false
connected_namespace = "echo"
image = "ealen/echo-server:latest"
service_port = [80]
# command = ["-text=Hello authenticated world!"]
pvc = {
echo-config = {
name = "echo-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/app/configs"
existing_pvc = true
}
}
}
oauth2-proxy = {
enabled = false
image = "quay.io/oauth2-proxy/oauth2-proxy:latest"
service_port = [4180]
environment = {
OAUTH2_PROXY_PROVIDER = {
value = "oidc"
}
OAUTH2_PROXY_CLIENT_ID = {
value = "my-client"
}
OAUTH2_PROXY_CLIENT_SECRET = {
value = "el7RU2DKXhjxhF1wasyz1KhTppvw2lF4"
}
OAUTH2_PROXY_COOKIE_SECRET = {
value = "K70xBsslOnUFh9ehCggywlfb0c8OTzRRiOzdIuDz168="
}
OAUTH2_PROXY_COOKIE_DOMAIN = {
value = "oauthn.tryton.geeraert.eu"
#value = "*.tryton.geeraert.eu"
}
OAUTH2_PROXY_OIDC_ISSUER_URL = {
value = "https://keycloak.tryton.geeraert.eu/realms/customer"
}
OAUTH2_PROXY_REDIRECT_URL = {
value = "https://echo.tryton.geeraert.eu/oauth2/callback"
}
OAUTH2_PROXY_EMAIL_DOMAINS = {
value = "*"
}
OAUTH2_PROXY_HTTP_ADDRESS = {
value = "0.0.0.0:4180"
}
}
}
tdarr = {
#enabled = false
image = "ghcr.io/haveagitgat/tdarr"
connected_namespace = "servarr"
service_port = [8265, 8266]
pvc = {
tdarr-config = {
name = "tdarr-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/app/configs"
}
tdarr-server = {
name = "tdarr-server"
pvc_size = "10Mi"
pvc = true
mount_path = "/app/server"
}
tdarr-log = {
name = "tdarr-log"
pvc_size = "10Mi"
pvc = true
mount_path = "/app/logs"
}
servarr-data = {
name = "servarr-data"
pvc_size = "10Mi"
pvc = false
host_path = "/data"
mount_path = "/media"
}
stash-data = {
name = "stash-data"
pvc_size = "10Mi"
pvc = false
host_path = "/ssd/stash/data-pvc/"
mount_path = "/stash"
}
tdarr-dri = {
name = "tdarr-dri"
pvc_size = "10Mi"
pvc = false
host_path = "/dev/dri"
mount_path = "/dev/dri"
}
tdarr-transcode-cache = {
name = "tdarr-transcode-cache"
pvc_size = "10Mi"
pvc = true
mount_path = "/transcode-cache"
}
}
environment = {
serverIP = {
value = "0.0.0.0"
}
serverPort = {
value = "8266"
}
webUIPort = {
value = "8265"
}
internalNode = {
value = "true"
}
inContainer = {
value = "true"
}
ffmpegVersion = {
value = "7"
}
nodeName = {
value = "MyInternalNode"
}
auth = {
value = "false"
}
openBrowser = {
value = "true"
}
maxLogSizeMB = {
value = "10"
}
cronPluginUpdate = {
value = ""
}
TZ = {
value = "Europe/London"
}
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
NVIDIA_DRIVER_CAPABILITIES = {
value = "all"
}
NVIDIA_VISIBLE_DEVICES = {
value = "all"
}
}
}
tdarr-node = {
enabled = false
image = "ghcr.io/haveagitgat/tdarr_node"
connected_namespace = "servarr"
replicas = 2
service_port = [8268]
pvc = {
tdarrnode-config = {
name = "tdarrnode-config"
pvc_size = "10Mi"
pvc = false
host_path = "/data/kubernetes/servarr/tdarr-config-pvc"
mount_path = "/app/configs"
}
tdarrnode-log = {
name = "tdarrnode-log"
pvc_size = "10Mi"
pvc = true
mount_path = "/app/logs"
}
servarr-data = {
name = "servarr-data"
pvc_size = "10Mi"
pvc = false
host_path = "/data"
mount_path = "/media"
}
tdarrnode-dri = {
name = "tdarrnode-dri"
pvc_size = "10Mi"
pvc = false
host_path = "/dev/dri"
mount_path = "/dev/dri"
}
tdarrnode-transcode-cache = {
name = "tdarrnode-transcode-cache"
pvc_size = "10Mi"
pvc = false
host_path = "/data/kubernetes/servarr/tdarr-transcode-cache-pvc"
mount_path = "/transcode-cache"
}
}
environment = {
serverIP = {
value = "tdarr-svc"
}
serverPort = {
value = "8266"
}
nodeType = {
value = "mapped"
}
priority = {
value = "-1"
}
inContainer = {
value = "true"
}
ffmpegVersion = {
value = "7"
}
# nodeName = {
# value = "MyExternalNode"
# }
maxLogSizeMB = {
value = "10"
}
cronPluginUpdate = {
value = ""
}
TZ = {
value = "Europe/London"
}
apikey = {
value = ""
}
pollInterval = {
value = "2000"
}
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
NVIDIA_DRIVER_CAPABILITIES = {
value = "all"
}
NVIDIA_VISIBLE_DEVICES = {
value = "all"
}
startPaused = {
value = "false"
}
transcodegpuWorkers = {
value = "0"
}
transcodecpuWorkers = {
value = "2"
}
healthcheckgpuWorkers = {
value = "0"
}
healthcheckcpuWorkers = {
value = "1"
}
}
}
tdarr-node2 = {
enabled = false
image = "ghcr.io/haveagitgat/tdarr_node"
connected_namespace = "servarr"
replicas = 1
service_port = [8268]
pvc = {
tdarrnode2-config = {
name = "tdarrnode2-config"
pvc_size = "10Mi"
pvc = false
host_path = "/data/kubernetes/servarr/tdarr-config-pvc"
mount_path = "/app/configs"
}
tdarrnode2-log = {
name = "tdarrnode2-log"
pvc_size = "10Mi"
pvc = true
mount_path = "/app/logs"
}
nfs-data = {
name = "nfs-data"
pvc_size = "10Mi"
pvc = false
host_path = "/mnt/serie"
mount_path = "/mnt/serie"
}
tdarrnode2-dri = {
name = "tdarrnode2-dri"
pvc_size = "10Mi"
pvc = false
host_path = "/dev/dri"
mount_path = "/dev/dri"
}
tdarrnode2-transcode-cache = {
name = "tdarrnode2-transcode-cache"
pvc_size = "10Mi"
pvc = false
host_path = "/mnt/cache"
mount_path = "/mnt/cache"
}
}
environment = {
serverIP = {
#value = "tdarr-svc"
value = "192.168.88.34"
}
serverPort = {
value = "8266"
}
nodeType = {
value = "mapped"
}
priority = {
value = "-1"
}
inContainer = {
value = "true"
}
ffmpegVersion = {
value = "7"
}
#nodeName = {
# value = "MyExternalNode2"
#}
maxLogSizeMB = {
value = "10"
}
pathTranslators = {
value = "W3sic2VydmVyIjoiWjoiLCJub2RlIjoiL21udC9zZXJpZSJ9LHsic2VydmVyIjogIlk6Iiwibm9kZSI6ICIvbW50L2NhY2hlL3RkYXJyLWNhY2hlIn1dCg=="
}
cronPluginUpdate = {
value = ""
}
TZ = {
value = "Europe/London"
}
apikey = {
value = ""
}
pollInterval = {
value = "2000"
}
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
NVIDIA_DRIVER_CAPABILITIES = {
value = "all"
}
NVIDIA_VISIBLE_DEVICES = {
value = "all"
}
startPaused = {
value = "false"
}
transcodegpuWorkers = {
value = "0"
}
transcodecpuWorkers = {
value = "2"
}
healthcheckgpuWorkers = {
value = "0"
}
healthcheckcpuWorkers = {
value = "1"
}
}
}
bitwarden-admin = {
#enabled = false
namespace = "bitwarden"
replicas = 1
name = "bitwarden-admin"
image = "ghcr.io/bitwarden/admin:2026.1.0"
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/bitwarden/config.configmap.yml", "/opt/kubernetes/Terraform_kube/external_manifests/bitwarden/global.env.configmap.yml", "/opt/kubernetes/Terraform_kube/external_manifests/bitwarden/global.override.env.configmap.yml", "/opt/kubernetes/Terraform_kube/external_manifests/bitwarden/mssql.env.configmap.yml", "/opt/kubernetes/Terraform_kube/external_manifests/bitwarden/mssql.override.env.configmap.yml", "/opt/kubernetes/Terraform_kube/external_manifests/bitwarden/uid.env.configmap.yml", "/opt/kubernetes/Terraform_kube/external_manifests/bitwarden/bitwarden-identity-cert-password.secret.yml", "/opt/kubernetes/Terraform_kube/external_manifests/bitwarden/identity-svc.svc.yaml"]
service_port = [5000]
config_map_ref = ["global.env", "uid.env", "global.override.env"]
environment = {}
pvc = {
bitwarden-ca-certificates = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/ca-certificates"
name = "bitwarden-ca-certificates"
}
bitwarden-core = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/core"
name = "bitwarden-core"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/logs"
name = "bitwarden-logs"
sub_path = "admin"
}
}
}
bitwarden-api = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-api"
image = "gitea.tryton.geeraert.eu/pi-ux-ce/bitbetter_api:2026.1.0"
service_port = [5000]
config_map_ref = ["global.env", "uid.env", "global.override.env"]
environment = {}
pvc = {
bitwarden-ca-certificates = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/ca-certificates"
name = "bitwarden-ca-certificates"
}
bitwarden-core = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/core"
name = "bitwarden-core"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/logs"
name = "bitwarden-logs"
sub_path = "api"
}
}
}
bitwarden-attachments = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-attachments"
image = "ghcr.io/bitwarden/attachments:2026.1.0"
service_port = [5000]
config_map_ref = ["global.env", "uid.env"]
environment = {}
pvc = {
bitwarden-core = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/core/attachments"
name = "bitwarden-core"
sub_path = "attachments"
}
}
}
bitwarden-events = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-events"
image = "ghcr.io/bitwarden/events:2026.1.0"
service_port = [5000]
config_map_ref = ["global.env", "uid.env", "global.override.env"]
environment = {}
pvc = {
bitwarden-ca-certificates = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/ca-certificates"
name = "bitwarden-ca-certificates"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/logs"
name = "bitwarden-logs"
sub_path = "events"
}
}
}
bitwarden-icons = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-icons"
image = "ghcr.io/bitwarden/icons:2026.1.0"
service_port = [5000]
config_map_ref = ["global.env", "uid.env"]
environment = {}
pvc = {
bitwarden-ca-certificates = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/ca-certificates"
name = "bitwarden-ca-certificates"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/logs"
name = "bitwarden-logs"
sub_path = "icons"
}
}
}
bitwarden-identity = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-identity"
image = "gitea.tryton.geeraert.eu/pi-ux-ce/bitbetter_identity:2026.1.0"
service_port = [5000]
config_map_ref = ["global.env", "uid.env", "global.override.env"]
environment = {}
pvc = {
bitwarden-identity = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/identity"
name = "bitwarden-identity"
}
bitwarden-ca-certificates = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/ca-certificates"
name = "bitwarden-ca-certificates"
}
bitwarden-core = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/core"
name = "bitwarden-core"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/logs"
name = "bitwarden-logs"
sub_path = "identity"
}
}
}
bitwarden-mssql = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-mssql"
image = "ghcr.io/bitwarden/mssql:2026.1.0"
service_port = [1433, 5000]
config_map_ref = ["mssql.env", "uid.env", "mssql.override.env"]
environment = {}
database = {
shunt = "true"
engine = "sqlserver"
username = "sa"
host = "bitwarden-mssql-svc"
name = "bitwarden_vault"
}
pvc = {
bitwarden-mssql = {
pvc = true
pvc_size = "2Mi"
mount_path = "/var/opt/mssql/data"
name = "bitwarden-mssql"
sub_path = "data"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/logs"
name = "bitwarden-logs"
sub_path = "mssql"
}
}
}
bitwarden-nginx = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-nginx"
image = "ghcr.io/bitwarden/nginx:2026.1.0"
service_port = [5000, 8080, 8443]
config_map_ref = ["uid.env"]
environment = {}
pvc = {
bitwarden-nginx = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/nginx"
name = "bitwarden-nginx"
}
bitwarden-letsencrypt = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/letsencrypt"
name = "bitwarden-letsencrypt"
}
bitwarden-ssl = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/ssl"
name = "bitwarden-ssl"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/var/log/nginx"
name = "bitwarden-logs"
sub_path = "nginx"
}
}
}
bitwarden-notifications = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-notifications"
image = "ghcr.io/bitwarden/notifications:2026.1.0"
service_port = [5000]
config_map_ref = ["global.env", "uid.env", "global.override.env"]
environment = {}
pvc = {
bitwarden-ca-certificates = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/ca-certificates"
name = "bitwarden-ca-certificates"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/logs"
name = "bitwarden-logs"
sub_path = "notifications"
}
}
}
bitwarden-sso = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-sso"
image = "ghcr.io/bitwarden/sso:2026.1.0"
service_port = [5000]
config_map_ref = ["global.env", "uid.env", "global.override.env"]
environment = {}
pvc = {
bitwarden-identity = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/identity"
name = "bitwarden-identity"
}
bitwarden-core = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/core"
name = "bitwarden-core"
}
bitwarden-ca-certificates = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/ca-certificates"
name = "bitwarden-ca-certificates"
}
bitwarden-logs = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/logs"
name = "bitwarden-logs"
sub_path = "sso"
}
}
}
bitwarden-web = {
#enabled = false
connected_namespace = "bitwarden"
replicas = 1
name = "bitwarden-web"
image = "ghcr.io/bitwarden/web:2026.1.0"
service_port = [5000]
config_map_ref = ["global.env", "uid.env"]
environment = {}
pvc = {
bitwarden-web = {
pvc = true
pvc_size = "2Mi"
mount_path = "/etc/bitwarden/web"
name = "bitwarden-web"
}
}
}
overleaf = {
enabled = false
#image = "sharelatex/sharelatex:6.1.2"
image = "tuetenk0pp/sharelatex-full:latest"
replicas = 1
environment = {
MONGO_URL = {
value = "mongodb://overleaf-db-svc:27017/overleaf"
}
REDIS_URL = {
value = "redis://overleaf-redis-svc:6379"
}
OVERLEAF_MONGO_URL = {
value = "mongodb://overleaf-db-svc:27017/overleaf"
}
OVERLEAF_REDIS_HOST = {
value = "overleaf-redis-svc"
}
REDIS_HOST = {
value = "overleaf-redis-svc"
}
REDIS_PORT = {
value = "6379"
}
TZ = {
value = "Etc/UTC"
}
VERBOSITY = {
value = "-vv" }
}
service_port = [80]
database = {
"image" = "mongo:8.0"
"port" = 27017
"mountPath" = "/data/db"
#initialise the replicaset of the mongo DB
#kubectl exec -it <mongo-pod-name> -- mongosh
#cfg = rs.conf()
#cfg.members[0].host = "mongodb:27017" // ← your K8s Service name + port
#rs.reconfig(cfg, { force: true })
#rs.status()
#// members[0].name should now show "mongodb:27017"
}
database_args = ["--replSet", "overleaf"]
redis = {
image = "redis:7.4" }
pvc = {
overleaf-data = {
pvc = true
pvc_size = "2Mi"
mount_path = "/var/lib/overleaf"
name = "overleaf-data"
}
overleaf-package = {
pvc = true
pvc_size = "2Mi"
mount_path = "/usr/local/texlive/"
name = "overleaf-package"
}
}
}
fail2ban = {
# enabled = false
#image = "lscr.io/linuxserver/fail2ban:latest"
image = "gitea.tryton.geeraert.eu/pi-ux-ce/fail2ban:latest"
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/fail2ban/fail2ban.RoleBinding.yaml", "/opt/kubernetes/Terraform_kube/external_manifests/fail2ban/fail2ban.Role.yaml", "/opt/kubernetes/Terraform_kube/external_manifests/fail2ban/fail2ban.ServiceAccount.yaml"]
service_account_name = "kubectl-service-account"
config_map_import = ["9d8ef71a-de74-478b-aa86-b3ee0160dc43", "50814edb-d190-41cb-8950-b3ee01622dcf", "fb11452e-fec1-489f-9144-b3ee0162ccda"]
environment = {
PUID = {
value = "1000"
}
PGID = {
value = "1000"
}
TZ = {
value = "Etc/UTC"
}
VERBOSITY = {
value = "-vv" }
}
security_context = true
pvc = {
fail2ban-config = {
pvc = true
pvc_size = "2Mi"
mount_path = "/config"
name = "fail2ban-config"
}
fail2ban-log = {
pvc = true
pvc_size = "2Mi"
mount_path = "/var/log"
name = "fail2ban-log"
}
nginx-fail2ban-logs = {
host_path = "/data/kubernetes/reverse-proxy/reverse-proxy-log/"
name = "nginx-fail2ban-logs"
pvc_size = "2Mi"
mount_path = "/remotelogs/nginx/"
}
fail2ban-nginx-http-auth-jail = {
config_map = true
name = "fail2ban-nginx-http-auth-jail"
pvc_size = "2Mi"
mount_path = "/config/fail2ban/jail.d/"
}
fail2ban-nginx-unauthorized-filter = {
config_map = true
name = "fail2ban-nginx-unauthorized-filter"
pvc_size = "2Mi"
mount_path = "/config/fail2ban/filter.d/"
}
}
}
nextcloudt = {
enabled = false
replicas = 1
image = "nextcloud:29.0.3-apache"
service_port = [80]
domain_name = "nextcloudnew"
database = {
image = "docker.io/library/postgres:14" }
pvc = {
nextcloud-webserver = {
name = "nextcloud-webserver"
pvc = true
pvc_size = "2Gi"
mount_path = "/var/www/html"
}
}
}
reactive = {
#disabled because it needs AI to import a pdf and AI integration is not working
enabled = false
replicas = 01
domain_name = "reactive"
image = "ghcr.io/amruthpillai/reactive-resume:latest"
service_port = [3000]
environment = {
AUTH_SECRET = {
value = "change-me-to-a-secure-secret-key-in-production"
}
PRINTER_ENDPOINT = {
value = "ws://browserless:3000?token=change-me"
}
APP_URL = {
value = "https://reactive.tryton.geeraert.eu"
}
AI_ALLOWED_BASE_URLS = {
value = "api.openai.com,https://gateway.ai.vercel.com"
}
}
database = {}
pvc = {
reactive-resume-data = {
name = "reactive-resume-data"
pvc = true
pvc_size = "2Gi"
mount_path = "/app/data"
}
}
}
}