In caverns-1yswn1i the API is down:
sh
kubectl get pods -n caverns-1yswn1i
kubectl logs deploy/market-api -n caverns-1yswn1iThe logs name the variable the container reads. Now look at what the Secret holds:
sh
kubectl get secret db-creds -n caverns-1yswn1i -o yaml
kubectl get secret db-creds -n caverns-1yswn1i -o jsonpath='{.data.DB_URL}' | base64 -dTwo things are wrong:
text
Secret db-creds Deployment market-api
data: env:
DB_URL: postgres://… - name: MONSTER_DB_URL
market:wrong@… valueFrom.secretKeyRef:
name: db-creds
key does not match ────────────▶ key: MONSTER_DB_URL
password is wrongReplace the Secret
Delete the old one and create it under the key the Deployment expects, with the real password s3cret:
sh
kubectl delete secret db-creds -n caverns-1yswn1i
kubectl create secret generic db-creds -n caverns-1yswn1i \
--from-literal=MONSTER_DB_URL=postgres://market:s3cret@market-db:5432/market
kubectl get secret db-creds -n caverns-1yswn1i -o jsonpath='{.data.MONSTER_DB_URL}' | base64 -dRestart the rollout
Pods read their environment at start. Recreate them:
sh
kubectl rollout restart deploy/market-api -n caverns-1yswn1i
kubectl get deploy market-api -n caverns-1yswn1i
kubectl logs deploy/market-api -n caverns-1yswn1iREADY reaches 2/2 and the logs show connected to postgres://….