update roadmap and documentation for control-plane and edge components

This commit is contained in:
toki 2026-05-30 18:29:18 +09:00
parent 07b937d285
commit 49d32a619b
7 changed files with 47 additions and 16 deletions

View file

@ -78,6 +78,8 @@ Control Plane은 Node에 직접 연결하지 않는다. 전체 시스템 제어
> Control Plane은 Edge를 통해 시스템을 제어하고, Edge는 자신의 로컬 런타임 상태를 소유하고 운영한다.
운영 표면은 두 층으로 나눈다. `iop-edge` CLI는 Control Plane 없이도 bootstrap, local config, 진단, node 등록 command 발급, smoke, 단일 Edge 유지보수를 할 수 있는 field/fallback interface로 유지한다. Control Plane은 여러 Edge를 상시 관찰하고 명령, 정책, 감사, 팀 운영 UX를 제공하는 기본 운영면으로 확장한다. 둘 다 필요한 작업은 Edge가 소유한 shared operation으로 분류하고, CLI와 Control Plane이 각각 구현을 복제하지 않는다.
### 제어면(Control Plane)
Control Plane은 자체 서버와 프론트 페이지를 가진 중앙 관리 계층이다.
@ -128,6 +130,8 @@ Edge는 자신의 데이터를 자체적으로 가진다. Control Plane은 Edge
현재 edge 내에는 edge-local ops console이 있다. ops console의 `/` 명령은 `apps/edge/internal/service`를 호출하는 얇은 어댑터이며, 향후 HTTP/API handler도 같은 service를 호출하는 방향이다. HTTP/API를 central/remote management surface로, ops console을 edge-local diagnostic surface로 구분한다. 실행 이벤트와 node lifecycle 이벤트는 `apps/edge/internal/events` bus를 통해 fanout한다.
새 command나 운영 기능은 먼저 `Edge-local 필수`, `Control Plane 기본`, `shared operation` 중 하나로 분류한다. Edge-local 필수 범위에는 bootstrap/config/env/setup/node register/nodes list/smoke 같은 Control Plane 없는 field 경로가 들어가고, Control Plane 기본 범위에는 multi-edge 관찰, fleet-wide command, 정책/감사, 반복 운영 리포트가 들어간다.
### Node
Node는 실제 실행자다.

View file

@ -7,7 +7,7 @@
## 활성 Milestone
- [계획] Edge Command와 Control Plane 운영 경계
- [검토중] Edge Command와 Control Plane 운영 경계
- Phase: `agent-roadmap/phase/control-plane-portal-ops/PHASE.md`
- 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/edge-command-control-plane-ops-boundary.md`

View file

@ -29,7 +29,7 @@
- 경로: `agent-roadmap/archive/phase/control-plane-portal-ops/milestones/client-integration-clone-adoption.md`
- 요약: NomadCode Flutter client clone adoption은 별도 프로젝트에서 진행하기로 하여 IOP active roadmap에서 제외했다.
- [계획] Edge Command와 Control Plane 운영 경계
- [검토중] Edge Command와 Control Plane 운영 경계
- 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/edge-command-control-plane-ops-boundary.md`
- 요약: `iop-edge` local/field fallback과 Control Plane 기본 운영면의 책임 경계, shared Edge operation 분류 기준, 사용자 가이드 갱신 범위를 확정한다.

View file

@ -12,7 +12,7 @@
## 상태
[계획]
[검토중]
## 구현 잠금
@ -32,31 +32,31 @@
### Epic: [ops-boundary] Operations Boundary
- [ ] [cli-scope] `iop-edge` CLI가 Control Plane 없는 bootstrap/local/field/진단 fallback으로 유지할 command category가 문서화된다.
- [ ] [cp-scope] Control Plane이 상시 운영, multi-edge 관찰/명령, 정책/감사 UX의 기본 운영면으로 맡을 category가 문서화된다.
- [ ] [shared-ops] CLI와 Control Plane에 모두 필요한 작업이 shared Edge operation으로 분류되는 기준이 문서화된다.
- [x] [cli-scope] `iop-edge` CLI가 Control Plane 없는 bootstrap/local/field/진단 fallback으로 유지할 command category가 문서화된다.
- [x] [cp-scope] Control Plane이 상시 운영, multi-edge 관찰/명령, 정책/감사 UX의 기본 운영면으로 맡을 category가 문서화된다.
- [x] [shared-ops] CLI와 Control Plane에 모두 필요한 작업이 shared Edge operation으로 분류되는 기준이 문서화된다.
### Epic: [operation-contract] Edge Operation Contract
- [ ] [service-boundary] CLI, ops console, HTTP/A2A, Control Plane wire handler가 같은 Edge operation을 노출할 때 공유할 service/operation boundary가 정리된다.
- [ ] [command-classify] 기존 `iop-edge` command와 후속 specialized agent enrollment command 후보가 완전 열거가 아니라 category 기준으로 분류된다.
- [ ] [expansion-gate] Cline, OTO enrollment, remote terminal bridge 같은 후속 확장은 구현 전에 command/operation category를 먼저 선언하는 기준을 따른다.
- [x] [service-boundary] CLI, ops console, HTTP/A2A, Control Plane wire handler가 같은 Edge operation을 노출할 때 공유할 service/operation boundary가 정리된다.
- [x] [command-classify] 기존 `iop-edge` command와 후속 specialized agent enrollment command 후보가 완전 열거가 아니라 category 기준으로 분류된다.
- [x] [expansion-gate] Cline, OTO enrollment, remote terminal bridge 같은 후속 확장은 구현 전에 command/operation category를 먼저 선언하는 기준을 따른다.
### Epic: [user-guides] User Guide Updates
- [ ] [edge-guide] `apps/edge/README.md``docs/edge-local-dev-guide.md`가 Edge-local CLI fallback과 Control Plane 기본 운영면의 차이를 설명한다.
- [ ] [cp-guide] `apps/control-plane/README.md`와 필요한 경우 `README.md`가 Control Plane이 Edge operation을 원격 운영면으로 소비한다는 경계를 설명한다.
- [ ] [guide-consistency] 사용자 가이드가 repo helper script를 field 기본 경로로 승격하지 않고, CLI와 Control Plane 역할을 같은 기준으로 설명한다. 검증: 관련 사용자 가이드에서 CLI fallback, Control Plane 기본 운영면, shared operation 기준이 서로 충돌하지 않는지 확인한다.
- [x] [edge-guide] `apps/edge/README.md``docs/edge-local-dev-guide.md`가 Edge-local CLI fallback과 Control Plane 기본 운영면의 차이를 설명한다.
- [x] [cp-guide] `apps/control-plane/README.md`와 필요한 경우 `README.md`가 Control Plane이 Edge operation을 원격 운영면으로 소비한다는 경계를 설명한다.
- [x] [guide-consistency] 사용자 가이드가 repo helper script를 field 기본 경로로 승격하지 않고, CLI와 Control Plane 역할을 같은 기준으로 설명한다. 검증: 관련 사용자 가이드에서 CLI fallback, Control Plane 기본 운영면, shared operation 기준이 서로 충돌하지 않는지 확인한다.
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증이 아직 충족되지 않았다.
- 상태: 요청됨
- 요청일: 2026-05-30
- 완료 근거: Edge-local CLI fallback, Control Plane 기본 운영면, shared Edge operation 분류 기준을 domain rule과 사용자 가이드에 반영했다. `apps/edge/README.md`, `docs/edge-local-dev-guide.md`, `apps/control-plane/README.md`, `README.md`가 같은 category 기준을 설명하고, `rg --sort path`로 관련 문구 충돌 여부를 확인했다.
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
- 리뷰 코멘트: 코드 구현 계획은 만들지 않았다. 이번 마일스톤은 문서/운영 경계 정리 범위이며, Cline/OTO/terminal 구현은 후속 마일스톤에서 다룬다.
## 범위 제외

View file

@ -8,6 +8,12 @@
IOP의 프론트엔드는 Control Plane 내부 UI가 아니라 Flutter-first Client로 둔다. Client의 기준 구현은 `apps/client`의 Flutter 앱이고, web 배포는 `apps/client/Dockerfile`이 빌드한 Flutter Web 산출물을 compose `web` 서비스에서 nginx로 정적 서빙한다. Client-Control Plane 통신은 proto-socket WebSocket/WSS를 우선하고, Control Plane-Edge 통신은 edge-node에서 사용 중인 proto-socket 흐름을 IOP Wire Protocol 기준으로 확장한다. `net/http`는 health/readiness/bootstrap 같은 보조 endpoint 용도로만 둔다.
## 운영 경계
Control Plane은 상시 운영, multi-edge 관찰/명령, 정책/감사 UX의 계획된 기본 운영면이다. Edge-local bootstrap, bundle-local config, env/config 진단, node 등록 command 발급, smoke, 단일 Edge 유지보수 fallback은 `iop-edge` CLI에 남긴다.
Control Plane-Edge wire protocol은 Edge가 소유한 operation을 원격 운영면으로 소비한다. Edge 상태 조회, node 및 후속 agent 등록 상태 조회, command 전달, event 수신, run/cancel/status, bootstrap 발급 상태처럼 CLI와 Control Plane에 모두 필요한 작업은 Edge 내부의 표면 중립 service/operation boundary로 수렴시키고, Control Plane에서 Edge-local registry, run dispatch, stream relay 구현을 복제하지 않는다.
## 현재 실행 표면
- `GET /healthz`

View file

@ -111,6 +111,16 @@ Node host는 `<artifact-base-url>/bootstrap/node.sh` 하나를 실행하고, boo
`setup``--config` 기본값은 `/etc/iop/edge.yaml`이다. dev 단계 명령(`serve`, `console`, `config init/print/check`, `env`, `node register`)의 root persistent `--config` 기본값은 bundle-local `edge.yaml` (없을 시 executable-adjacent `edge.yaml`, 그 다음 repo dev fallback `configs/edge.yaml`)로 확인된다. 기존 설정 파일은 그대로 두며 `--overwrite-config`를 지정해야 덮어쓴다.
## 운영 표면 경계
`iop-edge` CLI는 Control Plane이 없거나 아직 연결되지 않은 host에서도 Edge를 설치, 진단, 복구할 수 있게 하는 local/field/fallback interface다. 상시 multi-edge 운영 UI/API는 Control Plane으로 확장하고, CLI를 fleet 운영 화면으로 키우지 않는다.
- **Edge-local 필수**: `config init/check/print`, `env`, `setup`, `bootstrap pack`, `node register`, `nodes list`, `smoke`, 단일 Edge `serve`/`console`
- **Control Plane 기본**: 여러 Edge 상태 조회, 팀 운영 UI, 정책/권한/audit, 반복 운영/리포트, fleet-wide command
- **Shared operation**: Edge 상태 조회, node 및 후속 agent 등록 상태 조회, command 전달, event 수신, run/cancel/status, bootstrap 발급 상태
새 command나 운영 기능은 먼저 위 category 중 하나로 분류한다. CLI와 Control Plane에 모두 필요한 작업은 표면별로 registry 변경, run dispatch, command request 로직을 복제하지 않고 `apps/edge/internal/service` 같은 표면 중립 Edge operation boundary로 수렴시킨다. 후속 specialized agent enrollment, remote terminal bridge, Cline 확장도 새 command가 필요하면 이 분류를 먼저 따른다.
## Console 명령
| 명령 | 설명 |

View file

@ -1,6 +1,9 @@
# Edge Local Quickstart
Edge는 package 하나, Node는 bootstrap 한 줄로 설치한다.
이 문서는 Control Plane 없이 Edge host에서 bootstrap, local config, 진단, 단일 Edge 유지보수를 수행하는 Edge-local 경로다. 여러 Edge를 상시 관찰하거나 정책/감사/팀 운영을 수행하는 기본 운영면은 후속 Control Plane으로 둔다.
`scripts/dev/*` helper는 repo 내부 개발 진단용이다. field 기본 경로는 `iop-edge` package와 여기서 출력되는 one-line bootstrap command다.
## 1. Package
@ -70,6 +73,14 @@ tail -f logs/edge.log
정상: `node registered`
## 운영 범위
- **Edge-local 필수**: package 설치, `edge.yaml` 생성/검증, effective environment 확인, node bootstrap command 발급, 단일 Edge smoke와 복구 진단
- **Control Plane 기본**: 여러 Edge 상태 조회, 팀 운영 UI, 정책/권한/audit, 반복 운영/리포트, fleet-wide command
- **Shared operation**: Edge 상태, node 및 후속 agent 등록 상태, command/event, run/cancel/status, bootstrap 발급 상태처럼 CLI와 Control Plane이 모두 다룰 수 있는 작업
새 command가 필요하면 먼저 이 셋 중 하나로 분류한다. Shared operation은 CLI와 Control Plane이 각각 별도 로직을 갖지 않고 Edge의 공통 operation/service 경계를 통해 노출한다.
## Build Options
```bash