refactor: 폴더 구조 변경
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 0001. 수명주기와 소유권 경계
|
||||
|
||||
- 상태: 승인
|
||||
- 날짜: 2026-07-26
|
||||
- 결정자: repository maintainers
|
||||
|
||||
## 배경
|
||||
|
||||
인프라 저장소는 규모가 커지면서 cloud provisioning, cluster bootstrap,
|
||||
platform addon과 application 배포가 뒤섞이기 쉽습니다. 이 경우 동일 리소스를
|
||||
여러 도구가 관리하거나, 작은 변경이 불필요하게 넓은 권한과 state를 요구합니다.
|
||||
|
||||
## 결정
|
||||
|
||||
저장소를 다음 세 수명주기로 분리합니다.
|
||||
|
||||
1. `bootstrap`: 선언형 관리가 시작되기 위한 최소 선행 조건
|
||||
2. `infrastructure`: cloud/cluster 리소스 provisioning
|
||||
3. `gitops`: Kubernetes desired state의 지속적 reconciliation
|
||||
|
||||
재사용 구현은 catalog 영역에 두고, `infrastructure/live`와
|
||||
`gitops/clusters`만 실제 환경 진입점으로 사용합니다. 하나의 리소스는 하나의
|
||||
수명주기와 하나의 도구만 소유합니다.
|
||||
|
||||
## 결과
|
||||
|
||||
- state, 권한과 배포 실패 범위를 작게 유지할 수 있습니다.
|
||||
- 소규모는 선택 디렉터리를 사용하지 않고도 시작할 수 있습니다.
|
||||
- 계정, 리전과 클러스터가 늘어날 때 같은 leaf를 추가해 확장할 수 있습니다.
|
||||
- 초기에는 디렉터리가 더 많아 보이지만 각 위치의 책임이 명확해집니다.
|
||||
|
||||
## 대안
|
||||
|
||||
- 환경별 전체 복사: 시작은 단순하지만 공통 변경의 drift와 중복이 빠르게 증가합니다.
|
||||
- 도구별 최상위 폴더: 구현 도구는 잘 보이지만 리소스 소유권과 수명주기가 섞입니다.
|
||||
- 모든 리소스를 단일 state로 관리: 작은 데모에는 가능하지만 권한과 장애 범위가
|
||||
지나치게 커집니다.
|
||||
@@ -0,0 +1,24 @@
|
||||
# Architecture Decision Records
|
||||
|
||||
프로젝트의 장기 구조에 영향을 주는 선택은 ADR로 남깁니다.
|
||||
|
||||
파일명은 `NNNN-kebab-case-title.md`를 사용하고 다음 형식을 따릅니다.
|
||||
|
||||
```markdown
|
||||
# NNNN. 제목
|
||||
|
||||
- 상태: 제안 | 승인 | 폐기 | 대체
|
||||
- 날짜: YYYY-MM-DD
|
||||
- 결정자: 팀 또는 역할
|
||||
|
||||
## 배경
|
||||
|
||||
## 결정
|
||||
|
||||
## 결과
|
||||
|
||||
## 대안
|
||||
```
|
||||
|
||||
기존 결정을 바꿀 때 문서를 지우지 말고 새 ADR에서 이전 ADR을 대체했다고
|
||||
표시합니다.
|
||||
Reference in New Issue
Block a user