- Te confundiste con el user/pass de la BD en los manifests de k8s y tu app te tira un error de conexión.
- Volves a definir en los
.yaml
elPOSTGRES_USER
oPOSTGRES_PASSWORD
y aplicas.
- 🔥🔥🔥
Problema
El error persiste a pesar de que los cambios de los manifests se aplicaron correctamente.
Causa
Cuando se despliega una BD postgres en k8s se crea un volume para la misma.
Cuando hacemos un cambio y se reinicia un pod, éstos se fijan si ya existe un volume para reutilizarlo. Si no existe lo crean.
En nuestro caso, como el volume no se eliminó,
postgres
decidió reutilizarlo, con la consecuencia de que las variables que cambiamos no se aplicaron a la BD.PostgreSQL Database directory appears to contain a database; Skipping initialization 2022-08-02 20:41:16.783 UTC [1] LOG: starting PostgreSQL 13.1 (Debian 13.1-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit 2022-08-02 20:41:16.784 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
Según la documentación:
Warning: the Docker specific variables will only have an effect if you start the container with a data directory that is empty; any pre-existing database will be left untouched on container startup.
Solución
- Borrar el volumen
- Aplicar los cambios en los manifests
.yaml
- El pod de
postgres
creará un nuevo volumen con los nuevos cambios