ProjectCacophony/Gateway

View on GitHub
k8s/manifest.tmpl.yaml

Summary

Maintainability
Test Coverage
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