Skip to content

Installation

Prerequisites

Check you've done all the preparation and that you can connect to a running cluster. You should have all the required CLI tools and a running local cluster (using either k3d, kind, docker desktop, rancher desktop or minikube).

To check:

kubectl cluster-info --context <your cluster name>

Note

When you created your local cluster on windows and now running WSL, copy your windows context to your WSL installation.

cp /mnt/c/users/<your username>/.kube/config ~/.kube/config

Update Local DNS

Since we are running completely locally, we want to add some entries to the hosts file to forward domainnames to our locally running cluster. On Windows, open C:\Windows\system32\drivers\etc\hosts in an editor as Administrator and add the following entries. On Linux edit your /etc/hosts file as root.

127.0.0.1 k8s.local infrastructure.k8s.local traefik.infrastructure.k8s.local traefik.k8s.local
127.0.0.1 jaeger.infrastructure.k8s.local prometheus.infrastructure.k8s.local seq.infrastructure.k8s.local grafana.infrastructure.k8s.local
127.0.0.1 consul.infrastructure.k8s.local vault.infrastructure.k8s.local
127.0.0.1 es.infrastructure.k8s.local kibana.infrastructure.k8s.local
127.0.0.1 login.k8s.local admin.login.k8s.local api.login.k8s.local
127.0.0.1 app1.k8s.local api.app1.k8s.local
127.0.0.1 argo.k8s.local
127.0.0.1 linkerd.infrastructure.k8s.local
127.0.0.1 whoami1.k8s.local whoami2.k8s.local
127.0.0.1 keycloak.k8s.local auth.k8s.local
127.0.0.1 etcd.infrastructure.k8s.local
127.0.0.1 minio.infrastructure.k8s.local console.minio.infrastructure.k8s.local
127.0.0.1 azurite.infrastructure.k8s.local
127.0.0.1 rabbitmq.infrastructure.k8s.local
127.0.0.1 localstack.infrastructure.k8s.local
127.0.0.1 flux.infrastructure.k8s.local
127.0.0.1 kafka.infrastructure.k8s.local
127.0.0.1 mysql.infrastructure.k8s.local
127.0.0.1 mariadb.infrastructure.k8s.local
127.0.0.1 postgres.infrastructure.k8s.local
127.0.0.1 mssql.infrastructure.k8s.local
127.0.0.1 oracle.infrastructure.k8s.local
127.0.0.1 mongo.infrastructure.k8s.local
127.0.0.1 oracle.infrastructure.k8s.local
127.0.0.1 redis.infrastructure.k8s.local
127.0.0.1 goldilocks.infrastructure.k8s.local
127.0.0.1 dashboard.infrastructure.k8s.local

Generate a root certificate

Assuming the root certificate is already created with mkcert -install, then

cd src/terraform
./generate-certificate.ps1

Next run the installer in a Linux/WSL shell:

cd src/terraform
./generate-certificate.sh

Helm repositories

Name URL
stable [https://charts.helm.sh/stable]
hashicorp [https://helm.releases.hashicorp.com]
datawire [https://www.getambassador.io]
jaegertracing [https://jaegertracing.github.io/helm-charts]
bitnami [https://charts.bitnami.com/bitnami]
prometheus-community [https://prometheus-community.github.io/helm-charts]
traefik [https://helm.traefik.io/traefik]
datalust [https://helm.datalust.co]
fluent [https://fluent.github.io/helm-charts]
grafana [https://grafana.github.io/helm-charts]
agua [https://aguafrommars.github.io/helm]
elastic [https://helm.elastic.co]
jetstack [https://charts.jetstack.io]
identityserver4admin [https://bravecobra.github.io/identityserver4.admin-helm/charts/]
argo [https://argoproj.github.io/argo-helm]
argo-cd [https://argoproj.github.io/argo-helm]
linkerd [https://helm.linkerd.io/stable]
longhorn [https://charts.longhorn.io]
codecentric [https://codecentric.github.io/helm-charts]
open-telemetry [https://open-telemetry.github.io/opentelemetry-helm-charts]
minio [https://charts.min.io/]
kubecost [https://kubecost.github.io/cost-analyzer/]
localstack-charts [https://localstack.github.io/helm-charts]
fluxcd-community [https://fluxcd-community.github.io/helm-charts]
simcube [https://simcubeltd.github.io/simcube-helm-charts/]
oracle [https://oracle.github.io/helm-charts]
cilium [https://helm.cilium.io/]
confluentinc [https://confluentinc.github.io/cp-helm-charts/]
strimzi [https://strimzi.io/charts/]
aqua [https://aquasecurity.github.io/helm-charts/]
jfrog [https://charts.jfrog.io]
joxit [https://helm.joxit.dev]
fairwinds-stable [https://charts.fairwinds.com/stable]

To add these easily

cd src/terraform
./add-helm-repos.ps1
cd src/terraform
./add-helm-repos.sh

Installer

Edit the terraform.tfvars as you see fit.

cd src/terraform
helm repo update
terraform init
terraform apply -auto-approve

Next run the installer in a Linux/WSL shell:

cd src/terraform
helm repo update
terraform init
terraform apply -auto-approve

The traefik dashboard should now be available at https://traefik.infrastructure.k8s.local