41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
# Scripts
|
|
|
|
Kustomize source를 대체하지 않는 얇고 명시적인 운영 자동화입니다.
|
|
|
|
```text
|
|
scripts/
|
|
├── bin/
|
|
│ ├── bootstrap.sh
|
|
│ └── teardown.sh
|
|
├── tasks/
|
|
├── lib/
|
|
├── ci/
|
|
│ ├── validate.sh
|
|
│ └── validate-docs.sh
|
|
├── doctor.sh
|
|
└── validate.sh
|
|
```
|
|
|
|
- `doctor.sh`: 로컬 도구와 IaC 엔진 선택 상태 확인
|
|
- `validate.sh`: 템플릿 구조, 민감 파일, shell, Kustomize와 IaC 형식 검증
|
|
- `ci/validate.sh`: 프로젝트 entrypoint, schema, policy, shell, secret와 문서 검증
|
|
- `bin/bootstrap.sh`: stage별 render/dry-run/diff/confirm/apply와 readiness 대기
|
|
- `bin/teardown.sh`: 명시적 opt-in을 요구하는 역순 제거
|
|
|
|
```bash
|
|
make doctor
|
|
make check
|
|
|
|
export KUBE_CONTEXT_LAB='<expected-context>'
|
|
bash scripts/bin/bootstrap.sh lab
|
|
bash scripts/bin/teardown.sh lab
|
|
```
|
|
|
|
Context 검증은 `CONFIRM=yes`로 우회할 수 없습니다. teardown은 기본적으로
|
|
app/operation만 제거하며 data/Vault/namespace는 `DELETE_DATA=yes`, 공유
|
|
operator는 `TEARDOWN_PLATFORM=yes`가 추가로 필요합니다.
|
|
|
|
검증한 Kubernetes context는 이후 모든 `kubectl`/`helm` 호출과 하위 task에
|
|
고정됩니다. `prod`의 Vault init material은 repository 밖 경로만 허용하며,
|
|
Secret 강제 재생성에는 `ALLOW_PROD_SECRET_RESET=yes`가 추가로 필요합니다.
|