exp(M0): OCM falsification PASS — adopt OCM, delete bespoke-transport scope - #13
Closed
gnanirahulnutakki wants to merge 1 commit into
Closed
exp(M0): OCM falsification PASS — adopt OCM, delete bespoke-transport scope#13gnanirahulnutakki wants to merge 1 commit into
gnanirahulnutakki wants to merge 1 commit into
Conversation
Milestone-0 deciding experiment (falsification-first): a central OCM hub reached an in-cluster service on a managed spoke using a scoped managed-serviceaccount token, over the cluster-proxy reverse tunnel, with the spoke connecting outbound-only and the hub holding no admin kubeconfig. - The scoped token could read the in-scope service/pods but was denied cluster-wide secrets and nodes (403) -> reach and privilege decoupled. - conntrack on the spoke: every hub-directed flow originates on the spoke to hub:6443; zero hub->spoke-initiated flows (outbound-only confirmed). - Verified on kind (k8s v1.34.0), clusteradm/OCM v1.3.1, cluster-proxy 0.10.0, managed-serviceaccount 0.10.0. ~15 min end-to-end, well inside the <=1 day gate. Consequence: the "build the transport/agent" scope is deleted. Adopt OCM; build only the federation/governance layer above it. Proceed to Phase 1. Adds docs/experiments/M0-ocm-falsification.md (runbook + verbatim evidence) and flips ADR-0001 status to Accepted with the evidence filled in. Closes #2, #3, #4, #5, #6.
Member
Author
|
Superseded by PR #73, which implemented and merged the final two-spoke M0 falsification into dev at 017eec0. PR #73 includes the accepted ADR, reproducible fail-closed runner, one-hub/two-spoke evidence, active network-denial proof, least-privilege service-account validation, redacted capture, and signed GSTACK journal. Its PR CI run 29172067820 and post-merge dev CI run 29172228828 are green. This older PR targets the obsolete docs/initial-plan branch and covers only the earlier one-spoke experiment, so it must not be merged. |
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.
Milestone-0 — the OCM falsification test → ✅ PASS
The falsification-first experiment that gates ADR-0001. Run before any product code, exactly as ROADMAP Milestone-0 specifies.
Verdict
A central OCM hub reached an in-cluster service (
nginx.sith-demo) on a managed spoke using a scopedmanaged-serviceaccounttoken, over thecluster-proxyreverse (konnectivity) tunnel, with the spoke connecting outbound-only and the hub holding no admin kubeconfig.➡️ The "build the transport/agent" scope is deleted. Adopt OCM; build only the federation/governance layer above it. ADR-0001 → Accepted. Proceed to Phase 1.
The three claims, each with a negative control that would have falsified it
secretsandnodes(403) while in-scope service/pod reads succeeded. Reach and privilege are decoupled; the hub holds only the scoped token secret, no kubeconfig.hub:6443, and zero hub→spoke-initiated flows. The spoke needs no inbound port.Environment / pins
kind (k8s v1.34.0) ·
clusteradm/OCM core v1.3.1 ·cluster-proxy0.10.0 ·managed-serviceaccount0.10.0 (matches the ADR pin). ~15 min end-to-end — well inside the≤ ~1 daygate. System disk kept safe (182 GiB free after). Clusters torn down at the end.Changes (docs only — no product code)
docs/experiments/M0-ocm-falsification.md— runbook + verbatim command output for every claim, topology, caveats, resource footprint.docs/adr/0001-…— status Proposed → Accepted; falsification-evidence section filled in.Honesty note
Found + worked around one upstream
cluster-proxy0.10.0 chart packaging skew (template sets aManagedProxyConfigurationfield its bundled CRD doesn't declare). Cosmetic, unrelated to transport; one-line CRD workaround documented. Worth filing upstream.Based on
docs/initial-plan(PR #1) so the diff is only the two M0 files. Addresses #2 #3 #4 #5 #6.