Last modified July 2, 2026

Configure Helm execution

As explained in the app platform overview, all managed apps are Helm charts underneath. It means that at the very bottom the platform must trigger Helm-related actions, like installation or upgrade, against the requested application. This process, mostly, can’t be influenced by a user as we try to tune it universally for all apps. Yet, we anticipate that apps not matching these universal rules may exist, hence we offer a way to tweak some Helm options.

There are several options currently supported for every Helm action. In the next sections, you see a list of possible customizations with code snippets to help you understand how to use them.

Deprecated: This page documents Helm execution options on the legacy App custom resource. Flux HelmRelease exposes a richer set of the same options under the same field names (.spec.install, .spec.upgrade, .spec.rollback), so most fields map one-to-one. See the HelmRelease equivalent section below.

HelmRelease equivalent

HelmRelease uses the same top-level field names as App CR for Helm action customization, plus a few more:

  • .spec.install: install-time options
  • .spec.upgrade: upgrade-time options
  • .spec.rollback: rollback-time options
  • .spec.uninstall: uninstall-time options (no App CR equivalent)
  • .spec.test: run helm test hooks (no App CR equivalent)
  • .spec.driftDetection: enforce or warn on manual changes to deployed resources (no App CR equivalent)

Each App CR field documented on this page has an equivalent HelmRelease field:

App CR fieldHelmRelease equivalent
.spec.install.skipCRDs.spec.install.crds: Skip
.spec.install.timeout.spec.install.timeout
.spec.upgrade.timeout.spec.upgrade.timeout
.spec.rollback.timeout.spec.rollback.timeout

A worked example using a few of the HelmRelease-specific options:

apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
  name: demo
  namespace: org-acmedev
spec:
  install:
    timeout: 10m
    crds: Skip
    remediation:
      retries: 3
  upgrade:
    timeout: 10m
    remediation:
      retries: 3
      remediateLastFailure: true
    cleanupOnFail: true
  rollback:
    timeout: 10m
    cleanupOnFail: true

For the full set of fields and their semantics, see the Flux HelmRelease reference.

The remainder of this page covers the App CR fields in detail.

Install

The installation options are exposed via the corresponding .spec.install field of the App resource.

SkipCRDs

If set, no custom resource definitions will be installed by Helm. By default, those are installed if not already present. Find the example below.

apiVersion: application.giantswarm.io/v1alpha1
kind: App
metadata:
  name: demo
spec:
  install:
    skipCRDs: true

Install timeout

Time to wait for any individual Kubernetes operation (like Jobs for hooks). If not set, the default timeout of 5 minutes is used.

apiVersion: application.giantswarm.io/v1alpha1
kind: App
metadata:
  name: demo
spec:
  install:
    timeout: 10m

Upgrade

The installation options are exposed via the corresponding .spec.upgrade field of the App resource.

Upgrade timeout

Time to wait for any individual Kubernetes operation (like Jobs for hooks). If not set, the default timeout of 5 minutes is used.

apiVersion: application.giantswarm.io/v1alpha1
kind: App
metadata:
  name: demo
spec:
  upgrade:
    timeout: 10m

Rollback

The installation options are exposed via the corresponding .spec.rollback field of the App resource.

Rollback timeout

Time to wait for any individual Kubernetes operation (like Jobs for hooks). If not set, the default timeout of 5 minutes is used.

apiVersion: application.giantswarm.io/v1alpha1
kind: App
metadata:
  name: demo
spec:
  rollback:
    timeout: 10m

Uninstall

The installation options are exposed via the corresponding .spec.uninstall field of the App resource.

Uninstall timeout

Time to wait for any individual Kubernetes operation (like Jobs for hooks). If not set, the default timeout of 5 minutes is used.

apiVersion: application.giantswarm.io/v1alpha1
kind: App
metadata:
  name: demo
spec:
  uninstall:
    timeout: 10m