Files
local-k8s/README.md
T

76 lines
1.8 KiB
Markdown
Raw Normal View History

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
### 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/)
- [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.