Skip to content

feat(integration): MPP OpenShift end-to-end integration#1083

Merged
markturansky merged 7 commits intoalphafrom
feat/integration
Mar 28, 2026
Merged

feat(integration): MPP OpenShift end-to-end integration#1083
markturansky merged 7 commits intoalphafrom
feat/integration

Conversation

@markturansky
Copy link
Copy Markdown
Contributor

Summary

  • Introduces end-to-end MPP OpenShift integration: ambient-api-server + ambient-control-plane (gRPC fan-out multiplexer), SDK (Go/TS/Python), CLI, runner, MCP server, and frontend changes
  • Adds deployment manifests: base CP service, RBAC triad, mpp-openshift overlay, openshift-dev overlay, production image entries
  • Adds spec/guide/context documentation system (They Write The Right Stuff process model) and Claude skills docs for api-server and gRPC dev

Test plan

  • acpctl session create + acpctl session messages -f against MPP integration environment
  • acpctl session events <id> streams AG-UI events via gRPC fan-out
  • kustomize build components/manifests/overlays/mpp-openshift/ renders cleanly
  • kustomize build components/manifests/overlays/openshift-dev/ renders cleanly
  • Runner tests: cd components/runners/ambient-runner && python -m pytest tests/
  • CLI tests: cd components/ambient-cli && make test

🤖 Generated with Claude Code

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 28, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 8ed8b642-7e09-477a-801f-d1e260d7906d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/integration

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Ambient Code Bot and others added 3 commits March 28, 2026 13:22
- SDK (Go/Python/TS): agents, inbox, project-agents, session messages, roles, kube fields
- API server: session messages gRPC, agent/inbox plugins, openshift-dev env, RBAC
- Control plane: Go K8s reconciler, gRPC watcher, MPP namespace abstraction, OIDC auth
- Runner: gRPC transport bridge, SSE events tap, plain-text assistant payload, platform auth
- CLI: acpctl session commands — messages (HTTP long-poll), send --follow, events, TUI
- MCP: ambient-mcp server with 16 tools for sessions, agents, projects, watch
- Frontend: session phase status colors

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Introduces the They Write The Right Stuff process model:
- docs/internal/design/README.md — thesis: bugs in code = bugs in process
- ambient-model.guide.md — iterative guide (no run logs; corrected in-place)
- All *.spec.md, *.guide.md design documents
- .claude/context/*-development.md — expanded per-component how-to guides
- operator-development.md — new; covers kube_reconciler, ensure* pattern, env assembly
- Makefile: add CONTROL_PLANE_IMAGE to push-all loop

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…kills docs

Introduces ambient-control-plane as a first-class base resource across all
deployment targets. Adds MPP OpenShift and openshift-dev overlays. Adds
Claude skills docs for api-server and gRPC dev context.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Registers ambient-mcp (vteam_mcp) alongside ambient-control-plane in
components-build-deploy and prod-release-deploy pipelines: path filters,
build matrix, image-tags output, kustomize set-image lines, DEPLOY_MAP,
for-loop, and workflow_dispatch descriptions. Also adds vteam_mcp to
the base kustomization image list.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Ambient Code Bot and others added 3 commits March 28, 2026 17:19
- Build workflow pushes all 7 component images tagged pr-<N>-amd64 to quay on every PR
- provision.sh creates/destroys TenantNamespace CRs on ambient-code--config; capacity-gated at 5 concurrent instances
- install.sh deploys production manifests with PR image tags using ArgoCD SA token; handles MPP restricted environment constraints (Route labels, PVC annotations, ClusterRoleBinding subject patching)
- pr-e2e-openshift.yml workflow: provision → install → e2e → teardown on build completion
- pr-namespace-cleanup.yml: safety-net teardown on PR close
- Skills: ambient-pr-test (full PR test workflow) and ambient (install on any OpenShift namespace)
- Validates required secrets before install; documents MPP resource inventory and constraints
- Route admission webhook fix: add paas.redhat.com/appcode label via kustomize filter

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…m file mount

- Add _read_current_token() that prefers /var/run/secrets/ambient/bot-token
  file mount over BOT_TOKEN env var (env var is baked at pod start; file is
  rotated by the kubelet as tokens expire)
- Add AmbientGRPCClient.reconnect() to close and rebuild channel with fresh token
- SessionMessagesAPI.push() retries once on UNAUTHENTICATED: reconnects and
  swaps stubs before the second attempt, recovering mid-session token expiry

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@markturansky
Copy link
Copy Markdown
Contributor Author

Good stake-in-the-ground for alpha branch. This branch allows Namespace-per-PR tests in MPP.

@markturansky markturansky merged commit 936ea12 into alpha Mar 28, 2026
9 of 14 checks passed
@markturansky markturansky deleted the feat/integration branch March 28, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant