If you’ve used PostgreSQL in Kubernetes with Helm, chance are you’ve locked yourself out after performing an upgrade. The reason for this is that if you do not specify a password explicitly using
postgresqlPassword, Helm will rotate this password for you when you run
helm upgrade. Not ideal. This has happened to me a few times over the years.
To restore access, you need to to jump in to your PostgreSQL container (
kubectl exec -ti your-postgres-container -n your-namespace bash) and temporarily alter the authentication. This of course is not ideal, so we want to move as swiftly as possible.
From within the container, run the following commands:
$ sed -i 's/md5/trust/' /opt/bitnami/postgresql/conf/pg_hba.conf $ pkill -HUP postgres
This will allow us to access the PostgreSQL server without authentication and reload the config.
Next, login to the PostgreSQL server and set a password:
$ psql -h 127.0.0.1 -U postgres psql (11.5) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'my-password'; ALTER ROLE postgres=# \q
Finally, kill the PostgreSQL server, which should automatically terminate your connection:
$ pkill postgres command terminated with exit code 137
When it comes back, the changes to
pg_hba.conf should have been reverted, and you should now be able to access the server using the password you set above.