k3s-io/helm-controller

How to install the klipper helm chart

SarthakNarayan opened this issue · 2 comments

I have a k8s cluster and I want to install klipper load balancer on it. How can I do this? I don't see any manifests or helm charts for installing klipper. There is this GitHub URL (https://github.com/k3s-io/klipper-helm) , but I don't know how to use it.

See the example deployment yamls in the release artifacts: https://github.com/k3s-io/helm-controller/releases

You appear to be confused about which project you're using though - klipper-helm is for this helm controller. The load-balancer used by k3s is klipper-lb, which does not have a standalone deployment - it is embedded within the k3s codebase.

klipper was the original code name for what is now k3s.

@brandond what do you think about extracting the ServiceLB functionality into a standalone controller?

I was able to hack something together in a couple of hours: https://github.com/samcday/servicelb-standalone

I just copied the servicelb.go + cloudprovider.go into a new project, hacked in a simple main.go entrypoint, and wrapped it in a hacked up Helm chart.

If I understand correctly, the servicelb reconciliation once existed as an independent controller but was moved into the cloudprovider to simplify it a bit. Personally, I hate the cloud-provider pattern and hope it eventually goes away (in favour of just writing a proper controller using controller-runtime). But I get the logic behind trying to reduce code and maintenance burden, of course :) But anyway, a cloudprovider can just implement ensureLB and nothing else (as proven by the linked standalone hackjob), so the standalone project could continue to be a cloudprovider.

FWIW I don't think the loadbalancer functionality is actually benefitting much from the cloudprovider stuff. Maybe it did once upon a time, but it seems nowadays most of the heavy lifting is being delegated to wrangler.