Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,86 @@

All notable changes to this project are documented in this file.

## 1.9.0

**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
`StrictPostBuildSubstitutions` feature gate, which is now enabled by default and
can be opted out of. In addition, a new `.spec.postBuild.substituteStrategy: Always`
option 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.ignore`
field 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.buildMetadata` field allows enabling Kustomize build metadata
annotations per Kustomization, supporting the `originAnnotations` and
`transformerAnnotations` options.

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-token` Secret and `VAULT_TOKEN`
environment 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 `DependencyReference` type was migrated to the `apis/meta` package,
preserving backward compatibility through a type alias.

Fixes:
- Keep failed-to-prune resources in `.status.inventory`
[#1665](https://github.com/fluxcd/kustomize-controller/pull/1665)

Improvements:
- Enable `StrictPostBuildSubstitutions` by default
[#1671](https://github.com/fluxcd/kustomize-controller/pull/1671)
- Introduce `substituteStrategy: Always`
[#1672](https://github.com/fluxcd/kustomize-controller/pull/1672)
- Add support for drift detection ignore rules
[#1627](https://github.com/fluxcd/kustomize-controller/pull/1627)
- Add `.spec.buildMetadata` optional field to Kustomization API
[#1632](https://github.com/fluxcd/kustomize-controller/pull/1632)
- Introduce generic Kubernetes workload identity for SOPS OpenBao/Vault
[#1659](https://github.com/fluxcd/kustomize-controller/pull/1659)
- Update Age and SOPS for Age post-quantum cypher
[#1601](https://github.com/fluxcd/kustomize-controller/pull/1601)
- Migrate `DependencyReference` to shared `apis/meta` type
[#1656](https://github.com/fluxcd/kustomize-controller/pull/1656)
- Update to Kubernetes 1.36 and Go 1.26
[#1660](https://github.com/fluxcd/kustomize-controller/pull/1660)
- Upgrade source-controller API to v1.9.0
[#1674](https://github.com/fluxcd/kustomize-controller/pull/1674)
- Various dependency updates
[#1661](https://github.com/fluxcd/kustomize-controller/pull/1661)
[#1662](https://github.com/fluxcd/kustomize-controller/pull/1662)
[#1666](https://github.com/fluxcd/kustomize-controller/pull/1666)
[#1667](https://github.com/fluxcd/kustomize-controller/pull/1667)
[#1668](https://github.com/fluxcd/kustomize-controller/pull/1668)
[#1669](https://github.com/fluxcd/kustomize-controller/pull/1669)

## 1.8.5

**Release date:** 2026-05-12
Expand Down
2 changes: 1 addition & 1 deletion config/manager/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ resources:
images:
- name: fluxcd/kustomize-controller
newName: fluxcd/kustomize-controller
newTag: v1.8.0
newTag: v1.9.0
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ require (
github.com/cyphar/filepath-securejoin v0.6.1
github.com/dimchansky/utfbom v1.1.1
github.com/fluxcd/cli-utils v1.2.1
github.com/fluxcd/kustomize-controller/api v1.8.0
github.com/fluxcd/kustomize-controller/api v1.9.0
github.com/fluxcd/pkg/apis/acl v0.10.0
github.com/fluxcd/pkg/apis/event v0.27.0
github.com/fluxcd/pkg/apis/kustomize v1.19.0
Expand Down
Loading