You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(chart): add configurable Helm storage driver to HelmChart spec
Allow users to configure the Helm storage driver via spec.driver
on HelmChart resources. Accepts 'secret' (default) and 'configmap'.
This enables installation of large charts whose release metadata
exceeds the effective capacity of Kubernetes Secrets.
The driver field is immutable after creation to prevent accidental
loss of release metadata when switching storage backends.
Made getChartReleaseRevision() driver-aware so that
EXPECTED_RELEASE_REVISION is correctly injected for the
klipper-helm revision guard when using the configmap driver.
Fixes#317
Signed-off-by: Furkan Akman <hi@furkanakman.dev>
Copy file name to clipboardExpand all lines: doc/helmchart.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -162,6 +162,7 @@ _Appears in:_
162
162
|`dockerRegistrySecret`_[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#localobjectreference-v1-core)_| Reference to Secret of type kubernetes.io/dockerconfigjson holding Docker auth credentials for the OCI-based registry acting as the Chart repo. |||
163
163
|`podSecurityContext`_[PodSecurityContext](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#podsecuritycontext-v1-core)_| Custom PodSecurityContext for the helm job pod. |||
164
164
|`securityContext`_[SecurityContext](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#securitycontext-v1-core)_| custom SecurityContext for the helm job pod. |||
165
+
|`driver`_[HelmDriver](#helmdriver)_| Helm storage driver to use for this chart's release metadata.<br />`secret` stores releases in Kubernetes Secrets (default).<br />`configmap` stores releases in ConfigMaps.<br />This field is effectively immutable after the first install; changing the storage backend is not a supported migration path.<br />Helm CLI environment variable: `HELM_DRIVER`| secret | Enum: [secret configmap] <br /> |
165
166
166
167
167
168
#### HelmChartStatus
@@ -181,6 +182,20 @@ _Appears in:_
181
182
|`conditions`_[HelmChartCondition](#helmchartcondition) array_|`JobCreated` indicates that a job has been created to install or upgrade the chart.<br />`Failed` indicates that the helm job has failed and the failure policy is set to `abort`. |||
// Helm storage driver to use for this chart's release metadata.
115
+
// `secret` stores releases in Kubernetes Secrets (default).
116
+
// `configmap` stores releases in ConfigMaps.
117
+
// This field is effectively immutable after the first install; changing the storage backend is not a supported migration path.
118
+
// Helm CLI environment variable: `HELM_DRIVER`
119
+
// +kubebuilder:default=secret
120
+
// +kubebuilder:validation:XValidation:rule="!oldSelf.hasValue() || self == oldSelf.value()",message="driver is immutable after creation",optionalOldSelf=true
121
+
DriverHelmDriver`json:"driver,omitempty"`
111
122
}
112
123
113
124
// HelmChartStatus represents the resulting state from processing HelmChart events
0 commit comments