mirror of
https://github.com/YuzuZensai/netbird-kubernetes-operator.git
synced 2026-09-13 18:59:09 +00:00
86 lines
2.7 KiB
Markdown
86 lines
2.7 KiB
Markdown
# 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
|
|
|
|
1. Add helm repository.
|
|
```sh
|
|
helm repo add netbirdio https://netbirdio.github.io/kubernetes-operator
|
|
```
|
|
2. (Recommended) Install [cert-manager](https://cert-manager.io/docs/installation/#default-static-install).
|
|
3. (Recommended) Create a values.yaml file, check `helm show values netbirdio/kubernetes-operator` for more info.
|
|
4. Install using `helm install --create-namespace -f values.yaml -n netbird netbird-operator netbirdio/kubernetes-operator`.
|
|
|
|
> Learn more about the values.yaml options [here](helm/kubernetes-operator/values.yaml) and [Granting controller access to NetBird Management](docs/usage.md#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.
|
|
|
|
```sh
|
|
kubectl create namespace netbird
|
|
kubectl apply -n netbird -f https://raw.githubusercontent.com/netbirdio/kubernetes-operator/refs/heads/main/manifests/install.yaml
|
|
```
|
|
|
|
### Version
|
|
Latest version: v0.1.0
|
|
|
|
Tested against:
|
|
|Distribution|Test status|
|
|
|---|---|
|
|
|Google GKE|Pass|
|
|
|AWS EKS|Pass|
|
|
|Azure AKS|Not tested|
|
|
|OpenShift|Not tested|
|
|
|
|
> 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](docs/usage.md) and examples.
|
|
|
|
## Contributing
|
|
|
|
### Prerequisites
|
|
|
|
To be able to develop this project, you need to have the following tools installed:
|
|
|
|
- [Git](https://git-scm.com/).
|
|
- [Make](https://www.gnu.org/software/make/).
|
|
- [Go programming language](https://golang.org/dl/).
|
|
- [Docker CE](https://www.docker.com/community-edition).
|
|
- [Kubernetes cluster (v1.16+)](https://kubernetes.io/docs/setup/). [KIND](https://github.com/kubernetes-sigs/kind) is recommended.
|
|
- [Kubebuilder](https://book.kubebuilder.io/).
|
|
|
|
### Running tests
|
|
|
|
**Running unit tests**
|
|
```sh
|
|
make test
|
|
```
|
|
|
|
**Running E2E tests**
|
|
```sh
|
|
kind create cluster # If not already created, you can check with `kind get clusters`
|
|
make test-e2e
|
|
``` |