On Mon, Sep 2, 2024 at 11:17 AM Lauren Phillips
<circ...@circenn.city.invalid> wrote:

> Nope. I'm using the latest
>
>
Okay, I believe I've figured out what issue you're encountering. It looks
like whatever K8s configuration you're using is using the
underlying Container Linking technology to link containers together. Docker
has deprecated this - it's considered legacy - but there are likely still a
lot of places it is in use. With container linking and the PostgreSQL
container, there are a bunch of extra variables that get created and shared
between the containers. Here are the ones that I see:

$ set|grep POSTGRES
POSTGRESQL_DATABASE=guacamole
POSTGRESQL_PASSWORD=yummyGuacamole
POSTGRESQL_PORT=5432
POSTGRESQL_USERNAME=postgres
POSTGRES_ENV_GOSU_VERSION=1.17
POSTGRES_ENV_LANG=en_US.utf8
POSTGRES_ENV_PGDATA=/var/lib/postgresql/data/pgdata
POSTGRES_ENV_PG_MAJOR=16
POSTGRES_ENV_PG_VERSION=16.4-1.pgdg120+1
POSTGRES_ENV_POSTGRES_PASSWORD=yummyGuacamole
POSTGRES_NAME=/guac-client/postgres
POSTGRES_PORT=tcp://172.17.0.3:5432
POSTGRES_PORT_5432_TCP=tcp://172.17.0.3:5432
POSTGRES_PORT_5432_TCP_ADDR=172.17.0.3
POSTGRES_PORT_5432_TCP_PORT=5432
POSTGRES_PORT_5432_TCP_PROTO=tcp


The top give are the ones that I've specifically set - the remaining ones
are set by the linking between the postgres container and the
guacamole/guacamole container. Unfortunately, that POSTGRES_PORT variable
is actually the same one that Guacamole tries to use to configure itself to
talk to Postgres. But, because the format of the postgres version of it is
different (tcp://<ip>:port) from what Guacamole expect (port), you get the
error that you're seeing.

Resolving this may depend on how K8s is actually working:
* Make sure to reconfigure things to not use container linking. I don't
know how this is configured in K8s - in Docker you basically just create a
custom network and have all your containers use that network. You don't
need to do any linking, the network supports name resolution, and the
containers can see each other, so all you have to do is point the
guacamole/guacamole container at the container name of the postgres
container, and it works. Again, not entirely sure how this works in K8s.
* Do what you've already done, and basically go modify the
guacamole.properties file and rewrite the property into what it is expected
to be. Unfortunately this won't work in version 1.6.0 because the
guacamole.properties file doesn't get used except to enable configuration
by environment variables, which means you'll have to make sure that it
isn't using linking and doesn't pull in those extra POSTGRES_ variables.

-Nick

>

Reply via email to