iop/agent-roadmap/archive/phase/automation-runtime-bridge/milestones/domain-agent-bootstrap-command-issue.md

4.1 KiB

Milestone: OTO Bootstrap Command 발급

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/automation-runtime-bridge/PHASE.md

목표

iop-edge가 OTO agent record를 생성하고 대상 Linux host에서 바로 실행할 one-line bootstrap command를 발급한다. Edge는 OTO bootstrap script를 구현하지 않고, OTO가 소유한 script 인자와 release asset 계약을 소비하는 command를 만든다.

상태

[완료]

구현 잠금

  • 상태: 해제
  • 결정 필요: 없음

범위

  • iop-edge CLI에 OTO agent registration 또는 agent bootstrap command 발급 표면을 추가한다.
  • Edge config에 OTO agent id, alias, enrollment token, release base URL, bootstrap script URL을 기록하거나 재생성 가능한 구조를 둔다.
  • OTO agent config와 bootstrap command는 기존 iop-node config/bootstrap 인터페이스를 기본형으로 유지하고, OTO 전용 script/release 인자와 agent_kind 차이만 명시적으로 추가한다.
  • 출력 command는 OTO Linux MVP bootstrap 인자와 일치해야 한다.
  • local/dev HTTP bootstrap은 명시 flag가 있을 때만 허용하고, 기본 출력은 HTTPS URL을 우선한다.

기능

Epic: [command-surface] Edge CLI Command Surface

Edge-local field UX에서 OTO agent를 생성하고 bootstrap command를 출력한다.

  • [agent-register-cmd] iop-edge가 OTO agent record를 만들거나 갱신하는 command 표면을 제공한다.
  • [node-interface-parity] OTO agent command/config 표면이 기존 iop-node bootstrap의 필드명, flag 의미, 출력 형식, 진단 흐름을 최대한 유지한다.
  • [bootstrap-output] command 출력은 한 줄 bootstrap command만 안정적으로 제공하고 token을 불필요하게 재출력하지 않는다.
  • [oto-args] 출력 command가 OTO bootstrap 필수 인자 --edge-url, --agent-id, --enrollment-token, --release-base-url을 포함한다.
  • [config-roundtrip] 생성된 edge config를 config check와 runtime load가 읽을 수 있다. 검증: go test ./apps/edge/cmd/edge ./packages/go/config

완료 리뷰

  • 상태: 승인됨
  • 요청일: 2026-06-03
  • 완료 근거:
    • iop-edge agent register가 OTO agent record를 upsert하고 agent_kind: oto-agent, alias, token, OTO bootstrap URL, release URL을 edge config에 반영한다.
    • 출력 command는 OTO bootstrap 필수 인자를 포함한 한 줄 command로 검증되며, 기본 HTTPS 우선과 명시적 local HTTP 허용 flag가 분리되어 있다.
    • 검증 명령 go test -count=1 ./apps/edge/cmd/edge ./packages/go/config 통과, 임시 config CLI smoke의 config init -> agent register -> config check 통과.
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 2026-06-03 사용자 요청으로 모든 기능 Task 완료 상태를 확인하고 Milestone을 완료/archive 처리한다.

범위 제외

  • OTO bootstrap script 자체 구현
  • OTO release asset 빌드/업로드 자동화
  • checksum/signature 강제 검증
  • Control Plane 원격 발급 UI

작업 컨텍스트

  • 관련 경로: apps/edge/cmd/edge/main.go, packages/go/config, configs/edge.yaml, ../oto/assets/script/shell/oto_agent_bootstrap.sh
  • 표준선(선택): OTO bootstrap/register UX는 기존 iop-node bootstrap UX와 같은 인터페이스 형태를 우선하며, OTO 전용 값은 agent_kind, bootstrap script URL, release asset URL처럼 필요한 차이로 제한한다.
  • 표준선(선택): command 형식은 curl -fsSL "${OTO_BOOTSTRAP_URL}" | bash -s -- --edge-url "${EDGE_URL}" --agent-id "${AGENT_ID}" --enrollment-token "${ENROLLMENT_TOKEN}" --release-base-url "${OTO_RELEASE_BASE_URL}" --agent-alias "${AGENT_ALIAS}"를 기준으로 한다.
  • 표준선(선택): MVP에서는 one-time enrollment token을 사용하고 장기 credential 재발급은 후속으로 둔다.
  • 선행 작업: OTO Agent Registry 구현
  • 후속 작업: OTO Registration Online Smoke
  • 확인 결과: local smoke용 OTO bootstrap script URL과 release base URL은 기본값을 두지 않고, command flag 또는 bootstrap.* config로 명시 입력한다.