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

7.6 KiB

Milestone: Agent Bootstrap과 OTO 등록

위치

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

목표

Edge가 specialized domain agent를 생성하고 bootstrap command를 발급해 대상 머신에서 agent 설치와 등록을 완료하는 enrollment 흐름을 설계한다. OTO는 build/deploy domain agent의 대표 후보로 둔다. 이 Milestone은 OTO 연동 전체 구현을 한 번에 담지 않고, iop2oto 브랜치에서 이어서 구현할 registry, bootstrap command, online smoke, message boundary Milestone의 계약 경계를 확정한다.

상태

[완료]

구현 잠금

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

범위

  • Edge agent registry를 generic node와 specialized domain agent를 함께 다룰 수 있는 모델로 확장하는 구현 Milestone 경계 정의
  • agent type별 bootstrap command 발급 표면 설계와 OTO 전용 command 구현 Milestone 분리
  • MVP enrollment token은 1회성 등록 토큰으로 두고, 등록 후 장기 credential 재발급은 후속 보안 강화로 분리
  • HTTP local/insecure bootstrap은 명시적 local/dev 모드에서만 허용하고, 운영 기본값은 HTTPS bootstrap/release URL로 둔다
  • OTO agent의 build run, cancel, status, capability, artifact, log event 메시지 경계를 후속 message boundary Milestone으로 분리
  • OTO가 확정한 Linux MVP bootstrap command, release asset, config path, background 실행 기준을 Edge bootstrap 발급 계약으로 수용
  • Edge가 OTO agent 생성, command 발급, registration accepted, 최초 heartbeat 기반 online 상태를 구분해 표현하는 기준 정리

기능

Epic: [agent-boundary] Agent Boundary and Enrollment Path

  • [direct-agent] OTO agent는 iop-node 하위 프로세스가 아니라 Edge에 직접 outbound 연결하는 specialized domain agent로 둔다.
  • [bootstrap-first] Agent를 설치할 수 있는 대상은 bootstrap/enrollment를 우선한다.
  • [bridge-split] Agent 설치가 어렵거나 일회성 유지보수 대상이면 remote terminal bridge 경로와 구분한다.

Epic: [bootstrap-command] Bootstrap Command Contract

  • [bootstrap-command] Edge가 OTO agent 생성과 bootstrap command 발급 상태를 표현하고 Linux 대상에서 바로 실행할 one-line bootstrap command를 발급하는 계약이 정의되어 있다.
  • [agent-record] Edge-side agent record가 agent_kind=oto-agent, agent id, alias, enrollment token, bootstrap 발급 상태를 소유하는 기준이 정의되어 있다.
  • [oto-contract] OTO의 bootstrap script 인자, release asset 이름, config path, background 실행 기준이 iop Edge 발급 계약에 반영되어 있고 OTO 로드맵 계약과 충돌하지 않는다.
  • [registration-state] bootstrap command 실행 후 agent config/service 등록과 Edge outbound enrollment 흐름이 문서화되고, bootstrap issued, registration accepted, first heartbeat received, online, failed 상태 기준이 구분되어 있다.
  • [insecure-policy] HTTP local/insecure bootstrap 모드는 명시 선택과 추가 검증 조건을 요구한다.
  • [milestone-split] registry 구현, bootstrap command 발급, online smoke, message boundary가 iop2oto Phase 안의 후속 Milestone으로 분리되어 있다.

Epic: [ownership-boundary] IOP and OTO Ownership

  • [ownership] OTO agent와 generic Node의 책임 경계가 registry와 protocol 수준에서 구분되고 iop와 OTO의 책임 경계가 문서화되어 있다.
  • [iop-ownership] iop는 Edge agent registry, bootstrap command 발급, credential, 보안 검증 기준을 소유한다.
  • [oto-ownership] OTO는 build/deploy domain agent의 설치 산출물, 설정 생성, YAML run/capability/event 의미를 소유하고, OTO의 Edge bootstrap 계약 문서는 이 Milestone 산출물을 참조해 재개 가능하다.

완료 리뷰

  • 상태: 승인됨
  • 요청일: 2026-06-03
  • 완료 근거: OTO direct agent 경계, bootstrap/enrollment 우선 경로, OTO bootstrap command/record/state 기준, insecure policy, iop/OTO ownership이 현재 Milestone 문서와 후속 구현 Milestone으로 정리되었다.
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 2026-06-03 사용자 요청으로 현재 마일스톤을 종료하고 archive 이동한다.

범위 제외

  • OTO 구현을 apps/node adapter로 흡수
  • Control Plane이 Node나 OTO agent를 직접 스케줄링
  • bootstrap 보안 검증을 생략한 insecure 기본값
  • OTO의 Linux bootstrap script 구현 자체
  • OTO의 YAML run/capability/artifact/log 메시지 전체 구현
  • Edge registry/API/DB schema의 전체 운영 영속화
  • OTO와 iop 양쪽 repo의 모든 구현을 같은 Milestone에서 완료 처리

작업 컨텍스트

  • 관련 경로: apps/edge, README.md, agent-test/local/testing-smoke.md, ../oto/agent-roadmap/phase/edge-direct-oto-agent/milestones/oto-agent-registration.md, ../oto/agent-roadmap/phase/message-based-build-agent/milestones/agent-message-protocol.md, ../oto/assets/script/shell/oto_agent_bootstrap.sh
  • 전환 상태: iop2oto 브랜치에서는 OTO 연동 작업을 이 Phase 아래에서 이어가며, OTO repo 로드맵에는 iop 구현 결과를 소비하는 후속 계약만 남긴다.
  • 표준선(선택): OTO agent는 iop-node 하위 프로세스가 아니라 Edge에 직접 outbound 연결하는 specialized domain agent로 둔다.
  • 표준선(선택): Edge는 oto-agent record를 만들고, agent id/alias/enrollment token/release base URL/bootstrap script URL을 포함한 one-line command를 발급한다.
  • 표준선(선택): enrollment_token은 MVP에서 1회성 등록 토큰으로 다루고, 장기 credential 재발급/rotation은 후속 보안 강화 Milestone 후보로 둔다.
  • 표준선(선택): OTO Linux MVP 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}"를 기준으로 한다.
  • 표준선(선택): OTO bootstrap 필수 인자는 --edge-url, --agent-id, --enrollment-token, --release-base-url이고, 선택 인자는 --agent-alias, --install-dir, --config-path, --workspace-root, --log-dir, --no-background다.
  • 표준선(선택): OTO Linux release asset은 uname -m 기준으로 oto-linux-x64.tar.gz 또는 oto-linux-arm64.tar.gz를 선택하며, archive 안에는 실행 파일 oto가 있어야 한다.
  • 표준선(선택): OTO MVP 기본 경로는 $HOME/.oto/bin, $HOME/.oto/agent/config.yaml, $HOME/.oto/workspace, $HOME/.oto/agent/log이고, background 실행은 사용자 권한 best-effort로 시작한다.
  • 표준선(선택): online 판정은 Edge registration accepted와 최초 heartbeat 도착을 모두 만족했을 때로 둔다.
  • 표준선(선택): OTO MVP 보안은 HTTPS bootstrap/release URL, token 재출력 금지, 설정 파일 권한 제한, 임시 파일 정리를 기본으로 두고 checksum/signature, Edge fingerprint pinning, credential rotation은 후속 강화로 둔다.
  • 전달 계약: iop는 OTO script 구현을 복제하지 않고, Edge가 발급하는 bootstrap command와 registry/credential/state 모델이 OTO 계약을 소비하도록 문서화한다.
  • 선행 작업: Edge-Node 실행 스켈레톤, Edge 입력 표면, Specialized Agent proto-socket 연결 기반
  • 후속 작업: OTO Agent Registry 구현, OTO Bootstrap Command 발급, OTO Registration Online Smoke, OTO Agent Message Boundary
  • 확인 필요: OTO release asset 실제 배포 URL과 iop local/dev smoke에서 사용할 포트/host 값