.PHONY: build clean schemas

# Build a kustomization path to manifests directory
# Usage: make build clusters/au-syd1/bootstrap
build:
	@kube_version="$$(cat ci/kube-version)"; \
	if [ -z "$$kube_version" ]; then echo "cannot read ci/kube-version" >&2; exit 1; fi; \
	target="$(filter-out $@,$(MAKECMDGOALS))"; \
	mkdir -p "manifests/$$target"; \
	kustomize build --enable-helm --helm-kube-version "$$kube_version" "$$target" --output "manifests/$$target"

# Generate JSON schemas from CRDs and Kubernetes swagger spec (run manually, results committed)
schemas:
	@ci/generate-schemas.sh schemas

# kubeconform
kubeconform:
	@ci/validate-apps.sh && \
	ci/validate-clusters.sh

# Clean all generated manifests
clean:
	@rm -rf manifests/

# Allow any argument after build to be treated as a path
%:
	@:
