82 lines
3.1 KiB
HCL
82 lines
3.1 KiB
HCL
locals {
|
|
annotations = {
|
|
"vynil.solidite.fr/meta" = var.component
|
|
"vynil.solidite.fr/name" = var.namespace
|
|
"vynil.solidite.fr/domain" = var.domain_name
|
|
"vynil.solidite.fr/issuer" = var.issuer
|
|
"vynil.solidite.fr/ingress" = var.ingress_class
|
|
}
|
|
global = {
|
|
"domain" = var.namespace
|
|
"domain_name" = var.domain_name
|
|
"issuer" = var.issuer
|
|
"ingress_class" = var.ingress_class
|
|
"backups" = var.backups
|
|
}
|
|
default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce"
|
|
gitea = { for k, v in var.gitea : k => v if !contains(["enable","volume"],k) }
|
|
gitea-storage = {
|
|
"volume" = {
|
|
"size" = lookup(lookup(local.gitea, "volume",{}), "size", "20Gi")
|
|
"accessMode" = lookup(lookup(local.gitea, "volume",{}), "accessMode", local.default-mode)
|
|
}
|
|
}
|
|
woodpecker = { for k, v in var.woodpecker : k => v if k!="enable" }
|
|
woodpecker-storage = merge({
|
|
"storage-server" = {
|
|
"size" = lookup(lookup(local.woodpecker, "storage-server",{}), "size", "10Gi")
|
|
"accessMode" = lookup(lookup(local.woodpecker, "storage-server",{}), "accessMode", local.default-mode)
|
|
}
|
|
"storage-agent" = {
|
|
"size" = lookup(lookup(local.woodpecker, "storage-agent",{}), "size", "10Gi")
|
|
"writeMany" = lookup(lookup(local.woodpecker, "storage-agent",{}), "writeMany", var.storage-classes.FilesystemReadWriteMany!=""?"true":"false")
|
|
"storageClass" = lookup(lookup(local.woodpecker, "storage-agent",{}), "storageClass", var.storage-classes.FilesystemReadWriteMany!=""?var.storage-classes.FilesystemReadWriteMany:var.storage-classes.FilesystemReadWriteOnce)
|
|
}
|
|
}, { for k, v in var.woodpecker : k => v if contains(["storage-server","storage-agent"],k) })
|
|
}
|
|
|
|
resource "kubernetes_namespace_v1" "ci-ns" {
|
|
count = ( var.gitea.enable )? 1 : 0
|
|
metadata {
|
|
annotations = local.annotations
|
|
labels = merge(local.common-labels, local.annotations)
|
|
name = "${var.namespace}-ci"
|
|
}
|
|
}
|
|
|
|
resource "kubectl_manifest" "gitea" {
|
|
count = var.gitea.enable ? 1 : 0
|
|
depends_on = [kubernetes_namespace_v1.ci-ns]
|
|
yaml_body = <<-EOF
|
|
apiVersion: "vynil.solidite.fr/v1"
|
|
kind: "Install"
|
|
metadata:
|
|
name: "gitea"
|
|
namespace: "${var.namespace}-ci"
|
|
labels: ${jsonencode(local.common-labels)}
|
|
spec:
|
|
distrib: "${var.distributions.domain}"
|
|
category: "apps"
|
|
component: "gitea"
|
|
options: ${jsonencode(merge(local.global, local.gitea-storage, local.gitea))}
|
|
EOF
|
|
}
|
|
|
|
resource "kubectl_manifest" "woodpecker" {
|
|
count = var.woodpecker.enable ? 1 : 0
|
|
depends_on = [kubernetes_namespace_v1.ci-ns]
|
|
yaml_body = <<-EOF
|
|
apiVersion: "vynil.solidite.fr/v1"
|
|
kind: "Install"
|
|
metadata:
|
|
name: "woodpecker"
|
|
namespace: "${var.namespace}-ci"
|
|
labels: ${jsonencode(local.common-labels)}
|
|
spec:
|
|
distrib: "${var.distributions.domain}"
|
|
category: "apps"
|
|
component: "woodpecker"
|
|
options: ${jsonencode(merge(local.global, local.woodpecker-storage, local.woodpecker))}
|
|
EOF
|
|
}
|