Skip to content

Bound CSI materialization and preserve lease ownership - #67

Merged
gspark-etri merged 3 commits into
mainfrom
improve/verified-ecosystem-20261023
Oct 23, 2026
Merged

gspark-etri merged 3 commits into
mainfrom
improve/verified-ecosystem-20261023

Conversation

@gspark-etri

@gspark-etri gspark-etri commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

A failed CSI volume-record write could leave an unused artifact leased forever, and concurrent distinct artifacts could multiply the node's large pull working sets. Roll back newly created leases on ordinary acquisition failure, reject rebinding published volume IDs, and bound active distinct pulls with onggi csi --pulls (default 1), preserving same-digest retries.

Update English/Korean READMEs and component metadata to distinguish P2 artifact delivery from planned compile/prefetch controllers and device-memory delta loading.

Validation:

  • Go 1.24.13 vet and full race suite with local VersityGW S3: 113 cases passed with no skipped test cases, before adding the opt-in mount test. CLI build and S3 base/delta restores were byte-identical.
  • Added an opt-in Linux mount integration test. In an isolated Kubernetes Pod with mount capability, ONGGI_TEST_MOUNTS=1 go test -race ./pkg/csi -count=1 -v passed all 22 cases with no skips.
  • Real mounts verified concurrent publish deduplication, two leases, inode/content identity, readonly/nosuid/nodev flags, EROFS writes, retry behavior, eviction protection, and final mount/artifact/lease cleanup.
  • Explicit opt-in without CAP_SYS_ADMIN failed as required, instead of silently skipping. Test Pod and namespace were deleted.
  • Independent review completed; current CI passed Go and both VersityGW/SeaweedFS S3 jobs.

See docs/validation-2026-10-23.md. The live test invokes the CSI node service directly in a container; kubelet registration, host mount propagation, production rollout, and NPU-memory updates remain untested. Crash-orphan lease reconciliation remains conservative.

@gspark-etri
gspark-etri merged commit 05c9760 into main Oct 23, 2026
3 checks passed
@gspark-etri
gspark-etri deleted the improve/verified-ecosystem-20261023 branch October 23, 2026 03:51
gspark-etri added a commit to ai-computing/ai-rm that referenced this pull request Oct 23, 2026
JSON fallback responses could fabricate zero TPOT and pass SLO checks
without timing evidence, and slow response drips or multiple connection
addresses could exceed the intended timeout. Preserve unknown/invalid
timing, reject contradictory zero counts, and share one I/O deadline
across connection attempts and streaming/JSON responses.

Chart-backed components now stop before generic kubectl mutation and
print a Helm command. Controller apply mode grants namespace-scoped
Deployment get/list/patch permissions, including legacy --apply values;
operational flag abbreviations are rejected. Live API validation exposed
kubectl patch's prerequisite GET, which is now covered by chart
regressions. Helm setup precedes tools tests in CI so RBAC regressions
run.

Update English/Korean READMEs, component/status docs and the Onggi pin
from P0 to reviewed P2 commit d0b16db. **Depends on
ai-computing/onggi#67; merge that first.** Other ecosystem fixes remain
separate: ai-computing/hetero-llm-d#12 and
ai-computing/hetero-npu-p2p#10. Their hub pins are unchanged.

Validation:
- Original full local set: 222 tests passed with explicit scratch
imports and real Helm. After the live RBAC fix, all 124 tools/controller
tests passed; benchmark code was unchanged.
- Full umbrella chart strict lint and apply-mode templates passed for
default/sim/example values. Independent review's additional benchmark
findings were fixed and re-reviewed.
- Real Kubernetes/KEDA 2.19.0 API: rendered Role permissions allowed
own-namespace list/patch, denied cross-namespace mutation and deletion,
and revoked patch after Role removal.
- A successful Deployment patch followed by an intentional KEDA HTTP 403
produced a fresh plan containing only the unfinished ScaledObject. Retry
changed maxReplicaCount 4→2, preserved the Deployment generation, and
left the next plan empty. The fixture was paused with zero Deployment
replicas; its namespace was deleted.
- Current GitHub CI passed benchmark/controller packages, chart, image,
documentation, sensitive-data scan, and kind simulation end to end.

Full commands, sanitized API evidence, and boundaries:
docs/superpowers/validation-2026-10-23.md and
docs/superpowers/artifacts/controlplane-2026-10-23.json.

No production rollout or actual NPU-serving benchmark performed. OS DNS
remains outside socket cancellation; live TLS/proxy paths were not
exercised.
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