All notable changes to this project are documented in this file.
Release date: 2021-03-17
This prerelease comes with updates to the runtime packages.
The controller exposes a gauge metric to track the suspended status
of Kustomization
objects: gotk_suspend_status{kind,name,namespace}
.
Improvements:
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 #289
- Validate the var names before substitution #291
Release date: 2021-02-25
This prerelease comes with an update to the sigs.k8s.io/cli-utils
dependency, to guard against a potential bug with health assessments
that was discovered in the flux
CLI.
Improvements:
- Update sigs.k8s.io/cli-utils to v0.22.2 #287
Release date: 2021-02-24
This is the ninth MINOR prerelease.
This prerelease comes with support for recreating Kubernetes objects (e.g. Jobs) when immutable fields are changed in Git.
Features:
- Add support for recreating objects when immutable fields are updated #271
Improvements:
Fixes:
- Avoid prompts on SOPS key import by adding batch flag to gpg #281
Release date: 2021-02-18
This prerelease adds an array field called substituteFrom
to the post build
API. SubstituteFrom
holds references to ConfigMaps
and Secrets
containing
the variables (data keys) and their values (data values) to be substituted in
the YAML manifests.
You can disable the variable substitution for certain resources by either labeling or annotating them with:
kustomize.toolkit.fluxcd.io/substitute: disabled
Features:
- Implement var substitution from ConfigMaps and Secrets #275
Release date: 2021-02-12
This is the eight MINOR prerelease.
This prerelease comes with support for bash-style variable substitutions.
The Kustomization API was extended with in-line support for Kustomize Strategic Merge and JSON 6902 patches.
Pruning can be disabled for certain resources by either labeling or annotating them with:
kustomize.toolkit.fluxcd.io/prune: disabled
Golang pprof
endpoints have been enabled on the metrics server,
making it easier to collect runtime information to debug performance issues.
Features:
- Add support for variable substitutions #253
- Support Strategic Merge and JSON 6902 patches #264
- Allow disabling of prune on certain resources #267
Improvements:
Release date: 2021-02-02
This prerelease comes with a change to the Kustomization status so that the controller can keep track of the last health assessment result and avoid issuing redundant health check events.
Improvements:
- Add Healthy status condition #262
Release date: 2021-02-01
This prerelease comes with support for running the Kustomization validation using service account impersonation.
Improvements:
- Support impersonation for validation #260
Release date: 2021-01-26
This prerelease comes with a fix to the service account impersonation when running health checks and garbage collection.
Fixes:
- Clear
config.BearerTokenFile
when settingBearerToken
#258
Release date: 2021-01-25
This prerelease fixes a regression bug introduced in v0.7.0
that caused
failed reconciliations to be immediately retried instead of being scheduled
at the specified interval.
Fixes:
- Fix reconciliation retry scheduler #256
Release date: 2021-01-22
This is the seventh MINOR prerelease.
An optional field was added spec.retryInterval
that allows users to
requeue a failed reconciliation at a different interval than spec.Interval
.
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.
Improvements:
- Allow failed reconciliations to be scheduled at a different interval #250
- Update fluxcd/pkg/runtime to v0.8.0 #247
Release date: 2021-01-19
This prerelease comes with fixes to the kustomize build procedure by disabling kyaml. The Kubernetes packages were updated to v1.20.2 and kustomize/api to v0.7.2.
Improvements:
Release date: 2021-01-15
This prerelease adds support for kustomization.yml
and Kustomization
files at the root of the configured path.
Improvements:
- Look for all accepted Kustomization filenames #238
Release date: 2021-01-14
This prerelease fixes a regression bug introduced in v0.6.0
that caused
reconciliation request annotations to be ignored in certain scenarios.
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.
Improvements:
Fixes:
- Upgrade runtime package to v0.6.2 for regression bug fix #234
Release date: 2021-01-12
This is the sixth 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 kustomize-controller:*-arm64
has been merged with the
AMD64 image.
Improvements:
- Update kubectl to v1.20.1 #231
- Update kustomize/api to v0.7.1 #229
- Run GC and health checks using service account impersonation #221
Fixes:
- No longer treat dirs as kustomization files #224
Release date: 2020-12-18
This prerelease comes with improvements to health reporting.
Improvements:
- Emit healthcheck event when Kustomization was not ready #219
- Add debug logs to garbage collection #218
- Add SOPS user error to logs #220
Release date: 2020-12-16
This prerelease comes with improvements to garbage collection and adds safe guards for relative paths.
The Path
field was marked as optional, when not specified,
it defaults to the root path of the SourceRef
.
Health checking and garbage collection for HelmReleases
and other custom resources were fixed by downgrading
to controller-runtime
v0.6.3.
Improvements:
- Refactor garbage collection #210
- Make Path field optional and add safe guards for relative paths #211
Release date: 2020-12-14
This prerelease comes with improvements to error reporting.
Improvements:
- Refactor apply error reporting #205
Release date: 2020-12-11
This is the fifth MINOR prerelease. It comes with support for
overriding container images with spec.images
.
Improvements:
Release date: 2020-11-26
This is the fourth MINOR prerelease. Suspended Kustomizations are no longer marked as not ready, the status sub-resource is left untouched.
Improvements:
- Do not mark suspended resource as not ready #183
- Set field manager to
kustomize-controller
instead ofkubectl
#184
Fixes:
- Requeue after interval on source not found errors #182
Release date: 2020-11-20
This is the third MINOR prerelease. It introduces two breaking changes:
- the
ServiceAccount
field has been removed and replaced byServiceAccountName
; it is no longer possible to specify a namespace for a service account, the namespace is inferred from the Kustomization namespace - the status condition type has changed to the type introduced in Kubernetes API machinery
v1.19.0
Improvements:
- Use ServiceAccountName for impersonation #180
- Adopt Kubernetes condition type #174
- Add docs for excluding non-k8 YAML files in kustomization generation #176
- Use DeletionTimestamp for prune and readiness #177
Fixes:
- Add fsGroup to security context (fix for AWS KMS IAM Role bindings) #178
Release date: 2020-11-12
This prerelease comes with improvements to status reporting.
The Kustomization dry-run can now be explicitly disabled
by setting spec.validation
to none
.
Improvements:
Release date: 2020-11-04
This prerelease comes with improvements to garbage collection. The Kubernetes packages have been updated to v1.19.
Improvements:
- Update k8s to 1.19 + kustomize 0.6.4 #161
- Add openssh client to support git+ssh Kustomize resources #159
Fixes:
Release date: 2020-10-29
This is the second MINOR prerelease, it comes with breaking changes:
- the histogram metric
gotk_reconcile_duration
was renamed togotk_reconcile_duration_seconds
- the annotation
fluxcd.io/reconcileAt
was renamed toreconcile.fluxcd.io/requestedAt
Improvements:
- Refactor predicates and enqueuers #156 #155 #153
- Use annotation helpers #152
- Suppress health check events when no changes made #151
- Use controller-runtime utils for finalizer and health checks #150
- Improve remote cluster documentation #148
Release date: 2020-10-16
This prerelease comes with support for targeting remote clusters created with Cluster-API.
Improvements:
- Implement non-caching, per-kustomization GC-client/statusPoller for cross-cluster kubeconfigs #135
Fixes:
- Fix status reporting when the source is not found #141
- Validate manifests when generating kustomization.yaml #143
- Set correct status on failure events #145
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-09-30
This is the first MINOR prerelease, it promotes the
kustomize.toolkit.fluxcd.io
API to v1beta1
and removes support for v1alpha1
.
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.
Release date: 2020-09-22
This prerelease comes with support for S3 bucket sources and
cross-namespace dependencies.
Container images for ARMv7 and ARMv8 are published to
ghcr.io/fluxcd/kustomize-controller-arm64
.
Release date: 2020-09-14
This prerelease comes with improvements to health assessment. The health checks leverage the kstatus library to support custom resources such as HelmReleases that implement the Ready condition.
Release date: 2020-09-12
This prerelease comes with the option to watch for resources in the runtime namespace of the controller or at cluster level.
Release date: 2020-09-05
This prerelease comes with a bug fix to garbage collection.
Release date: 2020-09-04
This prerelease comes with support for decrypting Kubernetes secrets with Mozilla SOPS. Container images for linux/amd64 and linux/arm64 are published to GHCR.
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-07-31
This prerelease comes with a breaking change, the CRDs group has been
renamed to kustomize.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-25
This prerelease comes with improvements to the dependency management and service account impersonation.
Release date: 2020-07-20
This prerelease drops support for Kubernetes <1.16.
The CRDs have been updated to apiextensions.k8s.io/v1
.
Release date: 2020-07-16
This prerelease comes with improvements to the alerting system and allows sources to be referenced across namespaces. The kustomize/api has been updated to v0.5.1.
Release date: 2020-07-13
This prerelease comes with improvements to logging.
The default logging format is JSON and the timestamp format is ISO8601.
Introduce fluxcd.io/reconcileAt
annotation for on-demand reconciliation
of kustomization objects.
Release date: 2020-07-02
This prerelease comes with improvements to the alerting system. The reconciliation events can be forwarded to notification controller and alerting can be configured for Slack, MS Teams, Discord and Rocket chat using the notification.fluxcd.io API.
Release date: 2020-06-24
This is the first prerelease ready for public testing. To get started testing, see the GitOps Toolkit guide.
Release date: 2020-06-10
This beta release allows configuring the number of concurrent reconciles. Starting with this version, the controller watches for resources only in the namespace where it's deployed.
Release date: 2020-05-29
This is the first beta release of kustomize controller. This release comes with improvements to the reconciliation engine when dealing with CRDs/CRs. The kustomize/api has been updated to v0.4.1.
Release date: 2020-05-11
This alpha release includes a bug fix for the source event handler and sets the current context to the default namespace.
Release date: 2020-05-09
This alpha release comes with improvements to health assessment and dependency management. When a source revision changes, the Kustomizations are executed based on the depends-on graph.
Release date: 2020-05-05
This alpha release comes with improvements to the garbage collector. The new GC doesn't require label selectors to be set in the kustomization and can prune resources safely without hitting Kubernetes API rate limits.
Release date: 2020-05-03
This alpha release comes with role-based access control for restricting the execution of a kustomization apply to a specific service account.
Release date: 2020-04-27
This alpha release introduces an intermediate state to the status ready condition to signal that a reconciliation is underway. This allows waiting for an on-demand sync to complete.
Release date: 2020-04-24
This alpha release introduces a new status field for recording the last applied source revision.
Feature comparison with Flux has been added to docs/spec.
Release date: 2020-04-23
This alpha release introduces the option to tell the controller to
automatically generate
the kustomization.yaml
for repositories that contain plain Kubernetes manifests.
The controller design and motivation can be found at docs/spec.
Release date: 2020-04-21
This alpha release introduces the Profile CRD that allows grouping Kustomization objects and defining a common behavior for them. The v1alpha1 profiles can be used for configuring Slack and Discord alerting.
Release date: 2020-04-20
This is the first alpha release of kustomize controller. The controller is an implementation of the kustomize.fluxcd.io/v1alpha1 API.