diff --git a/module.tf b/module.tf index c2b608f..ad19147 100644 --- a/module.tf +++ b/module.tf @@ -13,11 +13,13 @@ variable "kubernetes" { image = string pvc = optional(map(object({ name = string + pvc = optional(bool) + configmap = optional(bool) pvc_size = string mount_path = string # database = optional(bool,false) }))) - secret = optional(map(string)) + #secret = optional(map(string)) environment = optional(map(object({ name = optional(string) value = optional(string) @@ -380,12 +382,18 @@ resource "kubernetes_deployment_v1" "automatic" { dynamic "volume" { - for_each = each.value.pvc != null ? each.value.pvc : {} + for_each = each.value.pvc != null ? each.value.pvc : {} content { name = "${volume.value.name}-pvc" - persistent_volume_claim { - claim_name = "${volume.value.name}-pvc" + + dynamic "persistent_volume_claim" { + for_each = volume.value.pvc ? [1] : [] + + content { + claim_name = "${volume.value.name}-pvc" + } } + } } diff --git a/variables.auto.tfvars b/variables.auto.tfvars index 945bab6..6df9a50 100644 --- a/variables.auto.tfvars +++ b/variables.auto.tfvars @@ -26,85 +26,33 @@ kubernetes = { namespace = "onitama" image = "ghcr.io/jackadamson/onitama:latest" service_port = 8080 - redis = { - image = "hello" - } - database = {} requirements = { limits-cpu = "50m" limits-memory = "50Mi" requests-cpu = "25m" requests-memory = "25Mi" } + pvc = { + first = { + name = "nginx" + pvc = true + pvc_size = "1Mi" + mount_path = "/code" + } + } + + # secret_ref = ["secret1", "secret2"] environment = { - # MY_VAR = { - # value_from = { - # secret_key_ref = { - # name = "mysecret" - # key = "latest" - # } - # } - # } - POSTGRES_DB = { - value_from = { - secret_key_ref = { - name = "mysecret" - key = "POSTGRES_DB" - } - } - } - POSTGRES_USER = { - value_from = { - secret_key_ref = { - name = "mysecret" - key = "POSTGRES_USER" - } - } - } - POSTGRES_PASSWORD = { - value_from = { - secret_key_ref = { - name = "mysecret" - key = "POSTGRES_PASSWORD" - } - } - } - # POSTGRES_DB = { - # value = "db" - # } - # POSTGRES_USER = { - # value = "user" - # } - # POSTGRES_PASSWORD = { - # value = "password" - # } PORT = { value = "80" } } - pvc = { - onitamadeux = { - name = "onitamadeux" - pvc_size = "2Mi" - mount_path = "/deuxcode" - } - onitama = { - name = "onitama" - pvc_size = "1Mi" - mount_path = "/code" - } - # database = { - # name = "databaseonitama" - # pvc_size = "1Mi" - # mount_path = "/sql" - # database = true - # } - } + } nginx = { - enabled = true + enabled = false namespace = "testnginx" #image = "localhost:31795/django-python" image = "nginx:latest" @@ -315,16 +263,19 @@ kubernetes = { } paper = { - enabled = false + enabled = true namespace = "paper" image = "ghcr.io/paperless-ngx/paperless-ngx:latest" service_port = 8000 - database = {} + database = { + image = "docker.io/library/postgres:15" } + redis = { + image = "docker.io/library/redis:7" } requirements = { - limits-cpu = "50m" - limits-memory = "50Mi" - requests-cpu = "25m" - requests-memory = "25Mi" + limits-cpu = "800Mi" + limits-memory = "800Mi" + requests-cpu = "800Mi" + requests-memory = "800Mi" } environment = { POSTGRES_DB = { @@ -358,39 +309,64 @@ kubernetes = { value_from = { secret_key_ref = { name = "mysecret" - key = "POSTGRES_DB" + key = "POSTGRES_HOST" } } } + PAPERLESS_REDIS = { + value = "redis://paper-redis-svc:6379" + } + PAPERLESS_ADMIN_USER = { - value = "admin" + value_from = { + secret_key_ref = { + name = "mysecret" + key = "POSTGRES_USER" + } + } } PAPERLESS_ADMIN_PASSWORD = { - value = "admin" + value_from = { + secret_key_ref = { + name = "mysecret" + 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" } media = { + pvc = false name = "media" pvc_size = "2Mi" mount_path = "/usr/src/paperless/media" } export = { + pvc = true 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" @@ -400,6 +376,91 @@ 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" + + } + 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" + } + 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" + mount_path = "/var/www/html" + } + } + + + + } } - -