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: "40879815-9a6b-4bbb-8207-8f2c7c0218f9"
 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
 30spec:
 31  replicas: 1
 32  selector:
 33    matchLabels:
 34      app: collab
 35  template:
 36    metadata:
 37      labels:
 38        app: collab
 39    spec:
 40      containers:
 41        - name: collab
 42          image: "${ZED_IMAGE_ID}"
 43          ports:
 44            - containerPort: 8080
 45              protocol: TCP
 46          env:
 47            - name: HTTP_PORT
 48              value: "8080"
 49            - name: DATABASE_URL
 50              valueFrom:
 51                secretKeyRef:
 52                  name: database
 53                  key: url
 54            - name: SESSION_SECRET
 55              valueFrom:
 56                secretKeyRef:
 57                  name: session
 58                  key: secret
 59            - name: GITHUB_APP_ID
 60              valueFrom:
 61                secretKeyRef:
 62                  name: github
 63                  key: appId
 64            - name: GITHUB_CLIENT_ID
 65              valueFrom:
 66                secretKeyRef:
 67                  name: github
 68                  key: clientId
 69            - name: GITHUB_CLIENT_SECRET
 70              valueFrom:
 71                secretKeyRef:
 72                  name: github
 73                  key: clientSecret
 74            - name: GITHUB_PRIVATE_KEY
 75              valueFrom:
 76                secretKeyRef:
 77                  name: github
 78                  key: privateKey
 79            - name: API_TOKEN
 80              valueFrom:
 81                secretKeyRef:
 82                  name: api
 83                  key: token
 84            - name: INVITE_LINK_PREFIX
 85              value: ${INVITE_LINK_PREFIX}
 86            - name: RUST_LOG
 87              value: ${RUST_LOG}
 88            - name: LOG_JSON
 89              value: "true"
 90            - name: HONEYCOMB_DATASET
 91              value: "collab"
 92            - name: HONEYCOMB_API_KEY
 93              valueFrom:
 94                secretKeyRef:
 95                  name: honeycomb
 96                  key: apiKey
 97          securityContext:
 98            capabilities:
 99              # FIXME - Switch to the more restrictive `PERFMON` capability.
100              # This capability isn't yet available in a stable version of Debian.
101              add: ["SYS_ADMIN"]