locals { onlyoffice-labels = merge(local.common_labels, { "app.kubernetes.io/component" = "onlyoffice" }) } resource "kubectl_manifest" "onlyoffice_deploy" { count = var.apps.onlyoffice ? 1 : 0 yaml_body = <<-EOF apiVersion: apps/v1 kind: Deployment metadata: name: "${var.instance}-onlyoffice" namespace: "${var.namespace}" labels: ${jsonencode(local.onlyoffice-labels)} spec: replicas: 1 strategy: type: RollingUpdate selector: matchLabels: ${jsonencode(local.onlyoffice-labels)} template: metadata: labels: ${jsonencode(local.onlyoffice-labels)} spec: containers: - name: "onlyoffice" image: "${var.images.onlyoffice.registry}/${var.images.onlyoffice.repository}:${var.images.onlyoffice.tag}" imagePullPolicy: "${var.images.onlyoffice.pull_policy}" env: - name: JWT_ENABLED value: "true" - name: JWT_SECRET valueFrom: secretKeyRef: name: ${var.component} key: onlyoffice-jwt-secret livenessProbe: httpGet: path: /healthcheck port: http scheme: HTTP initialDelaySeconds: 120 periodSeconds: 10 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 readinessProbe: httpGet: path: /healthcheck port: http scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 2 successThreshold: 1 failureThreshold: 3 ports: - name: http containerPort: 80 protocol: TCP EOF }