change to Docker entrypoint.sh
Hi All! I am new to this, so I apologize beforehand if it's not entirely kosher, but I have a proposed change to the Dockerfile entrypoint.sh to allow for configurable servers.json filename path. The reasoning behind this is that I have a Kubernetes deployment of pgadmin where I build a ConfigMap sort of dynamically. I can make the file appear in /pgadmin4, but it removes the contents of the directory for me (helpful!). Instead, I put it into a separate directory and set a new environment variable that defaults to the old pathname (backwards-compatible!) but allows me to set a custom environment variable in my custom Helm chart for my deployment. The code is here: https://github.com/penguincoder/pgadmin4/commit/0865400385ac0d03bf69d183e8cd9aaec6dcf318 Is this something that anyone is interested in? Does it meet your coding standards? What do I do next? I would love to move back to the "official" pgadmin container. Thanks for your time, Andrew
Re: change to Docker entrypoint.sh
On Fri, Jun 21, 2019 at 4:24 AM Dave Page wrote: > Hi > > On Thu, Jun 20, 2019 at 5:31 PM Andrew Coleman > wrote: > >> Hi All! >> >> I am new to this, so I apologize beforehand if it's not entirely kosher, >> but I have a proposed change to the Dockerfile entrypoint.sh to allow for >> configurable servers.json filename path. >> >> The reasoning behind this is that I have a Kubernetes deployment of >> pgadmin where I build a ConfigMap sort of dynamically. I can make the file >> appear in /pgadmin4, but it removes the contents of the directory for me >> (helpful!). Instead, I put it into a separate directory and set a new >> environment variable that defaults to the old pathname >> (backwards-compatible!) but allows me to set a custom environment variable >> in my custom Helm chart for my deployment. >> > > pgAdmin removes the content of the directory? I'm not sure how it would do > that - it doesn't delete anything like that. > pgAdmin does not do that. It behaves as you would expect. Kubernetes removes the contents for me. It basically allows one of two options: file available at /pgadmin4/servers.json/servers.json and pgadmin works, but never loads the file file available at /pgadmin4/servers.json and nothing works because the only file in /pgadmin4 is servers.json > >> >> The code is here: >> >> https://github.com/penguincoder/pgadmin4/commit/0865400385ac0d03bf69d183e8cd9aaec6dcf318 >> >> Is this something that anyone is interested in? >> > > Sure. > > >> Does it meet your coding standards? >> > > Looks fine to me. > > >> What do I do next? >> >> I would love to move back to the "official" pgadmin container. >> > > Please raise a feature request at > https://redmine.postgresql.org/projects/pgadmin4/issues/new and attach > the patch (just use git diff against a checkout of the master branch). You > can send the patch here, but we need the feature request in the tracker > anyway, so it's probably easier to attach it there. > > Thanks! > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company >
passwords enabled by default
Recently, while testing my changes to entrypoint.sh in Docker, I noticed that you cannot import or export passwords via the servers.json file. You can get around this by setting the PassFile option in servers.json, but that still doesn't work correctly. For me to make this work, I had to also set the `PGPASSFILE` to the full path location of the pgpass file generated for me by Helm. To clarify, I know how many servers I want to connect to and how to find their passwords in Kubernetes via their secret, and I use Helm to stitch all of that together into a pgpass file that psql and pgadmin4 can use to connect to the servers without user intervention. The presence of the pgpass file and the reference to that file in the servers.json was not enough to allow pgadmin4 to connect to the servers, I also had to set `PGPASSFILE` in my Helm chart to make this work. This seems like another good ticket, no? I know where to add them and I'll put a patch in place, but I could sure use a little bit of guidance on the copy portion of the documentation. I know why it works for me, but would anyone conceivably use this in a non-Dockerized deployment? Thanks, Andrew