docs(p15): record G15b manifest test slice

This commit is contained in:
pingqiu
2026-05-03 08:51:00 -07:00
parent 646f8207c8
commit 7d2b4793c2
2 changed files with 96 additions and 2 deletions
@@ -0,0 +1,83 @@
# V3 Phase 15 G15b Manifest QA Test Instruction
**Date**: 2026-05-03
**Status**: manifest-layer QA for `p15-g15b/k8s-static-pv@62325c9`
**Scope**: Kubernetes static PV manifest shape only; no Kubernetes cluster required.
---
## Headline
At `seaweed_block@62325c9`, G15b-1 proves the V3 Kubernetes static PV deployment shape is pinned before cluster execution:
```text
CSIDriver attachRequired=true
-> controller uses external-attacher, not provisioner
-> static PV does not embed iSCSI/NVMe target identity
-> node plugin is privileged/hostNetwork with kubelet/dev/iscsi mounts
-> PV uses block.csi.seaweedfs.com + volumeHandle=v1
```
This is a manifest guard layer. It does not prove pod write/read; that belongs to the G15b Kubernetes lab run.
---
## Commands
From the code repo:
```powershell
cd C:\work\seaweed_block_g9c
git checkout p15-g15b/k8s-static-pv
go test ./cmd/blockcsi -run TestG15b_Manifest -count=1 -v
go test ./core/csi ./cmd/blockcsi ./core/host/volume ./core/host/master ./core/authority ./cmd/blockmaster ./cmd/blockvolume -count=1
```
Expected result:
- focused manifest tests: PASS
- 7-package CSI/product-loop regression: PASS
---
## Scenario Map
| Scenario | Backing test |
|---|---|
| CSIDriver requires attach so Kubernetes invokes `ControllerPublish`. | `cmd/blockcsi/g15b_manifest_test.go::TestG15b_Manifest_CSIDriverRequiresAttach` |
| Controller sidecar shape uses external-attacher and not external-provisioner. | `cmd/blockcsi/g15b_manifest_test.go::TestG15b_Manifest_ControllerUsesAttacherNotProvisioner` |
| Static PV close path does not embed `iscsiAddr`, `iqn`, `nqn`, epoch, or endpoint version. | `cmd/blockcsi/g15b_manifest_test.go::TestG15b_Manifest_StaticPVDoesNotEmbedTargetFacts` |
| Node plugin has the privileged Linux shape needed for `iscsiadm`, `/dev`, and kubelet bind mounts. | `cmd/blockcsi/g15b_manifest_test.go::TestG15b_Manifest_NodePluginPrivilegedShape` |
| Static PV uses the V3 CSI driver name and a volume handle, not an endpoint. | `cmd/blockcsi/g15b_manifest_test.go::TestG15b_Manifest_StaticPVUsesBlockCSIDriver` |
| Manifests do not carry authority-shaped fields. | `cmd/blockcsi/g15b_manifest_test.go::TestG15b_Manifest_NoAuthorityShapedFields` |
---
## Non-Claims
G15b-1 does not claim:
- Kubernetes pod starts successfully.
- kubelet calls `NodeStageVolume`.
- external-attacher reaches `ControllerPublishVolume`.
- real iSCSI login/mount happens under Kubernetes.
- pod write/read byte-equal.
- cleanup removes all iSCSI sessions.
- dynamic provisioning, snapshots, expansion, NVMe, failover under mount, multi-node RWO, or performance.
---
## Next Evidence Layer
G15b-2 should add the Kubernetes lab harness:
```text
build images
-> apply blockmaster/blockvolume/product-loop setup
-> apply CSI manifests
-> apply static PV/PVC/pod
-> pod checksum write/read
-> cleanup + no dangling iSCSI session
```
The G15b-1 manifest tests are the pre-flight guard for that run.
@@ -1,8 +1,8 @@
# V3 Phase 15 — G15b Kubernetes Static PV Mini-Plan
**Date**: 2026-05-03
**Status**: architect draft; follows G15a close on `seaweed_block@ac49adb`
**Expected branch**: continue from `p15-g15a/csi-static-mvp`, or branch `p15-g15b/k8s-static-pv` from `ac49adb`
**Status**: G15b-1 manifest skeleton + static guards implemented at `seaweed_block@62325c9`
**Branch**: `p15-g15b/k8s-static-pv` from `ac49adb`
**Goal**: prove a Kubernetes pod can consume a pre-provisioned V3 block volume through `cmd/blockcsi`, using real Kubernetes CSI control flow and real Linux iSCSI staging.
---
@@ -122,6 +122,8 @@ These tests are not a substitute for Kubernetes. They prevent the highest-risk c
### G15b-1 — K8s Manifest Skeleton + Static Guards
Status: **implemented** at `seaweed_block@62325c9`.
Code:
- Add V3 Kubernetes manifests, likely under:
@@ -149,6 +151,15 @@ Pass:
- All §4 manifest guards green.
- No product behavior change.
Verification:
```powershell
go test ./cmd/blockcsi -run TestG15b_Manifest -count=1 -v
go test ./core/csi ./cmd/blockcsi ./core/host/volume ./core/host/master ./core/authority ./cmd/blockmaster ./cmd/blockvolume -count=1
```
Result: PASS on `62325c9`.
### G15b-2 — K8s Lab Harness
Artifacts: