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