Than you for providing more details around your issue, it certainly helps understand the problem at hand better.
So, to explain in a more detail, We are on a Google Cloud Engine and I am trying to install Kong ingress controller in GKE to use it mainly as an API gateway.
Awesome to hear, and happy to help out!
Looking at the helm chart documentation of
stable/kong chart, I noticed that there was no way to add sidecar containers to the kong helm chart, which means I had to figure out alternative ways to achieve the same goal.
There are a couple of issues here, first, Kong Ingress Controller is not part of
stable/kong chart yet. There are efforts ongoing to integrate Ingress Controller into that chart currently. You can deploy Kong as an application using this chart but not as an Ingress Controller. You could use the chart to deploy Kong and then deploy Ingress Controller separately, but that will entail some work and maintenance.
While we get the chart out, I suggest you use our deployment file to provision Kong Ingress in your k8s cluster.
I still have few missing bits and pieces to be able to access Kong from outside of the cluster, but the services and pods are running an migration seems to have run as well, so I assume the database connection is working just fine.
Good to hear. Injecting a SQL sidecar using a Helm chart is something needs more thought before we can support it in our chart. @shashiranjan is the original author and current maintainer of the chart and can comment on it better.
There is still one bit that bothers me with this setup – the database credentials are deployed “in the open”.
Meaning that username and password are set in pod env as plain text and I have no way of specifying that password and username might come from a pre-existing secret.
This could be a limitation of the Kong chart. There is an
env section of values which takes in Kong configuration values as environment variables. Kubernetes can provide secrets as values to environment variables in a pod spec template but I’m not sure how it can be done via values in Helm. Thoughts @shashiranjan?