Skip to content

Kubedog based tracking issue with atomic/rollback-on-failure helm flags #2448

@r9odt

Description

@r9odt

Operating system

Fedora Linux 43

Helmfile Version

1.4.0

Helm Version

v4.1.1

Bug description

When using a helmfile with the wait and atomic parameters set to true, tracking begins after the release installation completes. If created pods enter the Error or CrashLoopBackOff status during the installation, Helm aborts the installation after the configured timeout and tracking does not seem to start.

The helm documentation states that the wait flag is automatically set when using the --atomic or --rollback-on-failure flags.
--atomic if set, the installation process deletes the installation upon failure. The --wait flag will be set automatically if --atomic is used.
https://helm.sh/docs/v3/helm/helm_install

--rollback-on-failure if set, Helm will rollback (uninstall) the installation upon failure. The --wait flag will default to "watcher" if --rollback-on-failure is set.
https://helm.sh/docs/helm/helm_install/

When using atomic flags, I expected to be able to track the state of created Pods before Helm performed a rollback. This would allow to view deployment logs and make tracking more informative when errors occur in the application.

To clarify, if i don't specify the wait and atomic parameters in the helmfile, kubedog tracking works, but the release is updated and the new created Pod remains in the CrashLoopBackOff state.

Example helmfile.yaml

helmDefaults:
  createNamespace: false
  atomic: true
  wait: true
  historyMax: 1
  kubeContext: "{{ .StateValues.kubeContext }}"

Error message you've seen (if any)

EXIT STATUS
  1

STDERR:
  Flag --atomic has been deprecated, use --rollback-on-failure instead
  level=WARN msg="upgrade failed" name=myrelease error="resource Deployment/testns/myrelease-api not ready. status: InProgress, message: Pending termination: 1\ncontext deadline exceeded"
  Error: UPGRADE FAILED: release myrelease failed, and has been rolled back due to rollback-on-failure being set: resource Deployment/testns/myrelease-api not ready. status: InProgress, message: Pending termination: 1
  context deadline exceeded

Steps to reproduce

use atomic (optionally with wait) parameters in helmDefaults with true value

Working Helmfile Version

1.3.2 but it does not have the kubedog based tracker

Relevant discussion

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions