#!/bin/bash -e cluster_name='local' k3s_registry_config="$HOME/.config/k3d/registries.yaml" # generate manifest to be deployed on boot make auto-deploy auto_deploy_manifest="$(dirname "$(readlink -f "$0")")/build/dev/auto-deploy.yaml" # cluster registry configuration if [[ ! -f "$k3s_registry_cofing" ]]; then mkdir -p "$(dirname "$k3s_registry_config")" cat >"$k3s_registry_config" </dev/null; then k3d cluster create "$cluster_name" \ --servers 1 \ --agents 3 \ --k3s-server-arg '--no-deploy=traefik' \ --volume "$k3s_registry_config:/etc/rancher/k3s/registries.yaml" \ -p 8080:80@loadbalancer sleep 1 fi # --volume ":/var/lib/rancher/k3s/server/manifests/auto-deploy.yaml" \ # local docker registry if ! docker ps -a | grep registry.localhost &>/dev/null; then docker volume create local_registry docker run -d \ --name registry.localhost \ --volume local_registry:/var/lib/registry \ --restart always \ -p 5000:5000 \ registry:2 docker network connect "k3d-$cluster_name" registry.localhost fi k3d kubeconfig merge "$cluster_name" --switch-context >/dev/null kubectl apply -f "$auto_deploy_manifest" kubectl get nodes