iop/agent-test/dev-corp/control-plane-smoke.md
toki d6dd3da59d docs(dev-corp): Control Plane 검증 기준을 갱신한다
native Control Plane이 활성화된 provider-pool 상태와 capacity smoke 결과를 dev-corp 테스트 규칙과 인벤토리에 반영한다.
2026-07-02 16:07:26 +09:00

5.5 KiB

test_env test_profile domain verification_type last_rule_updated_at
dev-corp control-plane-smoke control-plane smoke 2026-07-02

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 WS 19004, CP-Edge wire 19005, Edge-Node TCP transport 19006, web/dev preview 13002.
  • runtime: Go 1.24, Docker compose
  • package manager: Go modules / Makefile
  • docker: compose 검증은 mac-mini에서 .env.dev-corp.example 기준으로 수행한다. 파일 생성 전에는 compose 검증을 차단으로 보고한다. provider-pool native runtime 검증은 build/dev-corp-runtime/bin/control-plane과 env override를 사용할 수 있다.
  • external service: postgres host publish 15402, redis host publish 16302
  • model endpoint:
  • credential: DB/Redis credential 원문은 문서에 기록하지 않는다.

명령

  • setup: mac-mini 환경에서 IOP_EDGE_NODE_TOKEN을 안전하게 주입한 뒤 docker compose --env-file .env.dev-corp.example up -d postgres redis control-plane edge 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-plane18002/19004/19005 dev-corp 포트로 실행한다.
  • Edge config는 control_plane.enabled=true, wire_addr=127.0.0.1:19005이며 Edge id는 dev-corp-edge다.
  • /edges에서 dev-corp-edgeconnected=true로 관측된다.
  • /edges/dev-corp-edge/status는 Edge-owned snapshot을 반환하며 3개 provider node의 provider_snapshots를 포함한다. 이 status는 provider capacity smoke의 in_flight/queued evidence 기준이다.
  • 2026-07-02 capacity smoke에서 /v1/responses/v1/chat/completions 모두 peak total in_flight=13, queued=3, 완료 후 provider별 in_flight=0, queued=0 회복을 확인했다.

판정 기준

  • control-plane service가 dev-corp stack으로 기동되고 health endpoint가 성공 응답을 반환한다.
  • 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 파일에 기록하지 않는다.