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          livenessProbe:
 63            httpGet:
 64              path: /healthz
 65              port: 8080
 66            initialDelaySeconds: 5
 67            periodSeconds: 5
 68            timeoutSeconds: 5
 69          readinessProbe:
 70            httpGet:
 71              path: /
 72              port: 8080
 73            initialDelaySeconds: 1
 74            periodSeconds: 1
 75          env:
 76            - name: HTTP_PORT
 77              value: "8080"
 78            - name: DATABASE_URL
 79              valueFrom:
 80                secretKeyRef:
 81                  name: database
 82                  key: url
 83            - name: DATABASE_MAX_CONNECTIONS
 84              value: "${DATABASE_MAX_CONNECTIONS}"
 85            - name: API_TOKEN
 86              valueFrom:
 87                secretKeyRef:
 88                  name: api
 89                  key: token
 90            - name: LIVE_KIT_SERVER
 91              valueFrom:
 92                secretKeyRef:
 93                  name: livekit
 94                  key: server
 95            - name: LIVE_KIT_KEY
 96              valueFrom:
 97                secretKeyRef:
 98                  name: livekit
 99                  key: key
100            - name: LIVE_KIT_SECRET
101              valueFrom:
102                secretKeyRef:
103                  name: livekit
104                  key: secret
105            - name: INVITE_LINK_PREFIX
106              value: ${INVITE_LINK_PREFIX}
107            - name: RUST_BACKTRACE
108              value: "1"
109            - name: RUST_LOG
110              value: ${RUST_LOG}
111            - name: LOG_JSON
112              value: "true"
113            - name: ZED_ENVIRONMENT
114              value: ${ZED_ENVIRONMENT}
115          securityContext:
116            capabilities:
117              # FIXME - Switch to the more restrictive `PERFMON` capability.
118              # This capability isn't yet available in a stable version of Debian.
119              add: ["SYS_ADMIN"]