2021-09-14 08:32:10 +02:00
# Run Unbound environment in local K8S
This is a setup for running the Unbound environment in K8S using [KinD ](https://kind.sigs.k8s.io/ )
## Prerequisites
2021-10-01 17:50:01 +02:00
### Tools
2021-09-14 08:32:10 +02:00
- [KinD ](https://kind.sigs.k8s.io/docs/user/quick-start/#installation )
- [kubectl ](https://kubernetes.io/docs/tasks/tools/ )
2021-10-01 17:50:01 +02:00
- [Buildtools ](https://buildtools.io )
- [Lastpass CLI ](https://github.com/lastpass/lastpass-cli )
- [GNU Base64 ](https://www.gnu.org/software/coreutils/ )
- [Bash 4.4+ ](https://www.gnu.org/software/bash/ )
- [direnv ](https://direnv.net/ ) to manage environment variables per directory
### Setup
Create a Gitlab Personal Access Token with (at least) read_registry access and set it as environment variable GITLAB_TOKEN. Can be done with a `.envrc` -file in a parent directory:
``` shell
source_up .envrc
export GITLAB_TOKEN = <xyz>
```
Create a `.buildtools.yaml` -file in the parent directory with the following content:
``` yaml
targets :
local :
context : kind-unbound
namespace : default
staging :
context : k8s.unbound.se
namespace : staging
prod :
context : k8s.unbound.se
namespace : default
```
2021-09-14 08:32:10 +02:00
## Creating the cluster
Just run the following:
``` shell
./setup
```
Wait for the cluster to be ready. The K8S context should be set automatically. Check what's been deployed by running:
``` shell
kubectl get pod -A
```
## Stopping/starting the cluster
If you need to stop the cluster to be able to use the exposed ports for other things, run:
``` shell
docker stop unbound-control-plane
```
To start it again:
``` shell
docker start unbound-control-plane
```
## Removing the cluster
To remove the cluster completely, run:
``` shell
kind delete cluster --name unbound
```
## Cleaning up retained data
The setup stores data for containers in the `data` -directory. To start from scratch, stop the cluster, empty the directory
and start the cluster again.