When this new service is deployed, Cloudflare creates a load balancer with a DNS record named. I want to change this to a ClusterIPĪdd a new service of ingress type to route traffic to the new cluster ip. Then, I create an overlay using Kustomize to make a couple of changes: I edit the values.yaml file, and then run helm template to generate all of the Kubernetes YAML. Sourcegraph has a recommended deployment process of helm install, but I want to customize this tool to work in our environment. The Kustomizations contain the cert for the domain we are using for these developer tools.įor this example, I’ll show how we deploy Sourcegraph to our Kubernetes cluster, from their Helm chart, while providing customizations to it including adding our Argo Ingress for connectivity. Kustomize layer to deploy this Helm chart from our CI process. Ingress controller for Argo Tunnel deployed to the cluster in the default namespace. Each node will disappear every day or more frequently. And, because they are all preemptible instances, we are getting a 90% cost savings AND Google is implementing some simple chaos engineering principles for us. As new services are deployed or load increases, Google Cloud is managing adding (and removing) nodes from this cluster. Ingress traffic will come through an external load balancer that does have public IP addresses, but the nodes that make up the Kubernetes cluster do not have Internet routable addresses attached or forwarded to them. All nodes in this cluster have private IP addresses only, and are not directly accessible from the internet. It works like this: We’ve used Terraform to provision a GKE cluster running with preemptible instances and an auto scaling node pool.