7.6 KiB
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/nodeadapter로 흡수 - 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-agentrecord를 만들고, 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 값