iac/apps/pm/base/backend-deployment.yaml

103 lines
2.8 KiB
YAML

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
namespace: pm
labels:
app: backend
spec:
replicas: 1
selector:
matchLabels:
app: backend
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 5
maxUnavailable: 5
template:
metadata:
labels:
app: backend
monitoring: prometheus
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- backend
topologyKey: kubernetes.io/hostname
containers:
- name: backend
image: cr.yandex/crp3ccidau046kdj8g9q/pm-backend:production_c54c2123
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8000
protocol: TCP
env:
- name: USERS_INTERNAL_HOST
value: http://backend.django.svc.cluster.local:8000
- name: RESOURCES_INTERNAL_HOST
value: http://resources-service.resources.svc.cluster.local:8000
- name: EAV_HOST
value: http://eav-service.eav.svc.cluster.local:8000
- name: EAV_API_PREFIX
value: /api/v0
- name: EAV_API_PREFIX_V1
value: /api/v1
resources:
requests:
cpu: 100m
memory: 256Mi
volumeMounts:
- name: uwsgi-configmap
mountPath: /opt/sarex/uwsgi.ini
subPath: uwsgi.ini
- name: env-file
mountPath: /opt/sarex/.env
subPath: .env
- name: tmp-volume
mountPath: /tmp
- name: kafka-cert-volume
mountPath: /usr/local/share/ca-certificates
livenessProbe:
httpGet:
path: /ping
port: 8000
initialDelaySeconds: 10
periodSeconds: 60
failureThreshold: 10
readinessProbe:
httpGet:
path: /ping
port: 8000
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 20
volumes:
- name: tmp-volume
emptyDir: {}
- name: uwsgi-configmap
configMap:
name: backend-configmap
defaultMode: 420
items:
- key: uwsgi.ini
path: uwsgi.ini
- name: env-file
secret:
secretName: sarex-env
defaultMode: 420
- name: kafka-cert-volume
configMap:
name: kafka-cert
defaultMode: 420
imagePullSecrets:
- name: regcred