Bring Your Own Kubernetes
Install Unbind on a cluster you already run.
For people who run Kubernetes already
This path is not covered by the installer and gets less testing. If you do not already operate a cluster, use the installer. It is faster and everything is set up to match.
Unbind is installed with Helmfile from the charts in the repository. They work on managed clusters such as EKS, GKE, AKS and DOKS, and on your own.
Before you start
- Use a new cluster. Unbind installs an ingress layer, cert-manager, a logging stack and a metrics stack. They will collide with ones you already have.
- A default storage class has to exist. Most managed clusters have one.
- A wildcard domain pointing at the cluster's load balancer, like
*.unbind.example.com. - Helm, the
helm-diffplugin and Helmfile on your machine.
Install
git clone https://github.com/unbindapp/unbind.git
cd unbind
helmfile --file deploy/charts/helmfile.yaml.gotmpl \
--state-values-set unbindDomain=unbind.example.com \
--state-values-set wildcardBaseDomain=unbind.example.com \
--state-values-set unbindVersion=v0.1.81 \
syncUse the latest version from the releases page. Everything lands in the unbind-system namespace.
Things that differ from the installer
deploy/charts/README.md in the repository is the reference. The points that matter most:
- Registry: the built-in registry is reached from every node at a fixed cluster IP, which each node's container runtime has to trust. On k3s that is
/etc/rancher/k3s/registries.yaml. On managed clusters, use an external registry instead and set theexternalRegistryvalues. - Networking:
networkingProviderpicks how traffic gets in. The default is the Gateway API with Envoy Gateway. A cluster that already uses ingress-nginx has to set it tonginx. - Build workers run one per node, so their replica count cannot exceed the number of nodes.
- Bringing your own logging or metrics: you can turn components off, but then Unbind cannot configure them from the UI, and they have to be set up the way Unbind expects. Logs need the
unbind-team,unbind-project,unbind-environment,unbind-serviceandunbind-deploymentlabels indexed. Metrics need kube-state-metrics started with--metric-labels-allowlist=pods=[*].
What you do not get
The unbind command on the server, adding servers through it, and the storage setup are all part of the installer. On your own cluster, nodes and storage are yours to manage.