feat(platform-agent): dedicated molecule-platform-agent image build (Phase 3b) #30

Closed
devops-engineer wants to merge 1 commits from feat/platform-agent-image into main
Member

Phase 3b of the platform-agent RFC — the dedicated image that activates the feature.

What

  • images/platform-agent/Dockerfile — multi-stage: builds molecule-mcp-server (dist + prod node_modules), then FROM workspace-template-claude-code, pins Node 20 (slim base ships 18; the org MCP needs ≥20), and COPYs the MCP to /opt/molecule-mcp-server/dist/index.js — the exact path the merged Phase 2 config references (mcp_servers: [{name: platform, command: node, args: [/opt/molecule-mcp-server/dist/index.js]}]).
  • .github/workflows/publish-platform-agent-image.yml — mirrors the templates proven ECR publish (op-host [publish,release] runners, build→smoke→push, promote-pin). Adds cross-repo checkout of molecule-mcp-server + a Node20/baked-entry smoke.

Dependencies to go green (enumerated, not yet provisioned)

The publish only runs on push-to-main / manual dispatch. To publish+pin it needs these repo secrets on molecule-ci:

  • AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY (ECR push, acct 153263036946)
  • MCP_CHECKOUT_TOKEN (read token for cross-repo checkout of molecule-mcp-server)
  • CP_ADMIN_API_TOKEN / CP_ADMIN_API_TOKEN_STAGING (promote-pin)

And the promote-pin step needs the control-plane to accept template_name: platform-agent in runtime_image_pins — that is Phase 3c (pin consumption + the CP→tenant install call).

Verification

Dockerfile baked path + Node-20 pin verified against the merged Phase 2 config schema and RFC §5.7. Full build/push e2e runs once the secrets above are provisioned.

🤖 Generated with Claude Code

Phase 3b of the platform-agent RFC — the dedicated image that activates the feature. ## What - `images/platform-agent/Dockerfile` — multi-stage: builds `molecule-mcp-server` (dist + prod node_modules), then `FROM workspace-template-claude-code`, pins **Node 20** (slim base ships 18; the org MCP needs ≥20), and COPYs the MCP to **`/opt/molecule-mcp-server/dist/index.js`** — the exact path the merged Phase 2 config references (`mcp_servers: [{name: platform, command: node, args: [/opt/molecule-mcp-server/dist/index.js]}]`). - `.github/workflows/publish-platform-agent-image.yml` — mirrors the templates proven ECR publish (op-host `[publish,release]` runners, build→smoke→push, `promote-pin`). Adds cross-repo checkout of `molecule-mcp-server` + a Node20/baked-entry smoke. ## Dependencies to go green (enumerated, not yet provisioned) The publish only runs on push-to-main / manual dispatch. To publish+pin it needs these **repo secrets on molecule-ci**: - `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` (ECR push, acct 153263036946) - `MCP_CHECKOUT_TOKEN` (read token for cross-repo checkout of molecule-mcp-server) - `CP_ADMIN_API_TOKEN` / `CP_ADMIN_API_TOKEN_STAGING` (promote-pin) And the `promote-pin` step needs the **control-plane to accept `template_name: platform-agent`** in `runtime_image_pins` — that is Phase 3c (pin consumption + the CP→tenant install call). ## Verification Dockerfile baked path + Node-20 pin verified against the merged Phase 2 config schema and RFC §5.7. Full build/push e2e runs once the secrets above are provisioned. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
devops-engineer added 1 commit 2026-06-06 22:53:34 +00:00
feat(platform-agent): dedicated molecule-platform-agent image build (Phase 3b)
CI / Workflow YAML lint (pull_request) Successful in 3s
CI / Python script lint (pull_request) Successful in 27s
CI / Secrets scan (pull_request) Successful in 1m27s
3b69eba39b
RFC molecule-core docs/design/rfc-platform-agent.md §5.7. Multi-stage image
FROM workspace-template-claude-code that bakes molecule-mcp-server at
/opt/molecule-mcp-server/dist/index.js — the exact path the platform agent's
config.yaml mcp_servers entry references (template _apply_extra_mcp_servers,
PR #91) — and pins Node 20 (slim base ships 18; the org MCP needs >=20). Keeps
the org-admin MCP out of ordinary workspace images.

publish-platform-agent-image.yml mirrors the template's proven ECR publish
(op-host [publish,release] runners, build->smoke->push, promote-pin), adding a
cross-repo checkout of molecule-mcp-server and a Node20+baked-entry smoke.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author
Member

Closing — re-homed into the workspace-template-claude-code repos existing publish pipeline (reuses its ECR creds + publish runners + pin mechanism, no new secret/admin), and the MCP is now pulled from the org Gitea npm registry (anonymous) instead of a cross-repo checkout. Supersedes this PR.

Closing — re-homed into the workspace-template-claude-code repos existing publish pipeline (reuses its ECR creds + publish runners + pin mechanism, no new secret/admin), and the MCP is now pulled from the org Gitea npm registry (anonymous) instead of a cross-repo checkout. Supersedes this PR.
devops-engineer closed this pull request 2026-06-07 00:48:15 +00:00
Some checks are pending
CI / Workflow YAML lint (pull_request) Successful in 3s
CI / Python script lint (pull_request) Successful in 27s
CI / Secrets scan (pull_request) Successful in 1m27s

Pull request closed

Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-ci#30