diff --git a/agent-ops/roadmap/ROADMAP.md b/agent-ops/roadmap/ROADMAP.md index 0f0c3ea..174ef3c 100644 --- a/agent-ops/roadmap/ROADMAP.md +++ b/agent-ops/roadmap/ROADMAP.md @@ -30,7 +30,7 @@ RAG, context 구성/압축, web search, MCP 정책, tool policy, output validati - [원격 터미널 브리지 POC](milestones/remote-terminal-bridge-poc.md) - 상태: 계획; 목표: Agent를 설치하기 어려운 host/device를 위해 Edge broker와 Node terminal transport 기반 원격 터미널 브리지 POC를 만든다. - [Specialized Agent proto-socket 연결 기반](milestones/specialized-agent-proto-socket-foundation.md) - 상태: 진행 중; 목표: OTO의 node-compatible proto-socket registration smoke를 바탕으로 iop Edge의 specialized agent kind, registry/config, message boundary, reconnect 정책을 정리한다. -- [Agent Bootstrap과 OTO 등록](milestones/agent-bootstrap-oto-enrollment.md) - 상태: 계획; 목표: specialized domain agent의 bootstrap command 발급, 설치, 등록, 장기 credential 흐름을 설계한다. +- [Agent Bootstrap과 OTO 등록](milestones/agent-bootstrap-oto-enrollment.md) - 상태: 진행 중; 목표: specialized domain agent의 bootstrap command 발급, 설치, 등록, 장기 credential 흐름을 설계한다. ### 서빙 라우팅과 최적화 기반 diff --git a/agent-ops/roadmap/current.md b/agent-ops/roadmap/current.md index c09be10..9c1c510 100644 --- a/agent-ops/roadmap/current.md +++ b/agent-ops/roadmap/current.md @@ -4,6 +4,7 @@ - 원격 터미널 브리지 POC: agent-ops/roadmap/milestones/remote-terminal-bridge-poc.md - Specialized Agent proto-socket 연결 기반: agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md +- Agent Bootstrap과 OTO 등록: agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md ## 선택 규칙 diff --git a/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md b/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md index b5c4b3a..6612094 100644 --- a/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md +++ b/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md @@ -11,15 +11,14 @@ Automation Runtime과 Bridge 확장 ## 상태 -계획 +진행 중 ## 구현 잠금 - 상태: 잠금 - 결정 필요: 아래 체크리스트 - - [ ] bootstrap command UX를 어떤 사용 흐름으로 둘지 결정한다. - - [ ] one-time token, 장기 credential, Edge identity 검증의 최소 보안 기준을 결정한다. - - [ ] OTO agent bootstrap 범위를 설치/service 등록까지만 둘지, 초기 capability/run 준비까지 포함할지 결정한다. + - [ ] iop MVP에서 `enrollment_token`을 1회성 토큰으로만 볼지, 등록 후 장기 credential 재발급까지 같은 Milestone에 포함할지 결정한다. + - [ ] HTTP local/insecure bootstrap 모드를 MVP에서 허용할지, 허용한다면 Edge fingerprint/public key pinning과 checksum/signature 중 무엇을 필수 조건으로 둘지 결정한다. ## 범위 @@ -28,12 +27,18 @@ Automation Runtime과 Bridge 확장 - one-time bootstrap token, Edge fingerprint/public key pinning, checksum/signature 검증 계약 - 등록 후 장기 credential 재발급 흐름 - OTO agent의 build run, cancel, status, capability, artifact, log event 메시지 경계 +- OTO가 확정한 Linux MVP bootstrap command, release asset, config path, background 실행 기준을 Edge bootstrap 발급 계약으로 수용 +- Edge가 OTO agent 생성, command 발급, registration accepted, 최초 heartbeat 기반 online 상태를 구분해 표현하는 기준 정리 ## 필수 기능 - [ ] [direct-agent] OTO agent는 `iop-node` 하위 프로세스가 아니라 Edge에 직접 outbound 연결하는 specialized domain agent로 둔다. - [ ] [bootstrap-first] Agent를 설치할 수 있는 대상은 bootstrap/enrollment를 우선한다. - [ ] [bridge-split] Agent 설치가 어렵거나 일회성 유지보수 대상이면 remote terminal bridge 경로와 구분한다. +- [ ] [bootstrap-command] Edge가 OTO agent 생성 후 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 발급 계약에 반영되어 있다. +- [ ] [registration-state] Edge 등록 accepted와 최초 heartbeat 도착을 online 판정으로 분리하고, bootstrap issued/registered/online/failure 상태 기준이 정의되어 있다. - [ ] [insecure-policy] HTTP local/insecure bootstrap 모드는 명시 선택과 추가 검증 조건을 요구한다. - [ ] [ownership] iop와 OTO의 책임 경계가 문서화되어 있다. - [ ] [iop-ownership] iop는 Edge agent registry, bootstrap command 발급, credential, 보안 검증 기준을 소유한다. @@ -44,6 +49,8 @@ Automation Runtime과 Bridge 확장 - [ ] Edge가 agent 생성과 bootstrap command 발급 상태를 표현할 수 있다. - [ ] bootstrap command 실행 후 agent config/service 등록과 Edge outbound enrollment 흐름이 문서화된다. - [ ] OTO agent와 generic Node의 책임 경계가 registry와 protocol 수준에서 구분된다. +- [ ] Edge가 발급하는 OTO bootstrap command의 필수/선택 인자와 OTO release asset 선택 규칙이 OTO 로드맵 계약과 충돌하지 않는다. +- [ ] Edge-side 상태 모델에서 `bootstrap issued`, `registration accepted`, `first heartbeat received`, `online`, `failed`가 구분된다. - [ ] OTO의 Edge bootstrap 계약 문서가 이 Milestone의 산출물을 참조해 재개 가능한 상태가 된다. ## 범위 제외 @@ -51,11 +58,21 @@ Automation Runtime과 Bridge 확장 - OTO 구현을 `apps/node` adapter로 흡수 - Control Plane이 Node나 OTO agent를 직접 스케줄링 - bootstrap 보안 검증을 생략한 insecure 기본값 +- OTO의 Linux bootstrap script 구현 자체 +- OTO의 YAML run/capability/artifact/log 메시지 전체 구현 ## 작업 컨텍스트 -- 관련 경로: `apps/edge`, `docs/deploy-dev.md`, `docs/architecture.md`, `../oto/agent-ops/roadmap/milestones/edge-bootstrap-contract.md` +- 관련 경로: `apps/edge`, `docs/deploy-dev.md`, `docs/architecture.md`, `../oto/agent-ops/roadmap/milestones/edge-bootstrap-contract.md`, `../oto/agent-ops/roadmap/milestones/oto-agent-registration.md`, `../oto/assets/script/shell/oto_agent_bootstrap.sh` - 표준선(선택): 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를 발급한다. +- 표준선(선택): 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 Edge bootstrap 계약, agent 메시지 프로토콜 -- 확인 필요: bootstrap command 사용자 흐름, credential 보안 모드, OTO 초기화 범위 +- 후속 작업: OTO `oto-agent` 등록 흐름, agent 메시지 프로토콜, OTO YAML run/capability/event 메시지 경계 +- 확인 필요: enrollment token의 만료/재사용/장기 credential 전환 정책, local/insecure bootstrap 허용 여부와 추가 검증 조건