manifest.template.yml

  1---
  2apiVersion: v1
  3kind: Namespace
  4metadata:
  5  name: ${ZED_KUBE_NAMESPACE}
  6---
  7kind: Service
  8apiVersion: v1
  9metadata:
 10  namespace: ${ZED_KUBE_NAMESPACE}
 11  name: collab
 12  annotations:
 13    service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
 14    service.beta.kubernetes.io/do-loadbalancer-certificate-id: "08d9d8ce-761f-4ab3-bc78-4923ab5b0e33"
 15spec:
 16  type: LoadBalancer
 17  selector:
 18    app: collab
 19  ports:
 20    - name: web
 21      protocol: TCP
 22      port: 443
 23      targetPort: 8080
 24---
 25apiVersion: apps/v1
 26kind: Deployment
 27metadata:
 28  namespace: ${ZED_KUBE_NAMESPACE}
 29  name: collab
 30
 31spec:
 32  replicas: 1
 33  selector:
 34    matchLabels:
 35      app: collab
 36  template:
 37    metadata:
 38      labels:
 39        app: collab
 40      annotations:
 41        ad.datadoghq.com/collab.check_names: |
 42          ["openmetrics"]
 43        ad.datadoghq.com/collab.init_configs: |
 44          [{}]
 45        ad.datadoghq.com/collab.instances: |
 46          [
 47              {
 48              "openmetrics_endpoint": "http://%%host%%:%%port%%/metrics",
 49              "namespace": "collab_${ZED_KUBE_NAMESPACE}",
 50              "metrics": [".*"]
 51              }
 52          ]
 53    spec:
 54      containers:
 55        - name: collab
 56          image: "${ZED_IMAGE_ID}"
 57          args:
 58            - serve
 59          ports:
 60            - containerPort: 8080
 61              protocol: TCP
 62          env:
 63            - name: HTTP_PORT
 64              value: "8080"
 65            - name: DATABASE_URL
 66              valueFrom:
 67                secretKeyRef:
 68                  name: database
 69                  key: url
 70            - name: API_TOKEN
 71              valueFrom:
 72                secretKeyRef:
 73                  name: api
 74                  key: token
 75            - name: LIVE_KIT_SERVER
 76              valueFrom:
 77                secretKeyRef:
 78                  name: livekit
 79                  key: server
 80            - name: LIVE_KIT_KEY
 81              valueFrom:
 82                secretKeyRef:
 83                  name: livekit
 84                  key: key
 85            - name: LIVE_KIT_SECRET
 86              valueFrom:
 87                secretKeyRef:
 88                  name: livekit
 89                  key: secret
 90            - name: INVITE_LINK_PREFIX
 91              value: ${INVITE_LINK_PREFIX}
 92            - name: RUST_LOG
 93              value: ${RUST_LOG}
 94            - name: LOG_JSON
 95              value: "true"
 96          securityContext:
 97            capabilities:
 98              # FIXME - Switch to the more restrictive `PERFMON` capability.
 99              # This capability isn't yet available in a stable version of Debian.
100              add: ["SYS_ADMIN"]