For easily provisioning access to Kubernetes resources using NetBird.
netbird-ingress-preview.mp4
This operator easily provides NetBird access on Kubernetes clusters, allowing users to access internal resources directly.
- (Recommended) helm version 3+
- kubectl version v1.11.3+.
- Access to a Kubernetes v1.11.3+ cluster.
- (Recommended) Cert Manager.
Note
Helm Installation method is recommended due to the automation of multiple settings within the deployment.
- Add helm repository.
helm repo add netbirdio https://netbirdio.github.io/kubernetes-operator
- (Recommended) Install cert-manager for k8s API to communicate with the NetBird operator.
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.17.0/cert-manager.yaml
- Add NetBird API token
kubectl create namespace netbird
kubectl -n netbird create secret generic netbird-mgmt-api-key --from-literal=NB_API_KEY=$(cat ~/nb-pat.secret)
- (Recommended) Create a
values.yaml
file, checkhelm show values netbirdio/kubernetes-operator
for more info. - Install using
helm install --create-namespace -f values.yaml -n netbird netbird-operator netbirdio/kubernetes-operator
. - (Recommended) Check pod status using
kubectl get pods -n netbird
. - (Optional) Create an
exposed-nginx.yaml
file to create a Nginx service for testing. - (Optional) Apply the Nginx service:
kubectl apply -f exposed-nginx.yaml
Learn more about the values.yaml options here and Granting controller access to NetBird Management.
Important
install.yaml only includes a very basic template for deploying a stripped-down version of Kubernetes-operator. This excludes any and all configurations for ingress capabilities and requires the cert-manager to be installed.
kubectl create namespace netbird
kubectl apply -n netbird -f https://raw.githubusercontent.com/netbirdio/kubernetes-operator/refs/heads/main/manifests/install.yaml
We have developed and executed tests against Kubernetes v1.31, but it should work with most recent Kubernetes version.
Latest operator version: v0.1.1.
Tested against:
Distribution | Test status | Kubernetes Version |
---|---|---|
Google GKE | Pass | 1.31.5 |
AWS EKS | Pass | 1.31 |
Azure AKS | Not tested | N/A |
OpenShift | Not tested | N/A |
We would love community feedback to improve the test matrix. Please submit a PR with your test results.
Check the usage of usage.md and examples.
To be able to develop this project, you need to have the following tools installed:
- Git.
- Make.
- Go programming language.
- Docker CE.
- Kubernetes cluster (v1.16+). KIND is recommended.
- Kubebuilder.
Running unit tests
make test
Running E2E tests
kind create cluster # If not already created, you can check with `kind get clusters`
make test-e2e