This commit is contained in:
2023-10-19 13:07:09 +02:00
parent fb3e9f56eb
commit a6ae543cfe
40 changed files with 963 additions and 1080 deletions

View File

@@ -1,27 +1,7 @@
locals {
onlyoffice-labels = merge(local.common-labels, {
"app.kubernetes.io/component" = "onlyoffice"
})
dns-onlyoffice = "onlyoffice.${local.dns-name}"
onlyoffice-middlewares = ["${var.instance}-https"]
onlyoffice-service = {
"name" = "${var.instance}-onlyoffice"
"port" = {
"number" = 80
}
}
onlyoffice-rules = [ for v in [local.dns-onlyoffice] : {
"host" = "${v}"
"http" = {
"paths" = [{
"backend" = {
"service" = local.onlyoffice-service
}
"path" = "/"
"pathType" = "Prefix"
}]
}
}]
onlyoffice-labels = merge(local.common-labels, {
"app.kubernetes.io/component" = "onlyoffice"
})
}
resource "kubectl_manifest" "onlyoffice_deploy" {
@@ -81,63 +61,3 @@ resource "kubectl_manifest" "onlyoffice_deploy" {
protocol: TCP
EOF
}
resource "kubectl_manifest" "onlyoffice_svc" {
count = var.apps.onlyoffice ? 1 : 0
yaml_body = <<-EOF
apiVersion: v1
kind: Service
metadata:
name: "${var.instance}-onlyoffice"
namespace: "${var.namespace}"
labels: ${jsonencode(local.onlyoffice-labels)}
spec:
type: ClusterIP
ports:
- port: 80
targetPort: http
protocol: TCP
name: http
selector: ${jsonencode(local.onlyoffice-labels)}
EOF
}
resource "kubectl_manifest" "onlyoffice_certificate" {
count = var.apps.onlyoffice ? 1 : 0
yaml_body = <<-EOF
apiVersion: "cert-manager.io/v1"
kind: "Certificate"
metadata:
name: "${var.instance}-onlyoffice"
namespace: "${var.namespace}"
labels: ${jsonencode(local.onlyoffice-labels)}
spec:
secretName: "${var.instance}-onlyoffice-cert"
dnsNames: [${jsonencode(local.dns-onlyoffice)}]
issuerRef:
name: "${var.issuer}"
kind: "ClusterIssuer"
group: "cert-manager.io"
EOF
}
resource "kubectl_manifest" "onlyoffice_ing" {
count = var.apps.onlyoffice ? 1 : 0
yaml_body = <<-EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: "${var.instance}-onlyoffice"
namespace: "${var.namespace}"
labels: ${jsonencode(local.onlyoffice-labels)}
annotations:
"traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in local.onlyoffice-middlewares : format("%s-%s@kubernetescrd", var.namespace, m)])}"
spec:
ingressClassName: "${var.ingress-class}"
rules: ${jsonencode(local.onlyoffice-rules)}
tls:
- hosts: [${local.dns-onlyoffice}]
secretName: "${var.instance}-onlyoffice-cert"
EOF
}