pokeapi/Resources/k8s/kustomize/base/deployments/pokeapi-deployment.yaml
2024-06-02 16:05:14 +02:00

66 lines
1.9 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: pokeapi
labels:
component: pokeapi
spec:
replicas: 2
selector:
matchLabels:
component: pokeapi
template:
metadata:
labels:
component: pokeapi
spec:
initContainers:
- name: postgres-connection-checker
image: postgres:15.1-alpine
command: ['sh', '-c']
args:
- until pg_isready -h postgresql -p 5432; do
echo waiting for database;
sleep 2;
done;
containers:
- name: pokeapi
image: pokeapi/pokeapi:master
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
securityContext: # CI: Github Actions kills this container if not run with root. Otherwise, it's safe to use the default pokeapi/pokeapi user and remove these lines.
allowPrivilegeEscalation: false
runAsUser: 0
env:
- name: SERVER_PORT
value: "8080"
- name: POSTGRES_HOST
value: postgresql
- name: POSTGRES_USER
value: ash
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgres-env-secret
key: POSTGRES_PASSWORD
- name: POSTGRES_DB
value: pokeapi
- name: REDIS_CONNECTION_STRING
value: redis://redis:6379/1
envFrom:
- configMapRef:
name: pokeapi-configmap
resources: {}
readinessProbe:
periodSeconds: 5
initialDelaySeconds: 5
httpGet:
path: /api/v2/
port: 8080
livenessProbe:
periodSeconds: 5
initialDelaySeconds: 5
httpGet:
path: /api/v2/
port: 8080