When writing plugins in Lua there is the
kong.db module available to access the Kong's underlying database.
I assume that it also should be possible to communicate with the DB from within plugins written in Go. Or am I wrong here?
If it's possible what would be the way to grab connection details needed for a DB driver?
I'm running Kong in a Docker container and passing all relevant configs through environment variables, e.g
os.Getenv("KONG_PG_HOST") from within the plugin returns nothing though.
So, as mentioned in the comment @david-chandler linked one of the goals of go-pdk is to facilitate the usage of any library from the Go ecosystem. Everything is clear, no questions here.
What I was not able to grasp is how to pass over database connection details (like host, user, password, etc.) - defined in my case in the Docker file of Kong - to whatever Go database driver.
Diving a bit into Kong's source code revealed that whatever is specified under
pluginserver_XXX_start_cmd configuration property is executed using the
Knowing that I decided just to pass all the config I need as the command arguments, that is to say my Docker file would like something like that:
ENV KONG_PLUGINSERVER_MY_PLUGIN_START_CMD="/usr/local/bin/my-plugin $KONG_PG_HOST $KONG_PG_USER
and from Go code these arguments are accessible through