use k3d for local cluster deployment
This commit is contained in:
parent
6b0510e8fc
commit
a3938f492b
18
Makefile
18
Makefile
|
@ -17,9 +17,9 @@ ifeq ($(environment),prod)
|
||||||
KUSTOMIZEDIR = kustomize/overlays/prod
|
KUSTOMIZEDIR = kustomize/overlays/prod
|
||||||
KUSTOMIZEOUT = $(OUTDIR)/$(environment)/manifest.yaml
|
KUSTOMIZEOUT = $(OUTDIR)/$(environment)/manifest.yaml
|
||||||
|
|
||||||
# base-deploy
|
# auto-deploy
|
||||||
KUSTOMIZEDIRALL = kustomize/overlays/prod-base-deploy
|
KUSTOMIZEDIRALL = kustomize/overlays/prod-auto-deploy
|
||||||
KUSTOMIZEOUTALL = $(OUTDIR)/$(environment)/base-deploy.yaml
|
KUSTOMIZEOUTALL = $(OUTDIR)/$(environment)/auto-deploy.yaml
|
||||||
else
|
else
|
||||||
environment = dev
|
environment = dev
|
||||||
|
|
||||||
|
@ -28,14 +28,14 @@ else
|
||||||
KUSTOMIZEDIR = kustomize/overlays/dev
|
KUSTOMIZEDIR = kustomize/overlays/dev
|
||||||
KUSTOMIZEOUT = $(OUTDIR)/$(environment)/manifest.yaml
|
KUSTOMIZEOUT = $(OUTDIR)/$(environment)/manifest.yaml
|
||||||
|
|
||||||
# base-deploy
|
# auto-deploy
|
||||||
KUSTOMIZEDIRALL = kustomize/overlays/dev-base-deploy
|
KUSTOMIZEDIRALL = kustomize/overlays/dev-auto-deploy
|
||||||
KUSTOMIZEOUTALL = $(OUTDIR)/$(environment)/base-deploy.yaml
|
KUSTOMIZEOUTALL = $(OUTDIR)/$(environment)/auto-deploy.yaml
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: all info base-deploy clean diff apply
|
.PHONY: all info auto-deploy clean diff apply
|
||||||
|
|
||||||
all: info base-deploy $(KUSTOMIZEOUT)
|
all: info auto-deploy $(KUSTOMIZEOUT)
|
||||||
|
|
||||||
info:
|
info:
|
||||||
@echo "Building for" $(environment)
|
@echo "Building for" $(environment)
|
||||||
|
@ -43,7 +43,7 @@ info:
|
||||||
clean:
|
clean:
|
||||||
rm -r $(OUTDIR)
|
rm -r $(OUTDIR)
|
||||||
|
|
||||||
base-deploy: $(SRC)
|
auto-deploy: $(SRC)
|
||||||
@mkdir -p $(dir $(KUSTOMIZEOUTALL))
|
@mkdir -p $(dir $(KUSTOMIZEOUTALL))
|
||||||
$(KUSTOMIZE) build $(KUSTOMIZEFLAGS) $(KUSTOMIZEDIRALL) >$(KUSTOMIZEOUTALL) || (rm $(KUSTOMIZEOUTALL); exit 1)
|
$(KUSTOMIZE) build $(KUSTOMIZEFLAGS) $(KUSTOMIZEDIRALL) >$(KUSTOMIZEOUTALL) || (rm $(KUSTOMIZEOUTALL); exit 1)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
bases:
|
bases:
|
||||||
- ../../bases/cert-manager
|
- ../../bases/cert-manager
|
||||||
|
|
||||||
namespace: cert-manager
|
# namespace: cert-manager
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
bases:
|
bases:
|
||||||
- ../../bases/ingress-nginx
|
- ../../bases/ingress-nginx
|
||||||
|
|
||||||
namespace: ingress-nginx
|
# namespace: ingress-nginx
|
||||||
|
|
|
@ -4,4 +4,4 @@ bases:
|
||||||
|
|
||||||
# allow "kubectl apply -l managed-by=k3s --prune ..."
|
# allow "kubectl apply -l managed-by=k3s --prune ..."
|
||||||
commonlabels:
|
commonlabels:
|
||||||
managed-by: k3s
|
managed-by: auto-deploy
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!/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" <<EOF
|
||||||
|
mirrors:
|
||||||
|
"registry.localhost:5000":
|
||||||
|
endpoint:
|
||||||
|
- http://registry.localhost:5000
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
echo '~/.config/k3d/registries.yaml already exists, skipping generation'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# local k3s cluster
|
||||||
|
if ! k3d cluster list "$cluster_name" &>/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
|
|
@ -1,2 +0,0 @@
|
||||||
#/bin/bash
|
|
||||||
cp /host/build/all/* /manifests
|
|
Loading…
Reference in New Issue