7.3 KiB
7.3 KiB
| test_env | test_profile | domain | verification_type | last_rule_updated_at |
|---|---|---|---|---|
| dev-corp | control-plane-smoke | control-plane | smoke | 2026-07-14 |
control-plane-smoke dev-corp 테스트
읽기 조건
apps/control-plane/**변경 또는 dev-corp Control Plane health/readiness, config loading, wire endpoint 검증 판단이 필요한 경우
적용 범위
apps/control-plane/cmd/control-plane/**apps/control-plane/internal/wire/**apps/control-plane/Dockerfile- Control Plane HTTP health/readiness와 proto-socket WebSocket hello baseline
- Control Plane-Edge TCP wire endpoint, Edge outbound hello, disconnect baseline
- dev-corp compose host publish와 DB/Redis 분리
분류
- domain: control-plane
- verification_type: smoke
- scope: dev-corp control-plane HTTP와 wire baseline
환경
- host: Docker compose 또는 Flutter client가 포함된 runtime evidence는 mac-mini
ssh fe@172.24.63.178의/Users/fe/agent-work/iop-dev-corp기준으로 수행한다. - port: Control Plane HTTP
18002, Client WS19004, CP-Edge wire19005, Edge-Node TCP transport19006, web/dev preview13002, Control Plane metrics19104, Prometheus19112, Grafana19122. - runtime: Go
1.24, Docker compose - package manager: Go modules / Makefile
- docker: compose 검증은 mac-mini에서
.env.dev-corp.example기준으로 수행한다. provider-pool native runtime 검증은build/dev-corp-runtime/bin/control-plane과 env override를 사용할 수 있다. - external service: postgres host publish
15402, redis host publish16302 - model endpoint:
- operator notice: 기존 dev-corp Control Plane/UI/Edge 접속 포트는 유지한다. 2026-07-13 기준 compose Control Plane/observability 그룹은 mac-mini runner에 배포되어 있고, Control Plane metrics
19104, Prometheus19112, Grafana19122는 runner-local 관측 포트로 유지한다. public13002/18002/19004는 별도 외부 UI 테스트 요청 전까지 열지 않는다. - credential: DB/Redis credential 원문은 문서에 기록하지 않는다.
명령
- setup: mac-mini 환경에서
docker compose --env-file .env.dev-corp.example up -d postgres redis control-plane prometheus grafana - setup-web:
web은 Flutter/Dart SDK와 sibling path dependencies(agent-shell,nexo,proto-socket)가 준비된 runner에서만docker compose --env-file .env.dev-corp.example up -d web으로 별도 기동한다. - setup-native: mac-mini
/Users/fe/agent-work/iop-dev-corp에서IOP_LISTEN=0.0.0.0:18002 IOP_WIRE_LISTEN=0.0.0.0:19004 IOP_EDGE_WIRE_LISTEN=0.0.0.0:19005 build/dev-corp-runtime/bin/control-plane serve --config configs/control-plane.yaml - lint:
- unit:
go test ./apps/control-plane/... - smoke:
curl -fsS http://127.0.0.1:18002/healthz,curl -fsS http://127.0.0.1:18002/readyz,curl -fsS http://127.0.0.1:18002/edges/dev-corp-edge/status - e2e:
make test-control-plane-edge-wire는 보조 smoke이며 기본 포트를 쓰는 스크립트이므로 dev-corp 포트 override 가능 여부를 먼저 확인한다. - model:
- full-cycle: Control Plane command, health/readiness, wire hello 수동 검증
필수 검증
- 변경한 control-plane 패키지 또는
go test ./apps/control-plane/...를 실행한다. - HTTP lifecycle 변경 시 dev-corp port
/healthz와/readyz를 확인한다. - Client-Control Plane wire protocol 변경 시 proto-socket WebSocket hello baseline을 dev-corp wire port
19004기준으로 확인한다. - Control Plane-Edge TCP wire, Edge outbound connector, registry lifecycle 변경 시 dev-corp
19005기준으로 hello accepted, Edge connected, Edge disconnected marker를 확인한다.
보조 검증
- docker compose control-plane service healthcheck를 확인한다.
- Edge 포함 compose 검증에서는
IOP_EDGE_NODE_TOKEN을 mac-mini 환경에서 주입하고, token 원문은 tracked 파일에 기록하지 않는다.
2026-07-02 native Control Plane 상태
- mac-mini provider-pool runtime에서 Control Plane native binary
build/dev-corp-runtime/bin/control-plane을18002/19004/19005dev-corp 포트로 실행한다. - Edge config는
control_plane.enabled=true,wire_addr=127.0.0.1:19005이며 Edge id는dev-corp-edge다. /edges에서dev-corp-edge가connected=true로 관측된다./edges/dev-corp-edge/status는 Edge-owned snapshot을 반환하며 3개 provider node의provider_snapshots를 포함한다. 이 status는 provider capacity smoke의in_flight/queuedevidence 기준이다.- 2026-07-02 mac-mini runtime capacity smoke에서
/v1/responses와/v1/chat/completions모두 peak totalin_flight=13,queued=3, 완료 후 provider별in_flight=0,queued=0회복을 확인했다. 이 기록은 historical evidence이며, current public Edge provider-pool 표준 smoke는/v1/chat/completions에서 model-specificornith:35b9/6,gemma4:26b9/6 동시 요청만 사용한다.
2026-07-13 compose Control Plane/observability 상태
- mac-mini runner에서 compose project
iop-dev-corp-agent로postgres,redis,control-plane,prometheus,grafana가 기동됐다. - Control Plane은 host
18002/19004/19005를 container18000/19080/19081로 publish하고,/healthz,/readyz, Client WebSocket upgrade가 통과했다. - Prometheus는
configs/prometheus/prometheus.dev-corp.yml을 사용하며control-plane:9093,iop.ai.kr:19105,prometheus:9090target이up이다. - Grafana health는 runner-local
127.0.0.1:19122/api/health에서 통과했다. webservice는 runner Flutter가 Dart3.10.0이고 앱 요구 조건이^3.11.3인 점,agent-shell/nexosibling path dependency가 없는 점 때문에 별도 차단 상태다.- 외부 public
13002,18002,19004는 연결 거부 상태로 유지한다.
판정 기준
- control-plane service가 dev-corp stack으로 기동되고 health endpoint가 성공 응답을 반환한다.
- Prometheus와 Grafana가 같은 dev-corp compose project에서 올라오며, Prometheus는 dev-corp 설정에서
control-plane:9093과 native Edge metricsiop.ai.kr:19105를 scrape한다. - wire endpoint는 Control Plane 브라우저/앱 경계로 유지되고 Node 직접 연결/스케줄링 경로로 확장되지 않는다.
- dev-corp stack은 local/test/dev stack의 host publish 포트를 점유하지 않는다.
기준 출력 예시
curl -fsS http://127.0.0.1:18002/healthz
curl -fsS http://127.0.0.1:18002/readyz
차단 기준
- mac-mini runner checkout 또는 docker compose 실행 권한이 없다.
.env.dev-corp.example또는 compose override가 없어 dev-corp compose stack을 렌더링할 수 없다.- 현재 작업 컨테이너에서 Docker-in-Docker가 필요해지는 검증은 수행하지 않고 mac-mini runner 차단으로 보고한다.
- 실제 DB/Redis credential 확인이 필요한데 안전하게 제공되지 않았다.
- dev-corp 포트가 이미 점유되어 local/test/dev stack과 공존할 수 없다.
보고 항목
- 실행한 명령:
- 성공한 검증:
- 실패/차단된 검증:
- 생략 사유:
- 남은 위험:
금지 사항
- Control Plane에서 Node 직접 연결이나 직접 스케줄링을 제품 기본 계약으로 만들지 않는다.
- 실제 DB/Redis credential이나 private endpoint를 tracked docs/rules에 기록하지 않는다.
- secret, token, API key 원문은 tracked 파일에 기록하지 않는다.