Preset Overrides¶
For cluster-specific manual app assignment via hydra.yaml, see Cluster Overrides.
Customizing preset behavior through global.hydra.presets in values.
Override Structure¶
global:
hydra:
presets:
<preset-id>:
enabled: true|false|null
activates:
- "<other-preset>"
- "!<excluded-preset>"
- preset: "<other-preset>"
exclude: false
kubernetesMinorMin: <int>
kubernetesMinorMax: <int>
predicates:
<group-name>:
enabled: true|false|null
ids:
- '<resource-id>'
cel:
- cel: '<CEL expression>'
optional: true|false
kubernetesMinorMin: <int>
kubernetesMinorMax: <int>
Enable/Disable a Preset¶
true— Force enable regardless ofdefaultEnabledfalse— Force disable regardless ofdefaultEnabledand block activation chains from enabling itnull(or omitted) — Use the preset'sdefaultEnabled
Add Custom Predicates¶
Add extra resources that the builtin preset doesn't cover:
presets:
talos:
enabled: true
predicates:
custom-daemonset:
ids:
- 'apps/v1/DaemonSet/kube-system/talos-custom-agent'
custom-pods:
cel:
- cel: 'gvk == "v1/Pod" && ns == "kube-system" && name.startsWith("talos-")'
optional: true
Override predicates are merged with builtin predicates — they add to the existing set, they do not replace it.
Disable a Predicate Group¶
Disable a specific predicate group from a builtin preset:
Activation Chains¶
Control other presets from an override:
Activation chains are transitive. A preset activated by another active preset can activate more presets.
The ! prefix excludes a preset from automatic activation:
This is not a silent force-disable. If the excluded preset is already active because of defaultEnabled or enabled: true, Hydra reports a configuration error. To switch a preset off for the cluster, set that preset to enabled: false.
Activation entries can also be version-gated:
presets:
kubernetes:
activates:
- preset: kubernetes-dynamic-resource-allocation
kubernetesMinorMin: 34
Where to Define Overrides¶
| Scope | Location | Use case |
|---|---|---|
| All clusters | Charts repo values.yaml |
Preset that always applies for this app |
| One cluster | GitOps repo cluster values.yaml |
Cluster-specific distribution |
Typically, preset overrides live in the GitOps repository because they depend on the Kubernetes distribution, which varies per cluster.