installation/kubernetes/webapp.yaml (100 lines of code) (raw):

# Copyright (c) Facebook, Inc. and its affiliates. # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: name: whatsapp-web-autoscaler namespace: default spec: maxReplicas: 3 minReplicas: 1 scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: whatsapp-web-deployment targetCPUUtilizationPercentage: 60 --- apiVersion: v1 kind: Service metadata: name: whatsapp-web-service namespace: default spec: type: NodePort ports: - port: 443 targetPort: 443 protocol: TCP name: web selector: name: whatsapp-web --- apiVersion: apps/v1 kind: Deployment metadata: name: whatsapp-web-deployment namespace: default spec: replicas: 2 selector: matchLabels: name: whatsapp-web template: metadata: labels: name: whatsapp-web spec: restartPolicy: "Always" containers: - name: whatsapp-web image: docker.whatsapp.biz/web:v$VERSION imagePullPolicy: IfNotPresent resources: limits: memory : 128Mi requests: cpu: "0.15" memory : 128Mi ports: - containerPort: 443 protocol: TCP name: web env: - name: WA_DB_ENGINE valueFrom: secretKeyRef: name: whatsapp-config key: wa-db-engine - name: WA_APP_MULTICONNECT value: '1' - name: WA_DB_HOSTNAME valueFrom: secretKeyRef: name: whatsapp-config key: wa-db-hostname - name: WA_DB_PORT valueFrom: secretKeyRef: name: whatsapp-config key: wa-db-port - name: WA_DB_USERNAME valueFrom: secretKeyRef: name: whatsapp-config key: wa-db-username - name: WA_DB_PASSWORD valueFrom: secretKeyRef: name: whatsapp-config key: wa-db-password - name: WA_WEB_SERVERNAME value: 'whatsapp-web-service' volumeMounts: - name: whatsapp-media mountPath: /usr/local/wamedia securityContext: capabilities: drop: - MKNOD volumes: - name: whatsapp-media persistentVolumeClaim: claimName: media-volume-claim