.DEFAULT_GOAL := help

INVENTORY ?= ansible/hosts.ini

##@ Safety Net

backup: ## Backup postgres + config to Nextcloud (age-encrypted)
	bin/railiance backup

preflight: ## Pre-migration safety gate — must pass before cluster work
	bin/railiance preflight

##@ Kubernetes

k3s-install: ## Install k3s and Helm on all inventory hosts
	ansible-playbook -i $(INVENTORY) ansible/bootstrap.yml

smoke: ## Run Kubernetes smoke tests
	bash tests/smoke_kube.sh

test-ha-failover: ## Run HA failover test (D3) — kills primary PG pod, asserts recovery
	bash tests/test_ha_failover.sh $(if $(GITEA_URL),$(GITEA_URL),)

##@ Help

help: ## Show this help
	@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n  make \033[36m<target>\033[0m\n"} \
	  /^[a-zA-Z_-]+:.*?##/ { printf "  \033[36m%-20s\033[0m %s\n", $$1, $$2 } \
	  /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) }' $(MAKEFILE_LIST)

.PHONY: k3s-install smoke test-ha-failover help
