--- tags: [infra, workspace, ssot, structure, research] --- # 260309 23서버 워크스페이스 SSOT 구조전환 리서치 ## 상위 원칙 - [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) - [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) - [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) - 공통 작성 원칙: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) ## 관련 문서 - [Infra Journey](../README.md) - [23서버 워크스페이스 인프라 구조정리 이슈](../troubleshooting/260307_23서버_워크스페이스_인프라_구조정리_이슈.md) - [24서버 실서비스 운영전환 리서치](./260309_24서버_실서비스운영전환_리서치.md) - [51123 구 IP 하드코딩 실행 경로와 런타임 SSOT 불일치 리서치](./260309_51123_구IP하드코딩_실행경로_SSOT불일치_리서치.md) ## 목적 - `WORKSPACE_ROOT=/home/admin`를 넣는 것만으로 구조 SSOT가 닫히는지 확인합니다. - `infra-config -> workspace-config` 전환이 실제 실행 경로, 스크립트, 문서에서 어디까지 끝났는지 분리해서 봅니다. - 워크스페이스 구조 문제를 `이름 변경 완료`가 아니라 `실행 경로 정합성 완료` 기준으로 다시 정의합니다. ## Facts ### 1. 공용 운영값 SSOT 경로는 이미 `workspace-config`로 바뀌었다 - `/home/admin/workspace-config/runtime.env`가 존재하고 `WORKSPACE_ROOT=/home/admin`를 포함한다. - `/home/admin/workspace-config/secrets.env`가 존재한다. - `/home/admin/infra-config` 경로는 현재 존재하지 않는다. ### 2. 일부 실행 경로는 이미 새 SSOT를 사용한다 - `/home/admin/robeing/robeing-monitor/docker-compose.yml`은 `env_file`로 `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`를 사용한다. - `/home/admin/infra/scripts/bin/companyx_external_nas_sync_probe.sh`도 `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`를 읽는다. - 따라서 `workspace-config`는 문서 용어가 아니라 실제 실행 경로에서 이미 사용 중이다. ### 3. 일부 실행 경로와 설명 문서는 아직 옛 SSOT 이름을 참조한다 - `/home/admin/robeing-gateway/docker-compose.yml`은 아직 `env_file`로 `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env`를 참조한다. - `/home/admin/infra/scripts/README.md`도 비민감 운영값과 민감값 경로를 `/home/admin/infra-config/*.env`로 설명한다. - 즉 `workspace-config` 전환은 일부 실행 자산에서 끝났지만, 전체 실행 경로 0건 상태는 아니다. ### 3-1. `robeing-gateway`의 역할과 SSOT 방향은 고정됐다 - `robeing-gateway`는 24 실행면으로 옮기지 않고, `auth-server`와 함께 23 서버 제어면에 유지한다. - 따라서 공용 env 단일화의 기준은 `gateway를 옮길지`가 아니라, `23 제어면 서비스도 /home/admin/workspace-config/*.env만 읽게 맞출지`다. - 이 결정으로 `robeing-gateway`는 워크스페이스 구조 SSOT의 예외가 아니라, 같은 SSOT를 따르는 23 제어면 서비스로 정리된다. ### 4. 상위 문서가 가정한 워크스페이스 구조와 현재 파일시스템은 아직 완전히 맞지 않는다 - `/home/admin/DOCS` 경로는 현재 존재하지 않는다. - 그런데 일부 기존 문서와 기억된 구조 설명은 `/home/admin/DOCS`를 전제한다. - 따라서 워크스페이스 구조 SSOT는 실제 디렉터리 기준으로 다시 정리돼야 한다. ### 5. 워크스페이스 루트의 중복/테스트 디렉터리 정리는 진행됐다 - 현재 `/home/admin` 최상위에는 `TheGooseCouncil`만 남아 있다. - `thegoosecouncil`는 공통 하위 저장소 기준 원격에서 더 멀어진 복제본으로 판단돼 제거됐다. - `external_nas_test`, `tmp_lfs_branch_test`는 각각 `Thumbs.db` 1건만 있던 테스트 잔존물과 빈 디렉터리로 확인돼 제거됐다. ## Interpretation ### 1. `WORKSPACE_ROOT` 고정은 구조 SSOT의 시작이지 완료가 아니다 - `WORKSPACE_ROOT=/home/admin`가 들어간 것은 해석 기준을 고정한 1단계다. - 그러나 실행 경로가 아직 `workspace-config`와 `infra-config`를 함께 참조하면, 구조 SSOT는 닫히지 않는다. ### 2. 이 문제의 본질은 이름이 아니라 실행 경로의 단일화다 - `infra-config`라는 이름을 문서에서 `workspace-config`로 바꾸는 것만으로는 충분하지 않다. - 실제 compose, 스크립트, 운영 README가 같은 경로를 보게 정리돼야 구조 SSOT가 완성된다. ### 3. 워크스페이스 구조 SSOT는 루트 디렉터리 정합성까지 포함해야 한다 - `/home/admin/DOCS`처럼 실제 없는 경로를 전제한 문서가 남아 있으면, 운영자가 구조를 잘못 해석할 수 있다. - 중복 프로젝트 루트와 테스트 잔존 디렉터리는 정리됐지만, 이를 참조하는 하위 문서 경로까지 함께 교정돼야 구조 SSOT가 닫힌다. ## Unresolved - `robeing-gateway/docker-compose.yml`와 `/home/admin/infra/scripts/README.md`를 언제 같은 작업 단위로 `workspace-config` 기준으로 교정할지 실행 시점만 남아 있다. - 삭제된 `thegoosecouncil`, `external_nas_test`, `tmp_lfs_branch_test`를 참조하는 하위 문서를 어디까지 현재 경로로 교정할지 범위 결정이 아직 없다. ## 한 줄 결론 - 워크스페이스 구조 SSOT는 `WORKSPACE_ROOT` 고정, 루트 중복 제거, `gateway는 23 제어면 유지` 결정까지는 끝났고, 남은 일은 `workspace-config` 실행 반영과 하위 문서 경로 교정이다.