ALL_IMAGES = $(shell cat service.list | grep '[.]packer.json$$')
default:
../../jsonnet -J lib -A ssh_username=$$USER --multi . service.jsonnet > service.list
$(MAKE) all_artifacts
$(MAKE) terraform.done
all_artifacts: $(ALL_IMAGES:.packer.json=.packer.done)
%.packer.done: %.packer.json
@echo "======== BUILDING IMAGE: $(basename $(basename $<)) ========"
time packer build -force $< > $(basename $@).log 2>&1
cp $< $@
terraform.done: terraform.tf
@echo "======== MODIFYING DEPLOYMENT ========"
terraform plan -detailed-exitcode -out=terraform.plan ; case "$$?" in "2") exit 0;; *) exit 1;; esac
@read -r -p "Are you sure? [y/N] " response && case "$$response" in [yY][eE][sS]|[yY]) terraform apply terraform.plan && cp $< $@ ;; esac
destroy:
@echo "======== DESTROYING DEPLOYMENT ======== "
@rm -vf terraform.plan terraform.done
@terraform destroy -force
clean:
rm -fv service.list *.packer.log *.packer.json *~ *.packer.done *.tf