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: runhelm testhooks (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 field | HelmRelease 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
Need help, got feedback?
We listen to your Slack support channel. You can also reach us at support@giantswarm.io. And of course, we welcome your pull requests!