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: RUST_LOG
85              value: ${RUST_LOG}
86            - name: TRACE_LEVEL
87              value: ${TRACE_LEVEL}
88            - name: HONEYCOMB_DATASET
89              value: "collab"
90            - name: HONEYCOMB_API_KEY
91              valueFrom:
92                secretKeyRef:
93                  name: honeycomb
94                  key: apiKey
95          securityContext:
96            capabilities:
97              # FIXME - Switch to the more restrictive `PERFMON` capability.
98              # This capability isn't yet available in a stable version of Debian.
99              add: ["SYS_ADMIN"]