k8s/manifest.tmpl.yaml
apiVersion: v1
kind: Secret
metadata:
name: gateway-secret
namespace: cacophony
type: Opaque
stringData:
discordTokens: "{{DISCORD_TOKENS}}"
amqpDSN: "{{AMQP_DSN}}"
loggingDiscordWebhook: "{{LOGGING_DISCORD_WEBHOOK}}"
redisPassword: "{{REDIS_PASSWORD}}"
errorTrackingRavenDSN: "{{ERRORTRACKING_RAVEN_DSN}}"
discordAPIBase: "{{DISCORD_API_BASE}}"
honyecombAPIKey: "{{HONEYCOMB_API_KEY}}"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: gateway
spec:
replicas: 1
selector:
matchLabels:
app: gateway
template:
metadata:
namespace: cacophony
labels:
app: gateway
spec:
containers:
- name: gateway
image: "registry.gitlab.com/cacophony/gateway:{{DOCKER_IMAGE_HASH}}"
readinessProbe:
httpGet:
path: /status
port: {{PORT}}
initialDelaySeconds: 2
periodSeconds: 5
livenessProbe:
httpGet:
path: /status
port: {{PORT}}
initialDelaySeconds: 5
periodSeconds: 10
env:
- name: PORT
value: "{{PORT}}"
- name: ENVIRONMENT
value: "{{ENVIRONMENT}}"
- name: REDIS_ADDRESS
value: "{{REDIS_ADDRESS}}"
- name: ENABLE_WHITELIST
value: "{{ENABLE_WHITELIST}}"
- name: HASH
value: "{{HASH}}"
- name: CLUSTER_ENVIRONMENT
value: "{{CLUSTER_ENVIRONMENT}}"
- name: DISCORD_TOKENS
valueFrom:
secretKeyRef:
name: gateway-secret
key: discordTokens
- name: AMQP_DSN
valueFrom:
secretKeyRef:
name: gateway-secret
key: amqpDSN
- name: LOGGING_DISCORD_WEBHOOK
valueFrom:
secretKeyRef:
name: gateway-secret
key: loggingDiscordWebhook
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: gateway-secret
key: redisPassword
- name: ERRORTRACKING_RAVEN_DSN
valueFrom:
secretKeyRef:
name: gateway-secret
key: errorTrackingRavenDSN
- name: DISCORD_API_BASE
valueFrom:
secretKeyRef:
name: gateway-secret
key: discordAPIBase
- name: HONEYCOMB_API_KEY
valueFrom:
secretKeyRef:
name: gateway-secret
key: honyecombAPIKey
- name: DEDUPLICATE
value: "{{DEDUPLICATE}}"
- name: REQUEST_MEMBERS_DELAY
value: "{{REQUEST_MEMBERS_DELAY}}"
# disable PDB because we only have one replica
# TODO: Use StatefulSets instead :x
#---
#apiVersion: policy/v1beta1
#kind: PodDisruptionBudget
#metadata:
# name: gateway-pdb
#spec:
# minAvailable: 1
# selector:
# matchLabels:
# app: gateway