Files
training-k8s-1/Makefile
2025-02-22 16:08:08 +00:00

60 lines
1.9 KiB
Makefile

image_name = localhost:5000/explorecalifornia-web
install_name = explorecalifornia-website
cluster = explorecalifornia
.PHONY := build_image \
docker_registry \
docker_registry_down \
kind_cluster \
kind_cluster_down \
deploy \
uninstall \
up \
down \
test
.DEFAULT_GOAL := up
docker_registry:
docker network inspect kind >/dev/null 2>&1 || \
docker network create kind
docker volume inspect registry_data >/dev/null 2>&1 || \
docker volume create registry_data
docker container inspect registry >/dev/null 2>&1 || \
docker run -d -p 127.0.0.1:5000:5000 -v registry_data:/var/lib/registry --restart unless-stopped --network kind --name registry registry:2
docker_registry_down:
docker container inspect registry >/dev/null 2>&1 && ( \
docker container stop registry; docker container rm registry; \
) || true
docker volume inspect registry_data >/dev/null 2>&1 && docker volume rm registry_data || true
build_image:
docker build -t $(image_name) . && \
docker push $(image_name)
kind_cluster:
kind get clusters | grep -x '$(cluster)' >/dev/null 2>&1 || kind create cluster -n $(cluster) --wait 1m --config ./kind.yaml
kind export kubeconfig -n $(cluster)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml && \
sleep 5 && \
kubectl wait --namespace ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=90s
kind_cluster_down:
kind get clusters | grep -x '$(cluster)' >/dev/null 2>&1 && kind delete cluster -n $(cluster) || true
deploy:
helm upgrade --atomic --install $(install_name) ./chart
uninstall:
helm uninstall $(install_name)
test:
curl -s --resolve explorecalifornia.com:80:127.0.0.1 http://explorecalifornia.com | head
up: docker_registry build_image kind_cluster deploy
down: kind_cluster_down docker_registry_down