github.com/fluxcd/kustomize-controller
v1.9.4
#3889 most downloaded on Go modules
fluxcd/kustomize-controller
What this package is like to depend on
Last release 23 days ago
01 Aug 2026
Ships on a steady schedule
a new release about every 1 weeks
Nearly every release is documented
notes for 124 of 124 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
1343 releases · first in 2020
40 releases in the last 12 months
see the full history below
Release timeline
1343 releases · Jun 2020 to Aug 2026Releases
latest 60 of 1343-
v1.9.423 Jul 2026Release notes
Open source →Changelog
Container images
docker.io/fluxcd/kustomize-controller:v1.9.4ghcr.io/fluxcd/kustomize-controller:v1.9.4
Supported architectures:
linux/amd64,linux/arm64andlinux/arm/v7.The container images are built on GitHub hosted runners and are signed with cosign and GitHub OIDC.
To verify the images and their provenance (SLSA level 3), please see the security documentation.Release notes
Open source →Release date: 2026-07-23
This patch release fixes a
spec.imagesentry that sets only some of the image fields discarding the remaining fields already declared for the same image in thekustomization.yamlatspec.path, e.g. overriding onlynewNameproduced an untagged image reference.Fixes:
- Update fluxcd/pkg dependencies #1714
-
v1.9.313 Jul 2026Release notes
Open source →Changelog
Container images
docker.io/fluxcd/kustomize-controller:v1.9.3ghcr.io/fluxcd/kustomize-controller:v1.9.3
Supported architectures:
linux/amd64,linux/arm64andlinux/arm/v7.The container images are built on GitHub hosted runners and are signed with cosign and GitHub OIDC.
To verify the images and their provenance (SLSA level 3), please see the security documentation.Release notes
Open source →Release date: 2026-07-13
This patch release fixes a regression introduced in v1.9.2 where a Kustomization with
openapi.pathpointing to a URL failed to reconcile withfailed to read OpenAPI schema.Fixes:
- Update fluxcd/pkg dependencies #1703
-
v1.9.207 Jul 2026Release notes
Open source →Changelog
Container images
docker.io/fluxcd/kustomize-controller:v1.9.2ghcr.io/fluxcd/kustomize-controller:v1.9.2
Supported architectures:
linux/amd64,linux/arm64andlinux/arm/v7.The container images are built on GitHub hosted runners and are signed with cosign and GitHub OIDC.
To verify the images and their provenance (SLSA level 3), please see the security documentation.Release notes
Open source →Release date: 2026-07-07
This patch release fixes three bugs. Flux variable substitution is now disabled on the Kustomization CRD by annotating it with
kustomize.toolkit.fluxcd.io/substitute: disabled, preventing post-build substitution from corrupting the CRD schema when it contains${...}sequences. The SOPS dependency was updated to fix decryption of.inifiles. Finally, the fluxcd/pkg dependencies were updated to fix a dry-run error where applying a resource with a strategic merge patch could fail with<resource> is invalid.Fixes:
-
v1.9.130 Jun 2026Release notes
Open source →Changelog
Container images
docker.io/fluxcd/kustomize-controller:v1.9.1ghcr.io/fluxcd/kustomize-controller:v1.9.1
Supported architectures:
linux/amd64,linux/arm64andlinux/arm/v7.The container images are built on GitHub hosted runners and are signed with cosign and GitHub OIDC.
To verify the images and their provenance (SLSA level 3), please see the security documentation.Release notes
Open source →Release date: 2026-06-30
This patch release updates Kubernetes to 1.36.2 and the fluxcd/pkg dependencies, adds kubectl categories to the Kustomization CRD and documents the controller's command-line options.
Improvements:
-
v1.9.1-0.20260801075909-186fb3b2913801 Aug 2026 pre-releaseNothing published for this version
-
v1.9.1-0.20260723141642-c2163d92d9c423 Jul 2026 pre-releaseNothing published for this version
-
v1.9.1-0.20260712143318-42990a3e850512 Jul 2026 pre-releaseNothing published for this version
-
v1.9.1-0.20260707095534-146e329d953a07 Jul 2026 pre-releaseNothing published for this version
-
v1.9.1-0.20260701082739-8968cc137c8c01 Jul 2026 pre-releaseNothing published for this version
-
v1.9.1-0.20260629145848-ddca94c8814b29 Jun 2026 pre-releaseNothing published for this version
-
v1.9.1-0.20260623200438-068ef31fc4a023 Jun 2026 pre-releaseNothing published for this version
-
v1.9.1-0.20260617095527-7583fe46ca7d17 Jun 2026 pre-releaseNothing published for this version
-
v1.9.017 Jun 2026Release notes
Open source →Changelog
Container images
docker.io/fluxcd/kustomize-controller:v1.9.0ghcr.io/fluxcd/kustomize-controller:v1.9.0
Supported architectures:
linux/amd64,linux/arm64andlinux/arm/v7.The container images are built on GitHub hosted runners and are signed with cosign and GitHub OIDC.
To verify the images and their provenance (SLSA level 3), please see the security documentation.Release notes
Open source →Release date: 2026-06-17
This minor release comes with new features for post-build variable substitution, drift detection, SOPS decryption and Kustomize build metadata, along with various bug fixes and dependency updates.
Kustomization
Post-build substitutions are now stricter by default: the controller fails the reconciliation when a variable without a default value is referenced in the manifests but is missing from the input vars. This behavior is controlled by the
StrictPostBuildSubstitutionsfeature gate, which is now enabled by default and can be opted out of. In addition, a new.spec.postBuild.substituteStrategy: Alwaysoption was introduced to always perform substitutions even when no variables are defined, which is useful when the substitution expressions all carry defaults (e.g.${var:=default}).Drift detection can now be fine-tuned with ignore rules. The new
.spec.ignorefield accepts a list of rules selecting JSON pointer paths (optionally scoped to specific targets) to exclude from both drift detection and the apply process.A new
.spec.buildMetadatafield allows enabling Kustomize build metadata annotations per Kustomization, supporting theoriginAnnotationsandtransformerAnnotationsoptions.The controller now keeps resources that failed to be pruned in the
.status.inventory, ensuring they remain tracked and can be retried on the next reconciliation instead of becoming untracked orphans.SOPS decryption
SOPS decryption now supports generic Kubernetes workload identity for the OpenBao/Vault transit engine, allowing the controller to authenticate to OpenBao by exchanging a Kubernetes ServiceAccount token for a short-lived OpenBao token through a JWT-backed auth method, instead of using a static token. This is purely additive and non-breaking: the existing
sops.vault-tokenSecret andVAULT_TOKENenvironment variable paths are unchanged and take precedence.Age and SOPS have also been updated to support Age hybrid post-quantum encryption.
General updates
In addition, the Kubernetes dependencies have been updated to v1.36, the controller is now built with Go 1.26 and the source-controller API has been upgraded to v1.9.0. The shared
DependencyReferencetype was migrated to theapis/metapackage, preserving backward compatibility through a type alias.Fixes:
- Keep failed-to-prune resources in
.status.inventory#1665
Improvements:
- Enable
StrictPostBuildSubstitutionsby default #1671 - Introduce
substituteStrategy: Always#1672 - Add support for drift detection ignore rules #1627
- Add
.spec.buildMetadataoptional field to Kustomization API #1632 - Introduce generic Kubernetes workload identity for SOPS OpenBao/Vault #1659
- Update Age and SOPS for Age post-quantum cypher #1601
- Migrate
DependencyReferenceto sharedapis/metatype #1656 - Update to Kubernetes 1.36 and Go 1.26 #1660
- Upgrade source-controller API to v1.9.0 #1674
- Various dependency updates #1661 #1662 #1666 #1667 #1668 #1669
-
v1.8.512 May 2026Release notes
Open source →Release date: 2026-05-12
This patch release fixes a regression in the management of objects annotated with
kustomize.toolkit.fluxcd.io/ssa: IfNotPresentwhere non-namespaced resources were being deleted and recreated on each reconciliation.Fixes:
- Fix management of skipped objects #1651
Improvements:
- Update fluxcd/pkg dependencies #1648
-
v1.8.421 Apr 2026Release notes
Open source →Release date: 2026-04-21
This patch release introduces the
MigrateAPIVersionfeature gate for migrating the API version of resources in managed field entries, which fixes errors likedry-run failed: .spec.accessPolicy: field not declared in schema.Improvements:
-
v1.8.307 Apr 2026Release notes
Open source →Release date: 2026-04-07
This patch release fixes a race condition where a cancelled reconciliation could leave stale data in the cache, causing Kustomizations to get stuck.
Fixes:
- Requeue on cancellation to avoid stale cache race condition #1625
-
v1.8.212 Mar 2026Release notes
Open source →Release date: 2026-03-12
This patch release fixes reconciliation queue behavior for source watch events while a Kustomization is already reconciling the watched revision.
Fixes:
- Fix enqueing the same revision while reconciling #1614
Improvements:
-
v1.8.127 Feb 2026Release notes
Open source →Release date: 2026-02-27
This patch release fixes health check logic for StatefulSets during rolling updates when the Pods are Pending/Unschedulable.
Fixes:
- Fix health check logic for StatefulSets during rolling updates #1602
Improvements:
-
v1.8.1-0.20260608095937-a717cf67977e08 Jun 2026 pre-releaseNothing published for this version
-
v1.8.1-0.20260603084349-8b08db6bb3f903 Jun 2026 pre-releaseNothing published for this version
-
v1.8.1-0.20260528103545-617fc777455028 May 2026 pre-releaseNothing published for this version
-
v1.8.1-0.20260502070754-da475fd5025402 May 2026 pre-releaseNothing published for this version
-
v1.8.1-0.20260416095817-69c051b9723416 Apr 2026 pre-releaseNothing published for this version
-
v1.8.1-0.20260330114947-877e66476de330 Mar 2026 pre-releaseNothing published for this version
-
v1.8.1-0.20260312104050-d1cd9b2ed48b12 Mar 2026 pre-releaseNothing published for this version
-
v1.8.1-0.20260225120114-2d4561100b7425 Feb 2026 pre-releaseNothing published for this version
-
v1.8.018 Feb 2026Release notes
Open source →Release date: 2026-02-17
This minor release comes with various bug fixes and improvements.
⚠️ The
v1beta2APIs were removed. Before upgrading the CRDs, Flux users must runflux migrateto migrate the cluster storage offv1beta2.Kustomization
The controller now cancels in-progress health checks when a new reconciliation request is received, reducing the mean time to recovery (MTTR) in case of failed deployments. This is available through the
CancelHealthCheckOnNewRevisionfeature gate, that previously worked only for new source revisions but now also works for any watch events that trigger a new reconciliation.A custom SSA stage has been introduced, allowing Role and RoleBinding objects to be applied in the same call even when the impersonated ServiceAccount does not have a ClusterRoleBinding for
cluster-admin. This can be specified with the flag--custom-apply-stage-kinds=rbac.authorization.k8s.io/Role.Health checks now handle Jobs with TTL set to zero seconds that are deleted before or during health checking.
A
DirectSourceFetchfeature gate has been added to bypass cache for source objects, enabling immediate consistency for source object reads.General updates
In addition, the Kubernetes dependencies have been updated to v1.35.0, Kustomize has been updated to v5.8.1 and the controller is now built with Go 1.26.
Fixes:
- Fix decryptor copy of auth.Option slices (avoid overrides) #1570
Improvements:
- Reduce the mean time to recovery (MTTR) in case of failed deployments #1536
- Introduce custom SSA stage #1571
- Handle Jobs with TTL in health checks #1578
- Add
DirectSourceFetchfeature gate to bypass cache for source objects #1586 - Remove deprecated APIs in group
kustomize.toolkit.fluxcd.io/v1beta2#1584 - Various dependency updates #1566 #1572 #1575 #1581 #1585 #1588 #1589
-
v1.7.319 Nov 2025Release notes
Open source →Release date: 2025-11-19
This patch release comes with a series of bug fixes, including Azure Workload Identity in Azure China Cloud. It also adds a feature gate to disable the ConfigMap and Secret watchers,
DisableConfigWatchers.Fixes:
Improvements:
-
v1.7.228 Oct 2025Release notes
Open source →Release date: 2025-10-28
This patch release allows running kustomize-controller on the same loopback interface as source-watcher.
Improvements:
- Allow fetching artifacts from a local source-watcher #1539
-
v1.7.108 Oct 2025Release notes
Open source →Release date: 2025-10-08
This patch release comes with various dependency updates.
The controller is now built with Go 1.25.2 which includes fixes for vulnerabilities in the Go stdlib: CVE-2025-58183, CVE-2025-58188 and many others. The full list of security fixes can be found here.
Improvements:
- Update dependencies to Kubernetes v1.34.1 and Go 1.25.2 #1530
-
v1.7.1-0.20260216202630-57504a2730a816 Feb 2026 pre-releaseNothing published for this version
-
v1.7.1-0.20251119103016-5cad3888804919 Nov 2025 pre-releaseNothing published for this version
-
v1.7.1-0.20251028131911-a8c7cc16be6028 Oct 2025 pre-releaseNothing published for this version
-
v1.7.1-0.20251028095703-59c98e29b92a28 Oct 2025 pre-releaseNothing published for this version
-
v1.7.1-0.20251009105437-d1925bfa02b609 Oct 2025 pre-releaseNothing published for this version
-
v1.7.1-0.20251008173229-88582e34ed8308 Oct 2025 pre-releaseNothing published for this version
-
v1.7.1-0.20250925154137-bab9b450314925 Sep 2025 pre-releaseNothing published for this version
-
v1.7.025 Sep 2025Release notes
Open source →Release date: 2025-09-24
This minor release comes with various bug fixes and improvements.
⚠️ The
v1beta1APIs were removed. Before upgrading the CRDs, Flux users must runflux migrateto migrate the cluster storage offv1beta1.The Kustomization API now supports reconciling content from external storage systems through the new
ExternalArtifactCRD. This feature is controlled by theExternalArtifactfeature gate and enables reconciliation of artifacts stored outside of Git repositories.Kustomizations now track their reconciliation history in
.status.history, providing visibility into past reconciliation attempts and their outcomes.Dependencies can now be evaluated using CEL expressions through the new
readyExprfield independsOn. This feature is controlled by theAdditiveCELDependencyCheckfeature gate and allows for more flexible dependency readiness checks.The controller now supports global SOPS Age key decryption, allowing centralized management of decryption keys.
Support for workload identity authentication has been added for remote clusters. This is support both at the controller and object levels. For object-level, enable the feature gate
ObjectLevelWorkloadIdentity.The new
.spec.ignoreMissingComponentsfield allows Kustomizations to continue reconciliation even when referenced components are missing, providing more resilient deployments.A feature gate
CancelHealthCheckOnNewRevisionhas been added to cancel ongoing health checks when a new revision is detected.In addition, the Kubernetes dependencies have been updated to v1.34, Kustomize has been updated to v5.7 and various other controller dependencies have been updated to their latest version. The controller is now built with Go 1.25.
Fixes:
- Fix skipped entries from SSA being stored in the inventory #1513
Improvements:
- [RFC-0010] Add workload identity authentication for remote clusters #1476
- [RFC-0010] Add multi-tenancy lockdown for decryption and kubeconfig #1495
- [RFC-0010] Add object-level configuration validation #1497
- [RFC-0010] Add support for all Azure clouds for remote cluster authentication #1488
- [RFC-0012] Add support for ExternalArtifact source type #1508
- Add reconciliation history tracking in Kustomization status #1502
- Add CEL expressions for dependency readiness evaluation #1491
- Add
.spec.ignoreMissingComponentsfield to Kustomization API #1507 - Add global SOPS Age key decryption support #1481
- Add label selector for watching ConfigMaps and Secrets #1486
- Add feature gate to cancel health checks on new revisions #1520
- Refactor reconciler to use staged server-side apply #1484
- Remove deprecated APIs in group
kustomize.toolkit.fluxcd.io/v1beta1#1494 - CI improvements with
fluxcd/gha-workflows#1512 #1514 - Various dependency updates #1470 #1505 #1511 #1515
-
v1.7.0-rc.106 Sep 2025 pre-releaseNothing published for this version
-
v1.6.108 Jul 2025Release notes
Open source →Release date: 2025-07-08
This patch release fixes a bug introduced in v1.6.0 that causes SOPS decryption with US Government KMS keys to fail with the error:
STS: AssumeRoleWithWebIdentity, https response error\n StatusCode: 0, RequestID: , request send failed, Post\n \"https://sts.arn.amazonaws.com/\": dial tcp: lookupts.arn.amazonaws.com on 10.100.0.10:53: no such hostFixes:
- Fix regression in STS endpoint for SOPS decryption with AWS KMS in US Gov partition #1478
-
v1.6.1-0.20250830132432-2e9eb7c9fd1030 Aug 2025 pre-releaseNothing published for this version
-
v1.6.1-0.20250718072547-8ec3ec388dcb18 Jul 2025 pre-releaseNothing published for this version
-
v1.6.1-0.20250708172506-52170876d58b08 Jul 2025 pre-releaseNothing published for this version
-
v1.6.1-0.20250708091448-f479c3e1f60c08 Jul 2025 pre-releaseNothing published for this version
-
v1.6.1-0.20250707102531-5703d47395a207 Jul 2025 pre-releaseNothing published for this version
-
v1.6.1-0.20250528134619-9f784c5e9fa828 May 2025 pre-releaseNothing published for this version
-
v1.6.028 May 2025Release notes
Open source →Release date: 2025-05-28
This minor release comes with various bug fixes and improvements.
Kustomization API now supports object-level workload identity by setting
.spec.decryption.serviceAccountNameto the name of a service account in the same namespace that has been configured with appropriate cloud permissions. For this feature to work, the controller feature gateObjectLevelWorkloadIdentitymust be enabled. See a complete guide here.Kustomization API now supports the value
WaitForTerminationfor the.spec.deletionPolicyfield. This instructs the controller to wait for the deletion of all resources managed by the Kustomization before allowing the Kustomization itself to be deleted. See docs here.In addition, the Kubernetes dependencies have been updated to v1.33 and various other controller dependencies have been updated to their latest version. The controller is now built with Go 1.24.
Fixes:
- Fix performance regression due to using client without cache #1436
- Fix secret value showing up in logs #1372
Improvements:
-
v1.5.125 Feb 2025Release notes
Open source →Release date: 2025-02-25
This patch release fixes a bug introduced in v1.5.0 that was causing spurious logging for deprecated API versions and sometimes failures on health checks.
In addition, all error logs resulting from SOPS decryption failures have been sanitised.
Fixes:
-
v1.5.1-0.20250528105354-24e54da3cf5b28 May 2025 pre-releaseNothing published for this version
-
v1.5.1-0.20250225152046-dc0e5853c06d25 Feb 2025 pre-releaseNothing published for this version
-
v1.5.1-0.20250225135009-c353f1e5321e25 Feb 2025 pre-releaseNothing published for this version
-
v1.5.1-0.20250218183000-444b8d265e2e18 Feb 2025 pre-releaseNothing published for this version
-
v1.5.018 Feb 2025Release notes
Open source →Release date: 2025-02-18
This minor release comes with various bug fixes and improvements.
The controller has been updated to Kustomize v5.6, please see the
kubernetes-sigs/kustomizechangelog for more details.The Kustomization API now supports custom health checks for Custom Resources through Common Expression Language (CEL) expressions. See docs.
The controller now sends an origin revision from OCI artifact annotations to notification-controller on events, which is useful for updating commit statuses on the notification providers that support this feature. See docs.
It is now also possible to control whether or not kustomize-controller will orphan resources when a Kustomization is deleted. See docs.
In addition, the Kubernetes dependencies have been updated to v1.32.1 and various other controller dependencies have been updated to their latest version.
Fixes:
- Clarify precedence in Kustomization substituteFrom #1301
- Remove deprecated object metrics from controllers #1305
Improvements:
- Enable decryption of secrets generated by Kustomize components #1283
- Added decryption of Kustomize patches and refactor SOPS tests #1286
- Allow control of finalization garbage collection #1314
- Add OCI revision to events #1338
- [RFC-0009] Add CEL custom healthchecks #1344
- Add GroupChangeLog feature gate to fix es indexing cardinality #1361
- Various dependency updates #1302 #1304 #1310 #1313 #1318 #1320 #1330 #1348 #1352 #1354 #1359 #1362 #1364 #1358
-
v1.4.1-0.20250218132253-fc2a95e2d55318 Feb 2025 pre-releaseNothing published for this version
-
v1.4.1-0.20241206144105-9d65ff8c76f406 Dec 2024 pre-releaseNothing published for this version
-
v1.4.1-0.20241204085148-933ef1f1d72804 Dec 2024 pre-releaseNothing published for this version
-
v1.4.1-0.20241112090141-29080cbd8cd512 Nov 2024 pre-releaseNothing published for this version
-
v1.4.1-0.20240927165611-d7bad03364cf27 Sep 2024 pre-releaseNothing published for this version
-
v1.4.027 Sep 2024Release notes
Open source →Release date: 2024-09-27
This minor release comes with various bug fixes and improvements.
kustomize-controller in sharded deployment configuration now supports cross-shard dependency check. This allows a Kustomization to depend on other Kustomizations managed by different controller shards.
In addition, the Kubernetes dependencies have been updated to v1.31.1 and various other controller dependencies have been updated to their latest version. The controller is now built with Go 1.23.
Fixes:
- Fix incorrect use of format strings with the conditions package. #1198
Improvements:
-
v1.3.1-0.20240927140048-72ae7db334b027 Sep 2024 pre-releaseNothing published for this version