diff --git a/apps/dbgate/configs.tf b/apps/dbgate/configs.tf index 6b8119d..bd5adac 100644 --- a/apps/dbgate/configs.tf +++ b/apps/dbgate/configs.tf @@ -31,6 +31,10 @@ locals { join("_",["SERVER_redis", m.namespace, m.name]) = join(".",[m.name, m.namespace, "svc"]) join("_",["PORT_redis", m.namespace, m.name]) = "6379" }]...) + redis-privs = [for m in var.redis: merge({secret = lookup(m,"secret",{})},m) if contains(keys(m),"secret")] + redis_secrets = merge([for index, m in var.redis-privs: { + join("_",["PASSWORD_redis", m.namespace, m.name]) = data.kubernetes_secret_v1.redis[index].data[lookup(m.secret,"key", "password")] + }]...) redis_conns = [for m in var.redis: join("_",["redis", m.namespace, m.name])] mongo_vars = merge([for m in var.mongo: { @@ -90,3 +94,10 @@ data "kubernetes_secret_v1" "mongos" { namespace = "${var.mongo[count.index].namespace}" } } +data "kubernetes_secret_v1" "redis" { + count = length(var.redis-privs) + metadata { + name = "${lookup(var.redis-privs[count.index].secret, "name", var.redis-privs[count.index].name)}" + namespace = "${var.redis-privs[count.index].namespace}" + } +} diff --git a/apps/dbgate/index.yaml b/apps/dbgate/index.yaml index bc46f77..ec3d9f2 100644 --- a/apps/dbgate/index.yaml +++ b/apps/dbgate/index.yaml @@ -6,25 +6,79 @@ metadata: name: dbgate description: null options: - redis: + ingress-class: + default: traefik + examples: + - traefik + type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + pg: default: [] examples: - [] items: properties: + dbname: + default: '' + type: string name: default: '' type: string namespace: default: '' type: string + secret: + properties: + key: + default: '' + type: string + name: + default: '' + type: string + type: object + username: + default: '' + type: string type: object type: array - domain-name: - default: your_company.com + issuer: + default: letsencrypt-prod examples: - - your_company.com + - letsencrypt-prod type: string + mongo: + default: [] + examples: + - [] + items: + properties: + dbname: + default: '' + type: string + name: + default: '' + type: string + namespace: + default: '' + type: string + secret: + properties: + key: + default: '' + type: string + name: + default: '' + type: string + type: object + username: + default: '' + type: string + type: object + type: array maria: default: [] examples: @@ -93,60 +147,26 @@ options: type: string type: object type: object - use-oauth: - default: false - examples: - - false - type: boolean - mongo: - default: [] - examples: - - [] - items: - properties: - dbname: - default: '' - type: string - name: - default: '' - type: string - namespace: - default: '' - type: string - secret: - properties: - key: - default: '' - type: string - name: - default: '' - type: string - type: object - username: - default: '' - type: string - type: object - type: array - app-group: - default: dev - examples: - - dev - type: string sub-domain: default: dbgate examples: - dbgate type: string - ingress-class: - default: traefik + use-oauth: + default: false examples: - - traefik - type: string + - false + type: boolean domain: default: your-company examples: - your-company type: string + app-group: + default: dev + examples: + - dev + type: string storage: default: accessMode: ReadWriteOnce @@ -174,38 +194,18 @@ options: - Block type: string type: object - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - pg: + redis: default: [] examples: - [] items: properties: - dbname: - default: '' - type: string name: default: '' type: string namespace: default: '' type: string - secret: - properties: - key: - default: '' - type: string - name: - default: '' - type: string - type: object - username: - default: '' - type: string type: object type: array dependencies: