This commit is contained in:
2023-10-15 09:58:57 +02:00
parent bf1a7dc608
commit e9ea7ee094
5 changed files with 293 additions and 245 deletions

View File

@@ -14,6 +14,15 @@ locals {
"backups" = var.backups
"app-group" = var.app-group
}
global-apps = merge(local.global, {"domain-name" = "devtools.${var.domain-name}"})
dev-ns = concat([
for station in local.sorted-station-names: "${var.domain}-devspaces-${station}"
],flatten([
for org in local.sorted-organisations:[
for stage in reverse(distinct(sort([for s in org.stages: s.name]))): "${var.domain}-${org.name}-${stage}"
]
]))
okd = merge({"namespaces" = local.dev-ns}, { for k, v in var.apps.okd : k => v if k!="enable" })
dbgate = { for k, v in var.apps.dbgate : k => v if k!="enable" }
# dbgate_pgs = flatten([for i in local.sorted-datasets: [
# for db in
@@ -21,7 +30,7 @@ locals {
}
resource "kubernetes_namespace_v1" "apps-ns" {
count = var.apps.dbgate.enable ? 1 : 0
count = (var.apps.dbgate.enable || var.apps.okd.enable) ? 1 : 0
metadata {
annotations = local.annotations
labels = merge(local.common-labels, local.annotations)
@@ -29,6 +38,24 @@ resource "kubernetes_namespace_v1" "apps-ns" {
}
}
resource "kubectl_manifest" "okd" {
count = var.apps.okd.enable ? 1 : 0
depends_on = [kubernetes_namespace_v1.apps-ns]
yaml_body = <<-EOF
apiVersion: "vynil.solidite.fr/v1"
kind: "Install"
metadata:
name: "dev-okd"
namespace: "${kubernetes_namespace_v1.apps-ns[0].metadata[0].name}"
labels: ${jsonencode(local.common-labels)}
spec:
distrib: "${var.distributions.domain}"
category: "apps"
component: "okd"
options: ${jsonencode(merge(local.global-apps, local.okd))}
EOF
}
resource "kubectl_manifest" "dbgate" {
count = var.apps.dbgate.enable ? 1 : 0
depends_on = [kubernetes_namespace_v1.apps-ns]
@@ -37,12 +64,12 @@ resource "kubectl_manifest" "dbgate" {
kind: "Install"
metadata:
name: "dbgate"
namespace: "${var.namespace}-devapps"
namespace: "${kubernetes_namespace_v1.apps-ns[0].metadata[0].name}"
labels: ${jsonencode(local.common-labels)}
spec:
distrib: "${var.distributions.domain}"
category: "apps"
component: "dbgate"
options: ${jsonencode(merge(local.global, local.dbgate))}
options: ${jsonencode(merge(local.global-apps, local.dbgate))}
EOF
}