Add examples/ctrlplane: read-only Ctrlplane System → ConfigHub plan mapper - #146
Open
monadic wants to merge 1 commit into
Open
Add examples/ctrlplane: read-only Ctrlplane System → ConfigHub plan mapper#146monadic wants to merge 1 commit into
monadic wants to merge 1 commit into
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…apper examples/ctrlplane maps a Ctrlplane System bundle (System/Deployment/Environment/ Resource/JobAgent/Policy) onto a proposed ConfigHub governed app using the VARIANT model: the Deployment becomes a base/upstream Unit in an <app>-base space, and each Environment becomes a Space with a downstream Unit variant linked via --upstream-unit. Promotion maps to 'cub unit update <variant> --upgrade' (with a diff caveat for list/nested under-propagation). Read-only: emits an --explain plan, --explain-json View Packet, and reviewable --cub-commands; surfaces the structural seams (base manifest + inherited variants, upgrade-and-diff promotion, external verification, Ctrlplane-owned timing). Registered in scripts/verify.sh and listed in the top-level README. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
monadic
force-pushed
the
add-ctrlplane-on-confighub-example
branch
from
June 17, 2026 17:51
376c6e0 to
cf431ea
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A new top-level example,
examples/ctrlplane, that maps a Ctrlplane System bundle onto a proposed ConfigHub governed-app plan — read-only.Ctrlplane is a release-orchestration layer (decides when/where a release goes and what gates it passes, then dispatches to a Job Agent). It explicitly does not store config or apply manifests. This example reads a Ctrlplane declarative bundle and proposes the equivalent ConfigHub app using the variant model:
<app>-base)--upstream-unit)argocd→confighub-oci-argo)cub unit update <variant> --upgradeThe Deployment becomes a base/upstream Unit; each Environment is a downstream variant linked to it. Promotion is a governed
--upgrade(pull from upstream) — the ConfigHub-native parallel to Ctrlplane promoting a Version across environments. This preserves the promotion relationship that independent per-environment units would throw away.What it proves
You can turn a Ctrlplane "app" definition into a ConfigHub governed app — base + per-environment variants, targets, delivery strategy, approval gates — without touching ConfigHub or a cluster. It also surfaces the real seams where the two models diverge.
Read-only by default
./setup.sh --explain— human-readable plan./setup.sh --explain-json | jq— machine-readable View Packet ("mutates": false)./setup.sh --cub-commands— the reviewablecubcommands (base unit,--upstream-unitvariants,--upgradepromotion)./setup.sh --apply— gated; refuses to auto-create, prints plan + asks you to review/run by handSample bundle (
systems/ecommerce-system.yaml) yields 3 spaces (1 base + staging + production), 3 units (1 base + 2 upstream-linked variants), 3 targets (= Deployment×Env×Resource),confighub-oci-argostrategy, and the production approval gate.Honest seams (printed by the mapper)
cub unit update <variant> --upgrade— diff afterward;--upgradecan silently under-propagate list/nested fields when leaf vs base list shapes differ.Status
The mapping (
--explain,--explain-json,--cub-commands) is implemented and verified. The live create/apply path is not yet proven end-to-end against a ConfigHub space — that is the next step.Verification
cd ctrlplane && ./verify.sh→All checks passed../scripts/verify.sh→PASS: ctrlplane/All example checks passed.Conforms to
EXAMPLE_CONTRACT_STANDARD.md(README + AI_START_HERE + contracts.md +setup.sh --explain/--explain-json+ verify.sh), registered inscripts/verify.sh, and listed in the top-level README.Prereqs:
python3+PyYAML,jq.🤖 Generated with Claude Code