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