Skip to content

fix(rustfs): keep stable definition identity for e2e - #3289

Draft
weicao wants to merge 10 commits into
jessica/rustfs-remove-dp-runtime-baselinefrom
jessica/rustfs-versioned-cmpd-task61
Draft

fix(rustfs): keep stable definition identity for e2e#3289
weicao wants to merge 10 commits into
jessica/rustfs-remove-dp-runtime-baselinefrom
jessica/rustfs-versioned-cmpd-task61

Conversation

@weicao

@weicao weicao commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Problem

A retained test environment attempted to install a chart that changed the immutable spec.serviceVersion of the existing ComponentDefinition/rustfs-0.1.0 from 1.0.0-beta.10 to 1.0.0-beta.8. The controller rejected the in-place change and the product test never started.

Creating a new ComponentDefinition name for every E2E run is also the wrong lifecycle: ordinary tests should safely uninstall the previous release, wait for the release-owned objects to become absent, and then reinstall the current exact chart.

Change

  • keep the stable ComponentDefinition identity rustfs-0.1.0 even though the chart package advances to 0.1.1
  • restore the RustFS image and service version to 1.0.0-beta.10
  • make ComponentVersion select only the stable definition
  • pin the cluster chart to rustfs-0.1.0 and 1.0.0-beta.10
  • keep extra.keepResource=false, so ordinary Helm uninstall owns deletion; add no migration/retention hook and no immutable-check bypass
  • add a Helm-rendered stable-identity contract test for both install and --is-upgrade, using Hash-only YAML streams

Verification

  • stable install+upgrade contract, Bash 3 and Bash 5: 1 example, 0 failures each
  • reviewer pre-upgrade-hook mutant, Bash 3 and Bash 5: 1 expected failure each with ordinary upgrade must not add migration hooks
  • full RustFS ShellSpec, Bash 3: 8 examples, 0 failures; existing Bash 4-only startup cases skipped
  • full RustFS ShellSpec, Bash 5: 55 examples, 0 failures
  • addon and cluster dependency build, Helm 4.1.4 lint, and render: PASS
  • rendered identity/service contract: PASS
  • ShellCheck severity=error and git diff --check: PASS

Boundary

This proves source/render behavior only. Test owns the safe environment reset: verify there is no live RustFS Cluster reference, ordinary Helm uninstall, bounded wait for the release and old install objects to become absent, then fresh install/readiness. A live reference must fail closed or use a clean environment; no force deletion. No runtime/product PASS is claimed here.

This is a stacked PR; its base is jessica/rustfs-remove-dp-runtime-baseline at 956dc71742cefae1f84b893201b4431c7c5d2aae.

@codecov-commenter

codecov-commenter commented Aug 2, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 58 lines in your changes missing coverage. Please review.
✅ Project coverage is 0.00%. Comparing base (956dc71) to head (076ab9c).

Files with missing lines Patch % Lines
...scripts-ut-spec/stable_componentdefinition_spec.sh 0.00% 58 Missing ⚠️
Additional details and impacted files
@@                            Coverage Diff                            @@
##           jessica/rustfs-remove-dp-runtime-baseline   #3289   +/-   ##
=========================================================================
  Coverage                                       0.00%   0.00%           
=========================================================================
  Files                                            162     163    +1     
  Lines                                          24748   24806   +58     
=========================================================================
- Misses                                         24748   24806   +58     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@weicao weicao changed the title fix(rustfs): version ComponentDefinition identity fix(rustfs): keep stable definition identity for e2e Aug 2, 2026
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.

2 participants