NetBird Kubernetes Operator
For easily provisioning access to Kubernetes resources using NetBird.
https://github.com/user-attachments/assets/5472a499-e63d-4301-a513-ad84cfe5ca7b
Description
This operator easily provides NetBird access on Kubernetes clusters, allowing users to access internal resources directly.
Getting Started
Prerequisites
- (Recommended) helm version 3+
- kubectl version v1.11.3+.
- Access to a Kubernetes v1.11.3+ cluster.
- (Recommended) Cert Manager.
Deployment
[!NOTE]
Helm Installation method is recommended due to the automation of multiple settings within the deployment.
Using Helm
- Add helm repository.
helm repo add netbirdio https://netbirdio.github.io/kubernetes-operator
- (Recommended) Install cert-manager.
- (Recommended) Create a values.yaml file, check
helm show values netbirdio/kubernetes-operator for more info.
- Install using
helm install --create-namespace -f values.yaml -n netbird netbird-operator netbirdio/kubernetes-operator.
Learn more about the values.yaml options here and Granting controller access to NetBird Management.
Using install.yaml
[!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
Version
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.
Usage
Check the usage of usage.md and examples.
Contributing
Prerequisites
To be able to develop this project, you need to have the following tools installed:
Running tests
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