feat: report Helm release operation progress - #2927
feat: report Helm release operation progress#2927Mikhail Shirkov (shirkevich) wants to merge 2 commits into
Conversation
|
Tip Atmos Pro
No affected stacks workflow was detected for this pull request. |
Dependency Review✅ No vulnerabilities or license issues found.Scanned FilesNone |
|
CodeRabbit (@coderabbitai) review |
✅ Action performedReview finished.
|
📝 WalkthroughWalkthroughHelm apply and delete operations now report lifecycle progress through the Atmos UI. The implementation emits preparation, resolution, heartbeat, and terminal messages, supports dry runs, and includes tests and CLI documentation. ChangesHelm progress reporting
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant OperationExecutor
participant HelmClient
participant HelmOperationProgress
participant AtmosUI
OperationExecutor->>HelmOperationProgress: Start operation tracking
OperationExecutor->>HelmClient: Apply or delete release
HelmClient->>HelmOperationProgress: Report resolved lifecycle
HelmOperationProgress->>AtmosUI: Emit lifecycle and heartbeat messages
OperationExecutor->>HelmOperationProgress: Finish with operation error
HelmOperationProgress->>AtmosUI: Emit success or failure status
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@pkg/component/helm/executor.go`:
- Around line 236-243: Move the Helm progress lifecycle around
newHelmOperationProgress, Start, and Finish into the Kubernetes-specific branch
selected by deliverApply, so external targets do not emit native Helm progress
messages. Preserve summary merging and error propagation for all targets, and
add regression coverage for external-target delivery and target-selection
failure.
In `@pkg/component/helm/progress.go`:
- Around line 80-120: Rename helmOperationProgress methods Start, Resolved, and
Finish to private names, such as start, resolved, and finish, and update all
callers within package helm to use the renamed methods. Keep their existing
behavior unchanged and do not expose these lifecycle methods publicly.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 8f23facb-13ec-4e8c-93a5-1eb5b144da52
📒 Files selected for processing (7)
pkg/component/helm/chart.gopkg/component/helm/client.gopkg/component/helm/executor.gopkg/component/helm/progress.gopkg/component/helm/progress_test.gowebsite/docs/cli/commands/helm/helm-apply.mdxwebsite/docs/cli/commands/helm/helm-delete.mdx
What changed
Why
Native Helm uses the embedded Helm SDK rather than spawning the Helm CLI. The SDK action path does not produce Helm CLI progress output, so a healthy long-running install or upgrade can otherwise remain completely silent until it returns. That also makes a blocked release operation difficult to distinguish from a hung Atmos process.
These events use Atmos UI output instead of diagnostic logging, so they remain visible when logging is disabled and pass through the global masking layer. Hook container logs remain opt-in rather than being streamed automatically.
User impact
A release operation now gives immediate feedback, exposes the effective lifecycle policy, remains visibly alive during long waits, and identifies each component in bulk output. The output is stable line-oriented text suitable for both terminals and CI logs.
Stack
This PR is stacked on #2849 and should be reviewed after it.
Validation
go test ./pkg/component/helm -count=1(181 tests)go run . lint --changedgit diff --checkSummary by CodeRabbit
New Features
Documentation