.PHONY: ansible

up:
	@echo "Checking for Homelab installation..."
	@vagrant status | grep "not created" > /dev/null; \
	if [ "$$?" -gt 0 ]; then \
		echo "Installation found, bringing it up..."; \
		vagrant up; \
	else \
		echo "No Homelab installation found or missing components, creating..."; \
		sleep 10; \
		$(MAKE) install_vb; \
	fi

down:
	@echo "Stopping Homelab..."
	@vagrant halt

install_vb:
	@echo "Creating components..."
	@vagrant up
	@echo "Installing k3s backbone configuration..."
	@make ansible

wg:
	@cd ansible && ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i ../inventory/lab.yml -i ../inventory/outsider.yml init.yml --extra-vars "enable_setup=false enable_wireguard=true enable_k3s=false"

ansible:
	@cd ansible && ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i ../inventory/lab.yml -i ../inventory/outsider.yml init.yml --extra-vars "enable_setup=true enable_wireguard=true enable_k3s=true"
	@make get_k3s_credentials

k3s_reset:
	@echo "Resetting k3s configuration..."
	@cd ansible && ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i ../inventory/lab.yml -i ../inventory/outsider.yml k3s-ansible/reset.yml
	@make ansible
	@make get_k3s_credentials

destroy:
	@echo "Destroy Homelab installation..."
	@vagrant destroy -f 

get_k3s_credentials:
	@echo "Retrieving k3s credentials locally..."
	@vagrant ssh -c "sudo cat /home/creator/.kube/config" hb-wide-1 > ~/.kube/config-halia
	@sed -i 's/100.64.*:/192.168.56.101:/g' ~/.kube/config-halia
	@kube-merge
	@kubectl get nodes --context halia