Release date: 2022-12-22
This prerelease sets the default value for the --graceful-shutdown-timeout
to
match the default value we set in the Deployment for
terminationGracePeriodSeconds
which is 600s. This should fix handling graceful
shutdown correctly.
Fixes:
- Align
graceful-shutdown-timeout
withterminationGracePeriodSeconds
#584
Release date: 2022-12-20
This prerelease disables the caching of Secret and ConfigMap resources to
improve memory usage. To opt-out from this behaviour, start the controller
with: --feature-gates=CacheSecretsAndConfigMaps=true
.
In addition, a new flag --graceful-shutdown-timeout
has been added to
control the duration of the graceful shutdown period. The default value is
-1
(disabled), to help prevent releases from being stuck due to the
controller being terminated before the Helm action has completed.
Helm has been updated to v3.10.3, which includes security fixes.
Fixes:
- Assign the value of
DisableOpenApiValidation
during upgrade #564 - build: Fix cifuzz and improve fuzz tests' reliability #565
- Minor typo in doc #566
- fuzz: Use build script from upstream and fix fuzzers #578
Improvements:
- Disable caching of Secrets and ConfigMaps #513
- Allow overriding ctrl manager graceful shutdown timeout #570 #582
- helm: Update SDK to v3.10.3 #577
- Update source-controller and dependencies #581
Release date: 2022-11-22
This prerelease comes with re-added support for h
in the HelmRelease
spec.timeout
field, so that users can use hours to set reconciliation
timeouts.
Improvements:
- Allow 'h' in HelmRelease timeout field #559
- Use Flux Event API v1beta1 #557
- Update dependencies #561
Release date: 2022-10-21
This prerelease comes with support for Cosign verification of Helm OCI charts.
The signatures verification can be configured by setting HelmRelease.spec.chart.spec.verify
with
provider
as cosign
and a secretRef
to a secret containing the public key.
Cosign keyless verification is also supported, please see the
HelmChart API documentation
for more details.
In addition, the controller dependencies have been updated to Kubernetes v1.25.3 and Helm v3.10.1.
Improvements:
- Enable Cosign verification of Helm charts stored as OCI artifacts in container registries #545
- API: allow configuration of h unit for timeouts #549
- Update dependencies #550
Release date: 2022-09-29
This prerelease comes with strict validation rules for API fields which define a
(time) duration. Effectively, this means values without a time unit (e.g. ms
,
s
, m
, h
) will now be rejected by the API server. To stimulate sane
configurations, the units ns
, us
and µs
can no longer be configured, nor
can h
be set for fields defining a timeout value.
In addition, the controller dependencies have been updated to Kubernetes controller-runtime v0.13.
.spec.interval
new validation pattern is"^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
.spec.timeout
new validation pattern is"^([0-9]+(\\.[0-9]+)?(ms|s|m))+$"
Improvements:
- api: add custom validation for v1.Duration types #533
- Build with Go 1.19 #537
- Update dependencies #538
Release date: 2022-09-12
This prerelease comes with improvements to fuzzing. In addition, the controller dependencies have been updated to Kubernetes controller-runtime v0.12.
Improvements:
- Align controller logs to Kubernetes structured logging #528
- fuzz: Fix upstream build and optimise execution #529
Release date: 2022-08-29
This prerelease comes with updates to the controller dependencies including Kubernetes v1.25.0, Helm v3.9.4 and Kustomize v4.5.7.
Improvements:
- Update Kubernetes packages to v1.25.0 #524
Release date: 2022-08-19
This prerelease comes with panic recovery, to protect the controller from crashing when reconciliations lead to a crash.
The API now enforces validation to Spec.ValuesFrom
subfields:
TargetPath
and ValuesKey
.
The new image contains updates to patch alpine CVEs.
Improvements:
- Enable RecoverPanic option on reconciler #516
- Add validation to TargetPath and ValuesKey #520
- Update dependencies #521
Release date: 2022-07-13
This prerelease updates dependencies to patch upstream CVEs.
Improvements:
- Fix github.com/emicklei/go-restful (CVE-2022-1996) #507
- Update dependencies #501
- Update gopkg.in/yaml.v3 to v3.0.1 #502
- build: Upgrade to Go 1.18 #505
Release date: 2022-06-07
This prerelease fixes a regression bug introduced in #480
which would cause the impersonation config to pick the incorrect
TargetNamespace
for the account name if it was set.
In addition, Kubernetes dependencies have been updated to v0.24.1
, and
github.com/containerd/containerd
was updated to v1.6.6
to mitigate
CVE-2022-31030.
Fixes:
Improvements:
- Update dependencies #493
Release date: 2022-06-01
This prerelease fixes an issue where the token used for Helm operations would go stale if it was provided using a Bound Service Account Token Volume.
Starting with this version, the controller conforms to the Kubernetes
API Priority and Fairness.
The controller detects if the server-side throttling is enabled and uses the
advertised rate limits. When server-side throttling is enabled, the controller
ignores the --kube-api-qps
and --kube-api-burst
flags.
Fixes:
- kube: load KubeConfig (token) from FS on every reconcile #480
- Updating API group name to helm.toolkit.fluxcd.io in docs #484
Improvements:
Release date: 2022-05-03
This prerelease introduces support for defining a KubeConfig Secret data key in
the .spec.kubeConfig.SecretRef.key
(default: value
or value.yaml
).
In addition, dependencies have been updated.
Improvements:
Release date: 2022-04-20
This prerelease equals to v0.20.0
, but is tagged at the right
revision.
Release date: 2022-04-19
This prerelease adds support for configuring the exponential back-off retry
using newly introduced flags: --min-retry-delay
(default: 750ms
) and
--max-retry-delay
(default: 15min
). Previously the defaults were set to
5ms
and 1000s
.
In addition, all dependencies have been updated to their latest versions,
including an update of Helm to v3.8.2
.
Improvements:
Release date: 2022-04-05
This prerelease adds some breaking changes around the use and handling of kubeconfigs files for remote reconciliations. It updates documentation and progress other housekeeping tasks.
Breaking changes:
- Use of file-based KubeConfig options are now permanently disabled (e.g.
TLSClientConfig.CAFile
,TLSClientConfig.KeyFile
,TLSClientConfig.CertFile
andBearerTokenFile
). The drive behind the change was to discourage insecure practices of mounting Kubernetes tokens inside the controller's container file system. - Use of
TLSClientConfig.Insecure
in KubeConfig file is disabled by default, but can enabled at controller level with the flag--insecure-kubeconfig-tls
. - Use of
ExecProvider
in KubeConfig file is now disabled by default, but can enabled at controller level with the flag--insecure-kubeconfig-exec
.
Improvements:
- Update KubeConfig documentation #457
- Update docs links to toolkit.fluxcd.io #456
- Add kubeconfig flags #455
- Align version of dependencies when Fuzzing #452
Release date: 2022-03-25
This prerelease updates the source-controller and Kustomize dependencies to their latest versions.
Improvements:
Release date: 2022-03-23
This prerelease ensures the API objects fully adhere to newly introduced
interfaces, allowing them to work in combination with e.g. the
conditions
package.
In addition, it ensures (Kubernetes) Event annotations are prefixed with the
FQDN of the Helm API Group. For example, revision
is now
helm.toolkit.fluxcd.io/revision
.
This to facilitate improvements to the notification-controller, where annotations prefixed with the FQDN of the Group of the Involved Object will be transformed into "fields".
Improvements:
Fixes:
- Prefix revision annotation with API Group FQDN #447
Release date: 2022-03-21
This prerelease adds support to the Helm post renderer for Kustomize patches
capable of targeting objects based on kind, label and annotation selectors
using .spec.postRenderers[].kustomize.patches
.
In addition, various dependencies where updated to their latest versions, and
the code base was refactored to align with the fluxcd/pkg/runtime
v0.13
release.
The source-controller dependency was updated to version v0.22
which
introduces API v1beta2
and deprecates v1beta1
.
Improvements:
- Update
pkg/runtime
andapis/meta
#421 - api: Move Status in CRD printcolumn to the end #425
- Support targeted Patches in the PostRenderer specification #432
- Update dependencies #440 #441
Release date: 2022-03-15
This prerelease comes with an update for github.com/containerd/containerd
to
v1.5.10
to please static security analysers and fix any warnings for
CVE-2022-23648.
In addition, it updates Helm from a forked and patched v3.8.0
, to the
official v3.8.1
release, and updates minor dependencies.
The Deployment manifest contains a patch to set the
.spec.securityContext.fsGroup
, which may be required for some EKS setups
as reported in fluxcd/flux2#2537.
Improvements:
- Update Helm to v3.8.1 #434
- add fsgroup for securityContext #435
- Update containerd to v1.5.10 and tidy go.mod #436
Release date: 2022-02-22
This prerelease ensures the QPS and Burst configuration is properly propagated to the Kubernetes client used by Helm actions, and updates multiple dependencies to pull in CVE fixes.
Improvements:
Release date: 2022-02-16
This prerelease introduces a breaking change to the Helm uninstall behavior, as
the --wait
flag is now enabled by default. Resulting in Helm to wait for
resources to be deleted while uninstalling a release. Disabling this behavior
is possible by declaring spec.uninstall.disableWait: true
in a HelmRelease
.
Improvements:
- Add uninstall disableWait flag #416
Release date: 2022-02-01
This prerelease comes with security improvements for multi-tenant clusters:
- Platform admins can enforce impersonation across the cluster using the
--default-service-account
flag. When the flag is set, allHelmReleases
, which don't havespec.serviceAccountName
specified, use the service account name provided by--default-service-account=<SA Name>
in the namespace of the object. - Platform admins can disable cross-namespace references with the
--no-cross-namespace-refs=true
flag. When this flag is set,HelmReleases
can only refer to sources (HelmRepositories
,GitRepositories
andBuckets
) in the same namespace as theHelmRelease
object, preventing tenants from accessing another tenant's repositories.
In addition, the controller comes with a temporary fork of Helm v3.8.0 with a patch applied from helm/pull/10486 to solve a memory leak.
The controller container images are signed with Cosign and GitHub OIDC, and a Software Bill of Materials in SPDX format has been published on the release page.
Starting with this version, the controller deployment conforms to the Kubernetes restricted pod security standard:
- all Linux capabilities were dropped
- the root filesystem was set to read-only
- the seccomp profile was set to the runtime default
- run as non-root was enabled
- the user and group ID was set to 65534
Breaking changes:
- The use of new seccomp API requires Kubernetes 1.19.
- The controller container is now executed under 65534:65534 (userid:groupid). This change may break deployments that hard-coded the user ID of 'controller' in their PodSecurityPolicy.
- When both
spec.kubeConfig
andspec.ServiceAccountName
are specified, the controller will impersonate the service account on the target cluster, previously the controller ignored the service account.
Features:
- Allow setting a default service account for impersonation #406
- Allow disabling cross-namespace references #408
Improvements:
- Update Helm to patched 3.8.0 #409
- Publish SBOM and sign release artifacts #401
- Drop capabilities, set userid and enable seccomp #385
- Update development documentation #397
- Refactor Fuzz implementation #396
Fixes:
- Use patch instead of update when adding finalizers #395
- Fix the missing protocol for the first port in manager config #405
- Use go-install-tool for gen-crd-api-reference-docs #392
- Use go install instead of go get in Makefile #391
Release date: 2022-01-10
This prerelease comes with an update to the Kubernetes and controller-runtime dependencies
to align them with the Kubernetes 1.23 release, including an update of Helm to v3.7.2
.
In addition, the controller is now built with Go 1.17 and Alpine 3.15.
Improvements:
Fixes:
- Fix inconsistent code-style raised at security audit #386
Release date: 2021-12-09
This prerelease updates the dependency on the source-controller to v0.19.2
,
which includes the fixes from source-controller v0.19.1
, and changes the
length of the SHA hex added to the SemVer metadata of a HelmChart
. Refer to
the source-controller changelog
for more information.
+
character in the label:
metadata.labels: Invalid value: "1.2.3+a4303ff0f6fb560ea032f9981c6bd7c7f146d083.1": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')
Given the Helm chart best practices mention to replace this character with a
_
,
we encourage you to patch this in your (upstream) chart.
Pseudo example using template functions:
{{- replace "+" "_" .Chart.Version | trunc 63 }}
In addition, the dependency on github.com/opencontainers/runc
is updated to
v1.0.3
to please static security analysers and fix any warnings for
CVE-2021-43784.
Improvements:
- Update kustomize packages to Kustomize v4.4.1 #374
- Update dependencies (fix CVE-2021-43784) #376
- Update source-controller to v0.19.2 #377
Fixes:
- docs/spec: Fix reconcile annotation key in example #371
Release date: 2021-11-23
This prerelease updates the dependency on the source-controller to v0.19.0
, which
includes breaking behavioral changes, including one beneficial to users making
use of ValuesFiles
references. Refer to the changelog
for more information.
In addition, it updates Alpine to v3.14
, and several dependencies to their latest
version. Solving an issue with rest_client_request_latency_seconds_.*
high
cardinality metrics.
Improvements:
- Update Alpine to v3.14 #360
- Update various dependencies to mitigate CVE warnings #361
- Update opencontainers/image-spec to v1.0.2 #362
- Update controller-runtime to v0.10.2 #363
- Update source-controller to v0.19.0 #364
Release date: 2021-11-12
This prerelease comes with artifact integrity verification.
During the acquisition of an artifact, helm-controller computes its checksum using SHA-2
and verifies that it matches the checksum advertised in the Status
of the Source.
Improvements:
- Verify artifacts integrity #358
Release date: 2021-11-11
This prerelease downgrades Helm to v3.6.3
due to high memory usage issues
inherited from upstream dependency changes. For technical details about the
issue, see this comment.
As Helm v3.7.0
did not introduce any new features from the perspective of
the controller, we consider this to be a patch which reverts the unwanted
behavior introduced in v0.12.0
.
Fixes:
- Set the managed fields owner to helm-controller #346
- Downgrade Helm to v3.6.3 due to OOM issues #352
- Replace containerd with version that patches CVEs #356
Release date: 2021-10-14
This prerelease updates Helm to v3.7.1
, and ensures ReconcileStrategy
changes are applied to the underlying HelmChart
of a HelmRelease
.
Improvements:
Fixes:
- Update the release if ReconcileStrategy changes #333
Release date: 2021-10-08
This prerelease updates Helm to v3.7.0
, this Helm version should include
improvements to the locking mechanism of releases, which should result in
a reduction of deadlocked releases that have been reported in the past.
In addition, it is now possible to define a ReconcileStrategy
in the
HelmChartTemplateSpec
. By setting the value of this field to Revision
,
a new artifact will be made available for charts from Bucket
and
GitRepository
sources whenever a new revision is available.
The default value of the field is ChartVersion
, which looks for version
changes in the Chart.yaml
file.
Improvements:
- Update fluxcd/source-controller to v0.16.0 #329
- Introduce ReconcileStrategy in HelmChartTemplateSpec #329
- Update sigs.k8s.io/kustomize/api to v0.10.0 #330
- Update Helm to v3.7.0 #330
Fixes:
- Fix indentation for PostRenderers example #314
Release date: 2021-08-05
This prerelease comes with support for SOPS encrypted kubeconfig loaded from the
value of the value.yaml
key in the object, and ensures quoted values are treated
as strings when a targetPath
is set for a valuesFrom
item.
To enhance the experience of consumers observing the HelmRelease
object using
kstatus
, a default of -1
is now configured for the observedGeneration
to
ensure it does not report a false positive in the time the controller has not
marked the resource with a Ready
condition yet.
In addition, it updates Helm to v3.6.3
and aligns the Kubernetes dependencies
with v1.21.3
.
Improvements:
- Set default observedGeneration to -1 on HelmReleases #294
- Treat quoted values as string when targetPath is set #298
- Make the kubeconfig secrets compatible with SOPS #305
- Update dependencies #307
Fixes:
- Remove old util ObjectKey #305
Release date: 2021-06-18
This prerelease updates Helm to v3.6.1
, this is a security update which has
no impact as transport is handled by the source-controller. For more details
please see the source-controller v0.15.1
changelog.
Improvements:
Release date: 2021-06-09
This prerelease comes with an update to the Kubernetes and controller-runtime
dependencies to align them with the Kubernetes 1.21 release, including an update
of Helm to v3.6.0
.
It introduces breaking changes to the Helm behavior as the --wait-for-jobs
flag that was introduced in Helm v3.5.0
is now enabled by default. Disabling
this behavior is possible by declaring spec.<install|upgrade|rollback>.disableWaitForJobs: true
in a HelmRelease
.
Improvements:
- Add support for Helm
--wait-for-jobs
flag #271 - Update dependencies #273
- Add nightly builds workflow and allow RC releases #274
Fixes:
- Fix HelmChartTemplateSpec Doc missing valuesFiles info #266
Release date: 2021-05-10
This prerelease fixes a bug where an skipCRDs is set to false and crds is set to Skip
error would be thrown if the deprecated skipCRDs
field was omitted by giving the CRD policy field precedence over the
deprecated one.
Improvements:
- Update source-controller dependencies to v0.12.2 #262
Fixes:
- Give CRD policy precedence over skipCRDs field #261
Release date: 2021-04-21
This prerelease introduces support for defining a CRDsPolicy
in the
HelmReleaseSpec
, Install
and Upgrade
objects, while deprecating
the SkipCRDs
fields.
Supported policies:
Skip
: Do neither install nor replace (update) any CRDs.Create
: New CRDs are created, existing CRDs are neither updated nor deleted.CreateReplace
: New CRDs are created, existing CRDs are updated (replaced) but not deleted.
In case CreateReplace
is used as an Upgrade
policy, Custom Resource
Definitions are applied by the controller before a Helm upgrade is
performed. On rollbacks, the Custom Resource Definitions are left
untouched and not rolled back.
The ValuesFile
field in the HelmChart
template has been deprecated
in favour of the new ValuesFiles
field.
Features:
Improvements:
Fixes:
- docs: minor
createNamespace
placement fix #246
Release date: 2021-03-26
This prerelease comes with a breaking change to the leader election ID
from 5b6ca942.fluxcd.io
to helm-controller-leader-election
to be more descriptive. This change should not have an impact on most
installations, as the default replica count is 1
. If you are running
a setup with multiple replicas, it is however advised to scale down
before upgrading.
To ease debugging wait timeout errors, the last 5 deduplicated log lines
from Helm are now recorded in the status conditions and events of the
HelmRelease
.
To track the origin of resources that are created by a Helm operation
performed by the controllers, they are now labeled with
helm.toolkit.fluxcd.io/name
and helm.toolkit.fluxcd.io/namespace
using a builtin post render.
The suspended status of resources is now recorded to a
gotk_suspend_status
Prometheus gauge metric.
Improvements:
- Capture and expose debug (log) information on release failure #219
- Record suspension metrics #236
- Label release resources with HelmRelease origin #238
- Set leader election deadline to 30s #239
- Update source-controller API to v0.10.0 #240
Release date: 2021-03-15
This prerelease comes with patch updates to Helm and controller-runtime dependencies.
Improvements:
- Update dependencies #232
Release date: 2021-03-05
This prerelease comes with improvements to the notification system. The controller retries with exponential backoff when fetching artifacts, preventing spamming events when source-controller becomes unavailable for a short period of time.
Improvements:
- Retry with exponential backoff when fetching artifacts #216
Fixes:
- fix: log messages contain '%s' #229
Release date: 2021-02-24
This is the eight MINOR prerelease.
Due to changes in Helm v3.5.2,
charts not versioned using strict semver are no longer compatible with
source-controller (and the embedded HelmChart
template in the HelmRelease
).
When using charts from Git, make sure that the version
field is set in Chart.yaml
.
Improvements:
- Allow the controller to be run locally #216
- Add a release deployment event when reconciling a release #217
- Use
MergeMaps
from pkg/runtime v0.8.2 #220 - Refactor release workflow #223
- Update dependencies #225
- Use source-controller manifest from GitHub release #226
Release date: 2021-02-12
This is the seventh MINOR prerelease.
Support has been added for Kustomize based post renderer, making it possible
to define images, strategic merge and JSON 6902 patches within the
HelmRelease
.
pprof
endpoints have been enabled on the metrics server, making it easier to
collect runtime information to for example debug performance issues.
Features:
Improvements:
Release date: 2021-01-25
This prerelease adds support for configuring the namespace of the
Helm storage by defining a StorageNamespace
in the HelmRelease
resource (defaults to the namespace of the resource).
Release date: 2021-01-22
This is the sixth MINOR prerelease.
Two new argument flags are introduced to support configuring the QPS
(--kube-api-qps
) and burst (--kube-api-burst
) while communicating
with the Kubernetes API server.
The LocalObjectReference
from the Kubernetes core has been replaced
with our own, making Name
a required field. The impact of this should
be limited to direct API consumers only, as the field was already
required by controller logic.
Release date: 2021-01-18
This prerelease comes with updates to Kubernetes and Helm dependencies.
The Kubernetes packages were updated to v1.20.2
and Helm to v3.5.0
.
Release date: 2021-01-14
This prerelease fixes a regression bug introduced in v0.5.0
that caused
reconciliation request annotations to be ignored in certain scenarios.
Release date: 2021-01-12
This is the fifth MINOR prerelease, upgrading the controller-runtime
dependencies to v0.7.0
.
The container image for ARMv7 and ARM64 that used to be published
separately as helm-controller:*-arm64
has been merged with the AMD64
image.
Release date: 2020-12-16
This prerelease increases the terminationGracePeriodSeconds
of the
controller Deployment
from 10
to 600
, to allow release processes
that make use of the default timeout (5m0s
) to finish, and upgrades
the source-controller API dependency to v0.5.5
.
Release date: 2020-12-10
This prerelease upgrades various dependencies.
- Kubernetes dependency upgrades to
v1.19.4
- Helm upgrade to
v3.4.2
Release date: 2020-12-04
This prerelease fixes a bug in the merging of values.
Release date: 2020-11-30
This prerelease introduces support for Helm's namespace creation
feature by defining CreateNamespace
in the Install
configuration
of the HelmRelease
. Take note that deleting the HelmRelease
does
not remove the created namespace, and managing namespaces outside of
the HelmRelease
is advised.
In addition, it includes a fix for a bug that caused the finalizer to never be removed if a release no longer existed in the Helm storage.
Release date: 2020-11-26
This the fourth MINOR prerelease. It adds support for impersonating a
Service Account during Helm actions by defining a ServiceAccountName
in the HelmRelease
, and includes various bug fixes.
Release date: 2020-11-20
This is the third MINOR prerelease. It introduces a breaking change to
the API package; the status condition type has changed to the type
introduced in Kubernetes API machinery v1.19.0
.
Release date: 2020-11-18
This prerelease comes with a bugfix for chart divergence detections.
Release date: 2020-11-17
This prerelease comes with improvements to status reporting, and a bugfix for the (temporary) dead lock that would occur on some transient values composition and chart loading errors.
Release date: 2020-10-29
This is the second MINOR prerelease, it comes with a breaking change:
- The histogram metric
gotk_reconcile_duration
was renamed togotk_reconcile_duration_seconds
Other notable changes:
- Added support for cross-cluster Helm releases by defining a
KubeConfig
reference in theHelmReleaseSpec
. - The annotation
fluxcd.io/reconcileAt
was renamed toreconcile.fluxcd.io/requestedAt
, the former will be removed in a next release but is backwards compatible for now.
Release date: 2020-10-16
This prereleases fixes two bugs:
HelmRelease
resources with aspec.valuesFrom
reference making use of atargetPath
defined as the first item will now compose without failing.- The chart reconciliation and readiness logic has been rewritten to
better work with no-op chart updates and guarantee readiness state
observation accuracy. This prevents it from
HelmRelease
s getting stuck on a "HelmChart is not ready" state.
Release date: 2020-10-13
This prerelease comes with Prometheus instrumentation for the controller's resources.
For each kind, the controller exposes a gauge metric to track the Ready
condition status,
and a histogram with the reconciliation duration in seconds:
gotk_reconcile_condition{kind, name, namespace, status, type="Ready"}
gotk_reconcile_duration{kind, name, namespace}
Release date: 2020-10-02
This prerelease fixes a regression bug introduced in v0.1.0
resulting in the spec.targetNamespace
not being taken into
account.
Release date: 2020-09-30
This is the first MINOR prerelease, it promotes the
helm.toolkit.fluxcd.io
API to v2beta1
and removes support for
v2alpha1
.
Going forward, changes to the API will be accompanied by a conversion mechanism. With this release the API becomes more stable, but while in beta phase there are no guarantees about backwards compatibility between beta releases.
A breaking change was introduced to the Status
object, as the
LastObservedTime
field has been removed in favour of the newly
introduced LastHandledReconcileAt
. This field records the value
of the fluxcd.io/reconcilateAt
annotation, which makes it possible
for e.g. the gotk
CLI to observe if the controller has handled
the resource since the manual reconciliation request was made.
Release date: 2020-09-23
This prerelease adds support for Helm charts from Bucket
sources,
support for optional ValuesFrom
references, and a Helm upgrade from
3.3.3
to 3.3.4
.
Release date: 2020-09-22
This prerelease adds support for DependsOn
references to other namespaces
than the HelmRelease
resource resides in, container images for ARMv7 and
ARMv8 published to ghcr.io/fluxcd/helm-controller-arm64
, a Helm upgrade
from 3.3.1
to 3.3.3
, and a refactor of the Status
object.
The latter introduces the following breaking changes to the Status
object:
- The
Installed
,Upgraded
,RolledBack
, andUninstalled
conditions have been removed, since they did not represent current state, but rather actions taken, which are already recorded by events. - The
ObservedStateReconciled
field has been removed, since it solved the problem of remembering past release successes, but not past release failures, after other subsequent failures such as dependency failures, Kubernetes API failures, etc. - The
Tested
condition has been renamed toTestSuccess
, for forward compatibility with interval based Helm tests.
While introducing the following new Status
conditions:
Remediated
which records whether the release is currently in a remediated state. It is used to prevent release retries after remediation failures. We were previously not doing this for rollback failures.Released
which records whether the current state has been successfully released. This is used to remember the last release attempt status, regardless of any subsequent other failures such as dependency failures, Kubernetes API failures, etc.
Release date: 2020-09-11
This prerelease adds support for defining a ValuesFile
in the
HelmChartTemplateSpec
to overwrite the default chart values with another
values file, as supported by >=0.0.15
of the source-controller, and a
--watch-all-namespaces
flag (defaults to true
) to provide the option
to only watch the runtime namespace of the controller for resources.
Release date: 2020-09-04
This prerelease comes with documentation fixes. Container images for linux/amd64 and linux/arm64 are published to GHCR.
Release date: 2020-09-02
This prerelease adds support for Helm charts from GitRepository
sources,
improvements for a more graceful failure recovery, and an upgrade of Helm
from v3.0.0
to v3.0.1
. It includes several (breaking) changes to the
API.
The spec
of the HelmRelease
has a multitude of breaking changes:
spec.chart
(which contained the template for theHelmChart
template) has moved one level down tospec.chart.spec
. This matches the pod template defined in the KubernetesDeployment
kind, and allows for adding e.g. aspec.chart.metadata
field in a future iteration to be able to define annotations and/or labels.- The
spec.chart.name
field has been renamed tospec.chart.spec.chart
, and now accepts a chart name (for charts fromHelmRepository
sources) or a path (for charts fromGitRepository
sources), to follow changes made to theHelmChart
API. - The
spec.chart.spec.sourceRef.kind
is now mandatory, and accepts bothHelmRepository
andGitRepository
values.
The status
object has two new fields to help end-users and automation
(tools) with observing state:
observedStateReconciled
represents whether the observed state of the has been successfully reconciled. This field is marked astrue
on aReady==True
condition, and only reset ongeneration
, values, and/or chart changes.lastObservedTime
reflects the last time at which theHelmRelease
was observed. This can for example be used to observe if theHelmRelease
is running on the configuredspec.interval
and/or reacting toReconcileAt
annotations.
Release date: 2020-08-26
This prerelease adds support for conditional remediation on failed Helm actions, and includes several (breaking) changes to the API:
- The
maxRetries
value should now be set on the respectiveinstall.remediation.retries
andupgrade.remediation.retries
fields. - The
rollback.enable
field has been removed in favour ofupgrade.remediateLastFailure
. - Failing Helm tests will now result in a
False
Ready
condition by default, ignoring test failures can be re-enabled by configuringtest.ignoreFailures
totrue
.
Release date: 2020-08-20
This prerelease adds support for merging a flat single value from
a ValueReference
at the defined TargetPath
, and fixes a bug in
the merging of values where overwrites of a map with a flat single
value was not allowed.
Release date: 2020-08-18
This prerelease upgrades the github.com/fluxcd/pkg/*
dependencies to
dedicated versioned modules, and makes the api
package available as
a dedicated versioned module.
Release date: 2020-08-12
In this prerelease the Helm package was upgraded to v3.3.0.
Release date: 2020-07-31
This prerelease comes with a breaking change, the CRDs group has been
renamed to helm.toolkit.fluxcd.io
. The dependency on source-controller
has been updated to v0.0.7
to be able to work with source.toolkit.fluxcd.io
resources.
Release date: 2020-07-22
This beta release fixes a bug affecting helm release status reevaluation.
Release date: 2020-07-21
This beta release fixes a bug affecting helm charts reconciliation.
Release date: 2020-07-21
This beta release comes with various bug fixes and minor improvements.
Release date: 2020-07-20
This beta release drops support for Kubernetes <1.16.
The CRDs have been updated to apiextensions.k8s.io/v1
.
Release date: 2020-07-16
This alpha release comes with improvements to alerts delivering, logging, and fixes a bug in the lookup of HelmReleases when a HelmChart revision had changed.
Release date: 2020-07-13
This is the first alpha release of helm-controller. The controller is an implementation of the helm.fluxcd.io/v2alpha1 API.