refactor: 구조 변경
This commit is contained in:
@@ -1,20 +1,45 @@
|
||||
.PHONY: bootstrap validate vault-init terraform-init terraform-plan terraform-apply check-terraform-inputs
|
||||
SHELL := /bin/bash
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
.PHONY: help doctor validate check tree bootstrap vault-init terraform-init terraform-plan terraform-apply check-terraform-inputs
|
||||
|
||||
KUBE_CONTEXT ?=
|
||||
TF_ROOT ?=
|
||||
BACKEND_CONFIG ?=
|
||||
TF_DIR = iac/terraform/live/dev-k3s/$(TF_ROOT)
|
||||
TF_DIR = infrastructure/live/dev-k3s/$(TF_ROOT)
|
||||
PLAN_FILE ?= $(CURDIR)/.local/terraform-plans/dev-k3s-$(TF_ROOT).tfplan
|
||||
|
||||
bootstrap:
|
||||
help: ## 사용 가능한 명령을 표시합니다.
|
||||
@awk 'BEGIN {FS = ":.*## "; print "Usage: make <target>"} /^[a-zA-Z_-]+:.*## / {printf " %-20s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||
|
||||
doctor: ## 현재 로컬 도구 상태를 확인합니다.
|
||||
@./scripts/doctor.sh
|
||||
|
||||
validate: ## 템플릿 구조와 프로젝트별 GitOps/IaC 계약을 검증합니다.
|
||||
@./scripts/validate.sh
|
||||
|
||||
check: validate ## CI와 동일한 전체 검증을 실행합니다.
|
||||
|
||||
tree: ## 생성물과 Git 메타데이터를 제외한 구조를 표시합니다.
|
||||
@find . \
|
||||
\( \
|
||||
-name .build -o \
|
||||
-name .cache -o \
|
||||
-name .git -o \
|
||||
-name .terraform -o \
|
||||
-name .terragrunt-cache -o \
|
||||
-name dist -o \
|
||||
-name rendered -o \
|
||||
-name tmp \
|
||||
\) -prune -o \
|
||||
-print | sort
|
||||
|
||||
bootstrap: ## 확인된 kube context에 Argo CD와 root Application을 설치합니다.
|
||||
@test -n "$(KUBE_CONTEXT)" || (echo "KUBE_CONTEXT is required" >&2; exit 1)
|
||||
./hack/bootstrap-argocd.sh --context "$(KUBE_CONTEXT)"
|
||||
./scripts/bootstrap-argocd.sh --context "$(KUBE_CONTEXT)"
|
||||
|
||||
validate:
|
||||
./hack/validate.sh
|
||||
|
||||
vault-init:
|
||||
./hack/vault-init.sh init
|
||||
vault-init: ## 개발 Vault를 최초 초기화합니다.
|
||||
./scripts/vault-init.sh init
|
||||
|
||||
check-terraform-inputs:
|
||||
@case "$(TF_ROOT)" in \
|
||||
@@ -23,17 +48,17 @@ check-terraform-inputs:
|
||||
esac
|
||||
@test -f "$(BACKEND_CONFIG)" || (echo "BACKEND_CONFIG must point to a readable backend file" >&2; exit 1)
|
||||
|
||||
terraform-init: check-terraform-inputs
|
||||
terraform-init: check-terraform-inputs ## 선택한 Vault Terraform root를 초기화합니다.
|
||||
terraform -chdir="$(TF_DIR)" init -input=false -reconfigure -backend-config="$(abspath $(BACKEND_CONFIG))"
|
||||
|
||||
terraform-plan: terraform-init
|
||||
terraform-plan: terraform-init ## 검토 가능한 saved Terraform plan을 만듭니다.
|
||||
@mkdir -p "$(dir $(PLAN_FILE))"
|
||||
@umask 077; terraform -chdir="$(TF_DIR)" plan \
|
||||
-input=false \
|
||||
-lock-timeout=5m \
|
||||
-out="$(PLAN_FILE)"
|
||||
|
||||
terraform-apply: terraform-init
|
||||
terraform-apply: terraform-init ## 명시적으로 승인한 saved Terraform plan을 적용합니다.
|
||||
@test "$(APPROVE_APPLY)" = "dev-k3s/$(TF_ROOT)" || \
|
||||
(echo "Set APPROVE_APPLY=dev-k3s/$(TF_ROOT) to continue" >&2; exit 1)
|
||||
@test -f "$(PLAN_FILE)" || \
|
||||
|
||||
Reference in New Issue
Block a user