76 lines
1.8 KiB
Markdown
76 lines
1.8 KiB
Markdown
# 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
|
|
### Tools
|
|
- [KinD](https://kind.sigs.k8s.io/docs/user/quick-start/#installation)
|
|
- [kubectl](https://kubernetes.io/docs/tasks/tools/)
|
|
- [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
|
|
```
|
|
|
|
## 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.
|