Skip to content

fix: reconcile owned CNI configurations across upgrades - #27

Merged
chen21019 merged 3 commits into
mainfrom
fix/cni-config-upgrade-reconciliation
Oct 7, 2026
Merged

chen21019 merged 3 commits into
mainfrom
fix/cni-config-upgrade-reconciliation

Conversation

@chen21019

Copy link
Copy Markdown

Root cause

IPsec Metadata renamed its CNI config, but the shared volume retained the previous active file. The CNI loader executed both and the historical wrapper still required Docker CLI.

Change

Validate and serialize desired files before writes; install each as an atomic mode-0600 regular file; stage managed.d before replacement; retire only an unrequested config matching the exact known platform filename/name/driver/IPAM contract. Preserve its bytes in a non-active recoverable backup. Reconcile the reverse rollback transition as well. Preserve foreign files and fail explicitly on ambiguous ownership, conflicting backups, symlinks or unsafe paths. Keep CNI data plane and firewall backend ownership unchanged.

Validation

Existing Windows Go 1.26.6 focused tests: 23 top-level tests; 29 leaf PASS, 7 symlink-privilege SKIP, 0 failure. Formatting and diff checks passed. Required Linux Go 1.27 race/build/security CI must pass before merge/release. Actual Catalog upgrade lifecycle verification follows formal publication; no runtime patch.

@chen21019
chen21019 requested a review from a team as a code owner October 7, 2026 02:33
@chen21019
chen21019 enabled auto-merge (squash) October 7, 2026 02:43
@chen21019
chen21019 merged commit 7b0920a into main Oct 7, 2026
5 checks passed
@chen21019
chen21019 deleted the fix/cni-config-upgrade-reconciliation branch October 7, 2026 02:44
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