Add uninstallation doc to README

This commit is contained in:
M Essam Hamed
2025-08-08 14:14:25 +03:00
committed by M. Essam
parent c38b37202b
commit 2606b87173
2 changed files with 20 additions and 24 deletions
+6 -11
View File
@@ -17,10 +17,6 @@ This operator easily provides NetBird access on Kubernetes clusters, allowing us
### Deployment ### Deployment
> [!NOTE]
> Helm Installation method is recommended due to the automation of multiple settings within the deployment.
#### Using Helm
1. Add helm repository. 1. Add helm repository.
```sh ```sh
@@ -45,16 +41,15 @@ kubectl apply -f exposed-nginx.yaml
``` ```
> 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). > 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
### Uninstallation
> [!IMPORTANT] > [!IMPORTANT]
> install.yaml only includes a very basic template for deploying a stripped-down version of Kubernetes-operator. > Most operator resources are annotated with finalizers, attempting to delete the namespace will result in hanged deletion.
> This excludes any and all configurations for ingress capabilities and requires the cert-manager to be installed.
```sh 1. (If ingress mode is enabled) Remove all instances of `netbird.io/expose` annotation on Services.
kubectl create namespace netbird 2. Run `helm uninstall -n netbird netbird-operator`.
kubectl apply -n netbird -f https://raw.githubusercontent.com/netbirdio/kubernetes-operator/refs/heads/main/manifests/install.yaml 3. Wait for all deletion jobs to finish.
```
### Version ### Version
We have developed and executed tests against Kubernetes v1.31, but it should work with most recent Kubernetes version. We have developed and executed tests against Kubernetes v1.31, but it should work with most recent Kubernetes version.
+14 -13
View File
@@ -3,11 +3,12 @@
## Provision pods with NetBird access using side-cars ## Provision pods with NetBird access using side-cars
1. Create a Setup Key in your [NetBird console](https://docs.netbird.io/how-to/register-machines-using-setup-keys#using-setup-keys). 1. Create a Setup Key in your [NetBird console](https://docs.netbird.io/how-to/register-machines-using-setup-keys#using-setup-keys).
1. Create a Secret object in the namespace where you need to provision NetBird access (secret name and field can be anything). 2. Create a Secret object in the namespace where you need to provision NetBird access (secret name and field can be anything).
```yaml ```yaml
apiVersion: v1 apiVersion: v1
stringData: stringData:
setupkey: EEEEEEEE-EEEE-EEEE-EEEE-EEEEEEEEEEEE setupkey: "EEEEEEEE-EEEE-EEEE-EEEE-EEEEEEEEEEEE"
kind: Secret kind: Secret
metadata: metadata:
name: test name: test
@@ -56,14 +57,14 @@ With this setup, all peers with the same extra label would be used in a DNS roun
> The NetBird Kubernetes operator generates configurations using NetBird API; editing or deleting these configurations in the NetBird console may cause temporary network disconnection until the operator reconciles the configuration. > The NetBird Kubernetes operator generates configurations using NetBird API; editing or deleting these configurations in the NetBird console may cause temporary network disconnection until the operator reconciles the configuration.
1. Create a Service User on your NetBird dashboard (Must be Admin). [Doc](https://docs.netbird.io/how-to/access-netbird-public-api#creating-a-service-user). 1. Create a Service User on your NetBird dashboard (Must be Admin). [Doc](https://docs.netbird.io/how-to/access-netbird-public-api#creating-a-service-user).
1. Create an access token for the Service User (Must be Admin). [Doc](https://docs.netbird.io/how-to/access-netbird-public-api#creating-a-service-user). 2. Create an access token for the Service User (Must be Admin). [Doc](https://docs.netbird.io/how-to/access-netbird-public-api#creating-a-service-user).
1. Add access token to your helm values file under `netbirdAPI.key`. 3. Add access token to your helm values file under `netbirdAPI.key`.
1. Alternatively, provision secret in the same namespace as the operator and set the key `NB_API_KEY` to the access token generated. 1. Alternatively, provision secret in the same namespace as the operator and set the key `NB_API_KEY` to the access token generated.
1. Set `netbirdAPI.keyFromSecret` to the name of the secret created. 2. Set `netbirdAPI.keyFromSecret` to the name of the secret created.
1. Set `ingress.enabled` to `true`. 4. Set `ingress.enabled` to `true`.
1. Optionally, to provision the network immediately, set `ingress.router.enabled` to `true`. 1. Optionally, to provision the network immediately, set `ingress.router.enabled` to `true`.
1. Optionally, to provision 1 network per namespace, set `ingress.namespacedNetworks` to `true`. 2. Optionally, to provision 1 network per namespace, set `ingress.namespacedNetworks` to `true`.
1. Run `helm install` or `helm upgrade`. 5. Run `helm install` or `helm upgrade`.
Minimum values.yaml example: Minimum values.yaml example:
```yaml ```yaml
@@ -80,11 +81,11 @@ cluster:
### Exposing Kubernetes API ### Exposing Kubernetes API
1. Ensure Ingress functionality is enabled. 1. Ensure Ingress functionality is enabled.
1. Set `ingress.kubernetesAPI.enabled` to true. 2. Set `ingress.kubernetesAPI.enabled` to true.
1. Set `ingress.kubernetesAPI.groups` to a list of groups to assign to the Network Resource to be created for kubernetes API. 3. Set `ingress.kubernetesAPI.groups` to a list of groups to assign to the Network Resource to be created for kubernetes API.
1. Set `ingress.kubernetesAPI.policies` to a list of policy names to connect to the resource (See #managing-policies for more details). 4. Set `ingress.kubernetesAPI.policies` to a list of policy names to connect to the resource (See #managing-policies for more details).
1. Apply Helm changes through `helm upgrade`. 5. Apply Helm changes through `helm upgrade`.
1. Replace the server URL in your kubeconfig file with `https://kubernetes.default.<cluster DNS>` (by default `https://kubernetes.default.svc.cluster.local`), for example: 6. Replace the server URL in your kubeconfig file with `https://kubernetes.default.<cluster DNS>` (by default `https://kubernetes.default.svc.cluster.local`), for example:
```yaml ```yaml
apiVersion: v1 apiVersion: v1
clusters: clusters: