apiVersion: apps/v1
kind: Deployment
metadata:
  name: walter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: walter
  template:
    metadata:
      labels:
        app: walter
    spec:
      containers:
        - name: api
          image: gcr.io/staging-288420/walter-backend:__IMAGE_TAG__
          ports:
            - containerPort: 80
          volumeMounts:
            - name: storage-service-account
              mountPath: /usr/src/app/mount-storage-sa
              readOnly: true
          resources:
            limits:
              cpu: "0.5"
              memory: 700Mi
            requests:
              cpu: "0.2"
              memory: 500Mi
          env:
            - name: DATABASE_URL
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: DATABASE_URL
            - name: NODE_ENV
              value: production
            - name: DD_ENV
              value: staging
            - name: DD_AGENT_HOST
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
            - name: ENABLE_PLAYGROUND
              value: "true"
            - name: SHIELD_FEATURE
              value: "true"
            - name: LOG_FORMAT
              value: json
            - name: LOG_LEVEL_IN_STRING
              value: "true"
            - name: PROJECT_ID
              value: staging-288420
            - name: KEY_FILENAME
              value: mount-storage-sa/staging-walter-backend-storage.json
            - name: FILES_BUCKET_NAME
              value: walter-staging
            - name: SEND_SMS
              value: "true"
            - name: SEND_EMAIL
              value: "true"
            - name: SEND_NOTIFICATION
              value: "true"
            - name: SEND_SLACK
              value: "true"
            - name: TWILIO_PHONE_NUMBER_SUPPORT
              value: "+14387001558"
            - name: TWILIO_PHONE_NUMBER_NOTIFICATION
              value: "+14388004584"
            - name: REDIS_HOST
              value: walter-redis
            - name: APP_SECRET
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: APP_SECRET
            - name: TWILIO_SID
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: TWILIO_SID
            - name: TWILIO_AUTH_TOKEN
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: TWILIO_AUTH_TOKEN
            - name: CLOUDINARY_API_SECRET
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: CLOUDINARY_API_SECRET
            - name: CLOUDINARY_API_KEY
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: CLOUDINARY_API_KEY
            - name: CLOUDINARY_CLOUD_NAME
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: CLOUDINARY_CLOUD_NAME
            - name: STRIPE_API_KEY
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: STRIPE_API_KEY
            - name: STRIPE_SECRET_KEY
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: STRIPE_SECRET_KEY
            - name: PUSHER_APP_ID
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: PUSHER_APP_ID
            - name: PUSHER_APP_KEY
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: PUSHER_APP_KEY
            - name: PUSHER_APP_SECRET
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: PUSHER_APP_SECRET
            - name: PUSHER_APP_CLUSTER
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: PUSHER_APP_CLUSTER
            - name: SENDGRID_API_KEY
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: SENDGRID_API_KEY
            - name: SENDBIRD_APP_ID
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: SENDBIRD_APP_ID
            - name: SENDBIRD_API_TOKEN
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: SENDBIRD_API_TOKEN
            - name: ONE_SIGNAL_APP_ID
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: ONE_SIGNAL_APP_ID
            - name: ONE_SIGNAL_REST_API_KEY
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: ONE_SIGNAL_REST_API_KEY
            - name: ONE_SIGNAL_USER_AUTH_KEY
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: ONE_SIGNAL_USER_AUTH_KEY
            - name: ADMIN_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: ADMIN_PASSWORD
            - name: ADMIN_SECRET
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: ADMIN_SECRET
            - name: MANAGER_ADMIN_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: MANAGER_ADMIN_PASSWORD
            - name: ZOOM_TMP_JWT
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: ZOOM_TMP_JWT
            - name: ZOOM_TMP_JWT_SENTINEL
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: ZOOM_TMP_JWT_SENTINEL
            - name: DEFAULT_MANAGER_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: DEFAULT_MANAGER_PASSWORD
            - name: SLACK_WEBHOOK_URL_CHAT_WALTER
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: SLACK_WEBHOOK_URL_CHAT_WALTER
            - name: SLACK_WEBHOOK_URL_EMERGENCY
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: SLACK_WEBHOOK_URL_EMERGENCY
            - name: SLACK_WEBHOOK_URL_ORDER
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: SLACK_WEBHOOK_URL_ORDER
            - name: SLACK_WEBHOOK_URL_NEW_PROJECT_FROM_CONDO_MANAGER
              valueFrom:
                secretKeyRef:
                  name: api-secrets
                  key: SLACK_WEBHOOK_URL_NEW_PROJECT_FROM_CONDO_MANAGER
      imagePullSecrets:
        - name: api-secrets
      volumes:
        - name: storage-service-account
          secret:
            secretName: walter-backend-storage
---
apiVersion: v1
kind: Service
metadata:
  name: walter
spec:
  type: NodePort
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  selector:
    app: walter
