test(chart): lock fake PV host access contract#7
Conversation
7141a71 to
d7255ec
Compare
|
Focused review: no code blocker on exact head d7255ec, stacked on exact PR #4 head 4b40918.\n\nVerified independently:\n- PR #7 is one test-only commit (2 files, +168/-21); parent equals the stated PR #4 head.\n- b98, PR #4, and PR #7 share chart/templates tree c87525f495ae20c351af3623669b7c92791503bb and chart/values.yaml blob e03596b1ebf459bcfc3af075c3559f5b35aea45a.\n- Source handoff performs host-PV Get then Patch; SyncController supplies HostManager.GetClient(), whose cache bootstrap accounts for List/Watch. The V13 runtime packet independently observed the missing Watch/Patch permissions.\n- Focused Helm render for PVC=true, PV=false, snapshots=false, clusterRole=auto produces exactly persistentvolumes [get,list,watch,patch]. PVC/PV/snapshot all disabled produces no ClusterRole; full PV sync retains lifecycle verbs.\n- Base RED: helm unittest on 4b40918 reports 21 failures / 194 pass from the stale assertion and 20 stale counts. Head GREEN: 217/217.\n- go test -count=1 ./pkg/controllers/resources/... PASS; focused recorder PASS; go test -race -count=1 ./pkg/controllers/resources/persistentvolumeclaims PASS; helm lint PASS; git diff --check PASS.\n\nScope boundary: this PR locks an already-present production chart contract; it does not repair an old deployed 0.34.0 chart by itself. Fresh validation must package the reviewed chart source with b98 exact image/values, prove rendered/live RBAC+config+image identity, then run a fresh create-only gate. No V13 reuse.\n\nGitHub would not accept an APPROVE review because the authenticated account is the PR author, so this is recorded as a focused-review comment; an independent account is still required if branch protection requires formal approval. |
|
Fresh focused review: NO BLOCKER on the new exact head Independent checks:
The prior |
Problem
The b98 syncer image was deployed with an older 0.34.0 chart. In fake-PV mode (
persistentVolumeClaims.enabled=true,persistentVolumes.enabled=false), the custom external-populator handoff reads and patches host PV claimRefs, but the old rendered ClusterRole only grantedget/list.Commit
1b97603a7already added the matching chart rule and auto-ClusterRole condition, but it did not update or add chart tests. The pre-existing test suite therefore had 20 stale exact rule counts and a stale assertion that disabling snapshot rules produces no ClusterRole.Contract
Fake-PV external-populator handoff requires:
getandpatchlistandwatchcreate/delete/update, which remain specific to full PV syncThis is expected fake-PV external-populator behavior, not an accidentally enabled full PV syncer. The runtime still registers the fake-PV syncer; only the PVC handoff accesses the host PV.
Declarative values:
The matching chart renders a
persistentvolumesrule with exactlyget/list/watch/patchfor this path. Volume-snapshot RBAC remains independently controlled byrbac.enableVolumeSnapshotRules.Changes
GetandPatchafter the current terminal-populator gate is satisfied.Source identity
b98b1ae5a603fa504daf1e745d65784c5a0be0ea4b4091829b8f992b37e96356535c375441246ddfd7255ec022952ab13a874ff928d2e32e6cfb50e2chart/templatestree is identical at b98, current PR fix(pvc): complete restore populate handoff #4, and this PR:c87525f495ae20c351af3623669b7c92791503bbchart/values.yamlblob is identical at all three:e03596b1ebf459bcfc3af075c3559f5b35aea45aVerification
helm unittest chart: 217/217 PASShelm lint chart: PASSgo test -count=1 ./pkg/controllers/resources/...: PASSgit diff --check: PASSpersistentvolumes: [get,list,watch,patch]This PR is stacked on the current PR #4 head and contains tests only. It does not authorize a live rollout; fresh-vcluster identity/readback remains a separate gate.