.DEFAULT_GOAL := help

INVENTORY ?= ansible/hosts.ini

##@ Safety Net

backup: ## Backup k3s etcd + Helm values + kubeconfig (age-encrypted, root required)
	sudo tools/cmd/railiance-backup-s2

restore: ## List available backups and print restore guide
	tools/cmd/railiance-restore-s2

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),)

verify-activity-core: ## Reconcile activity-core runtime and verify disabled ops inventory probe evidence
	tools/cmd/railiance-verify-activity-core

##@ 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: backup restore preflight k3s-install smoke test-ha-failover verify-activity-core help
