Releases: kluctl/kluctl
kluctl-v2.20.4
Kluctl v2.20.4 is a patch release with fixes only.
Changelog
- c8e8769 feat: Allow to specify controller args and env vars
- 5940b8a fix: Actually write errors and not only error count into status
- 22872a9 fix: Check for proper suffix when deciding on imagePullPolicy: Always
- 23af9d8 fix: Use absolute version of --project-dir (#537)
- 9e023b7 fix: Use runtime.RawExtension for deploy/prune/validate results
kluctl-v2.20.3
Kluctl v2.20.3 is a patch release with fixes only.
Changelog
kluctl-v2.20.2
kluctl-v2.20.1
Kluctl v2.20.1 comes with improvements, fixes and breaking changes.
New Kluctl Controller
Starting with this release, the new Kluctl Controller is integrated into the Kluctl project and binary, instead of providing it through an external project. The legacy flux-kluctl-controller gets deprecated via this release. v0.16.x is the last major release of the legacy controller that maintains compatibility to Kluctl.
This also deprecates the Helm Chart found here and introduces two new ways of deploying/installing the controller. Please read the installation instructions.
In case you were already using the legacy controller, make sure to also read and follow the migration instructions.
Breaking changes
- The output format of
-o yaml=file.yaml
has been completely redesigned. This however was and still is considered internal API. - As announced in the v2.19.0 release, querying registries for latest versions has been removed from Kluctl
- As announced in the v2.19.0 release, the
targetConfig
has been removed from targets - As announced in the v2.17.0 release, external
args
declarations are now only possible in.kluctl.yaml
- As announced in the v2.16.0 release,
dynamicArgs
has been removed from the target config - The
kluctl flux
subcommands have been removed and will be replaced in a future release with commands compatible to the new Kluctl Controller
Features and improvements
- barriers can now show custom messages to indicate what its waiting on
- ignoreForDiff now accepts regex based path matchers
- commonAnnotations can now be specified in
deployment.yaml
- [clusterConfigMap/clusterSecret] now supports configuring the
targetPath
- All files involved in Kustomize depoyments can now be SOPS encrypted
Changelog
- 37a61b1 chore(deps): Bump actions/checkout from 2 to 3 (#338)
- 794a682 chore(deps): Bump actions/setup-go from 3 to 4 (#377)
- 832624c chore(deps): Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity (#497)
- 2c5b0f9 chore(deps): Bump github.com/Masterminds/semver/v3 from 3.2.0 to 3.2.1 (#402)
- 3f60190 chore(deps): Bump github.com/aws/aws-sdk-go-v2/config (#321)
- e2ac702 chore(deps): Bump github.com/aws/aws-sdk-go-v2/config (#332)
- 6cc003b chore(deps): Bump github.com/aws/aws-sdk-go-v2/config (#376)
- 080ac65 chore(deps): Bump github.com/aws/aws-sdk-go-v2/config (#434)
- 6b9590e chore(deps): Bump github.com/aws/aws-sdk-go-v2/config (#459)
- 9fd93f4 chore(deps): Bump github.com/aws/aws-sdk-go-v2/config (#471)
- 31d87eb chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#318)
- d16793f chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#336)
- 8b6df3b chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#381)
- 4ee6d5e chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#435)
- 4c1edff chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#456)
- 7af7c84 chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#483)
- aeb437a chore(deps): Bump github.com/bitnami-labs/sealed-secrets (#319)
- 7701039 chore(deps): Bump github.com/bitnami-labs/sealed-secrets (#441)
- 786baf4 chore(deps): Bump github.com/bitnami-labs/sealed-secrets (#480)
- f818c01 chore(deps): Bump github.com/docker/distribution (#476)
- a967836 chore(deps): Bump github.com/fluxcd/pkg/kustomize from 0.13.0 to 0.13.1 (#320)
- 5585827 chore(deps): Bump github.com/fluxcd/pkg/kustomize from 0.13.1 to 0.13.2 (#355)
- b87cc3e chore(deps): Bump github.com/fluxcd/pkg/kustomize from 0.13.2 to 1.1.1 (#444)
- eff52e7 chore(deps): Bump github.com/go-git/go-git/v5 from 5.6.0 to 5.6.1 (#380)
- b292ea2 chore(deps): Bump github.com/go-git/go-git/v5 from 5.6.1 to 5.7.0 (#502)
- 1379ed7 chore(deps): Bump github.com/go-playground/validator/v10 (#408)
- 809c154 chore(deps): Bump github.com/go-playground/validator/v10 (#453)
- 1fb3178 chore(deps): Bump github.com/go-playground/validator/v10 (#492)
- bebde01 chore(deps): Bump github.com/golang-jwt/jwt/v4 from 4.4.3 to 4.5.0 (#331)
- 751a0f1 chore(deps): Bump github.com/google/go-containerregistry (#462)
- da97e25 chore(deps): Bump github.com/google/go-containerregistry (#482)
- f35f839 chore(deps): Bump github.com/hashicorp/go-retryablehttp (#496)
- 9162ce9 chore(deps): Bump github.com/hashicorp/vault/api from 1.8.3 to 1.9.0 (#312)
- 9707543 chore(deps): Bump github.com/hashicorp/vault/api from 1.9.0 to 1.9.1 (#445)
- b8af67f chore(deps): Bump github.com/hashicorp/vault/api from 1.9.1 to 1.9.2 (#513)
- fcbe789 chore(deps): Bump github.com/imdario/mergo from 0.3.13 to 0.3.14 (#379)
- fb20232 chore(deps): Bump github.com/imdario/mergo from 0.3.14 to 0.3.15 (#403)
- c01a2f6 chore(deps): Bump github.com/imdario/mergo from 0.3.15 to 0.3.16 (#514)
- 7daec34 chore(deps): Bump github.com/mattn/go-isatty from 0.0.17 to 0.0.18 (#401)
- 8faca6e chore(deps): Bump github.com/mattn/go-isatty from 0.0.18 to 0.0.19 (#493)
- 8be6ec2 chore(deps): Bump github.com/ohler55/ojg from 1.17.4 to 1.17.5 (#329)
- 7eb0d51 chore(deps): Bump github.com/ohler55/ojg from 1.17.5 to 1.18.4 (#392)
- a583a31 chore(deps): Bump github.com/ohler55/ojg from 1.18.4 to 1.18.5 (#443)
- 211d65e chore(deps): Bump github.com/ohler55/ojg from 1.18.5 to 1.18.6 (#508)
- 5b41ff8 chore(deps): Bump github.com/onsi/gomega from 1.26.0 to 1.27.0 (#323)
- 899bb32 chore(deps): Bump github.com/onsi/gomega from 1.27.0 to 1.27.1 (#327)
- 61ad1cc chore(deps): Bump github.com/onsi/gomega from 1.27.1 to 1.27.2 (#341)
- 9aeb4b8 chore(deps): Bump github.com/onsi/gomega from 1.27.2 to 1.27.3 (#361)
- f8d707b chore(deps): Bump github.com/onsi/gomega from 1.27.3 to 1.27.4 (#370)
- 5f35922 chore(deps): Bump github.com/onsi/gomega from 1.27.6 to 1.27.7 (#489)
- bb95b82 chore(deps): Bump github.com/otiai10/copy from 1.10.0 to 1.11.0 (#433)
- 780d132 chore(deps): Bump github.com/otiai10/copy from 1.9.0 to 1.10.0 (#398)
- f927c26 chore(deps): Bump github.com/sergi/go-diff from 1.2.0 to 1.3.1 (#465)
- 87b267a chore(deps): Bump github.com/sirupsen/logrus from 1.9.0 to 1.9.2 (#485)
- a5700bb chore(deps): Bump github.com/spf13/cobra from 1.6.1 to 1.7.0 (#442)
- 62b305c chore(deps): Bump github.com/spf13/viper from 1.15.0 to 1.16.0 (#520)
- 572c96a chore(deps): Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#337)
- 38f09f0 chore(deps): Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#488)
- 483e6f5 chore(deps): Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 (#521)
- c3d59bc chore(deps): Bump golang.org/x/crypto from 0.6.0 to 0.7.0 (#362)
- f9a5c0e chore(deps): Bump golang.org/x/crypto from 0.8.0 to 0.9.0 (#473)
- 2523d39 chore(deps): Bump golang.org/x/net from 0.6.0 to 0.7.0 (#317)
- caf94ea chore(deps): Bump golang.org/x/net from 0.8.0 to 0.9.0 (#432)
- 13e4640 chore(deps): Bump golang.org/x/net from 0.9.0 to 0.10.0 (#467)
- 7ce6b68 chore(deps): Bump golang.org/x/sync from 0.1.0 to 0.2.0 (#455) 8000
- b47e543 chore(deps): Bump golang.org/x/sys from 0.5.0 to 0.6.0 (#358)
- 1012a95 chore(deps): Bump golang.org/x/term from 0.6.0 to 0.7.0 (#431)
- 7d39bb7 chore(deps): Bump golang.org/x/term from 0.7.0 to 0.8.0 (#457)
- a8452df chore(deps): Bump golang.org/x/text from 0.8.0 to 0.9.0 (#397)
- faeff08 chore(deps): Bump helm.sh/helm/v3 from 3.11.1 to 3.11.2 (#364)
- 22ae21c chore(deps): Bump helm.sh/helm/v3 from 3.11.3 to 3.12.0 (#475)
- fbfdd91 chore(deps): Bump k8s.io/api from 0.26.1 to 0.26.2 (#342)
- e44bcc2 chore(deps): Bump k8s.io/api from 0.27.1 to 0.27.2 (#487)
- ee89808 chore(deps): Bump k8s.io/apiextensions-apiserver from 0.26.1 to 0.26.2 (#356)
- 6effa40 chore(deps): Bump k8s.io/apiextensions-apiserver from 0.26.2 to 0.26.3 (#385)
- 731f36f chore(deps): Bump k8s.io/apimachinery from 0.26.1 to 0.26.2 (#344)
- 5148c8f chore(deps): Bump k8s.io/apimachinery from 0.26.3 to 0.27.0 (#399)
- a498727 chore(deps): Bump k8s.io/apimachinery from 0.27.0 to 0.27.1 (#410)
- cf46767 chore(deps): Bump k8s.io/client-go from 0.26.1 to 0.26.2 (#343)
- 4e2dff2 chore(deps): Bump k8s.io/client-go from 0.26.2 to 0.26.3 (#383)
- c6475a2 chore(deps): Bump k8s.io/client-go from 0.27.1 to 0.27.2 (#490)
- d80d25d chore(deps): Bump k8s.io/klog/v2 from 2.90.0 to 2.90.1 (#371)
- 60886ec chore(deps): Bump k8s.io/klog/v2 from 2.90.1 to 2.100.1 (#454)
- 67fdb4b chore(deps): Bump sigs.k8s.io/controller-runtime from 0.14.4 to 0.14.5 (#357)
- 71748e3 chore(deps): Bump sigs.k8s.io/kustomize/api from 0.13.2 to 0.13.4 (#472)
- c1b5990 chore(deps): Bump sigs.k8s.io/kustomize/kyaml from 0.14.1 to 0.14.2 (#460)
- 25b32ff feat: Add CommandResultSummary
- a6a9b07 feat: Add ProjectSummary and GitInfo
- dfec936 feat: Add ability to include custom message in barriers (#506)
- f6e30a1 feat: Add controller install sub-command
- 1ac87b7 feat: Add embedded controller deployment
- 01370ab feat: Add full target object to result summary
- 480fbd0 feat: Add info about the command to CommandResult
- 1ad8778 feat: Add rendered objects/inlucdes/vars to types
- 29d1abd feat: Add start/end time to CommandResult
- c5ea949 feat: Add start/stop time to validation results
- cfaa342 feat: Allow .templateignore files in parent folders (#437)
- 07bedd0 feat: Allow to override kubeconfig and context
- 1b833d2 feat: Allow to specify regex based path in ignoreForDiff
- 5335ca5 feat: Automatically record results to the kluctl-results namespace
- 17918da...
kluctl-v2.19.4
Kluctl v2.19.4 is a patch release with fixes only.
Changelog
- 5417183 feat: Allow .templateignore files in parent folders (#437)
- 3efcc8a feat: Allow to specify regex based path in ignoreForDiff
- 0d492ac feat: Upgrade go-jinja2 to latest main branch to implement sha256 prefix_length (#429)
- 606421a fix: Add support for all known default SSH keys (#428)
- f00f2d7 fix: Don't perform version check in completion command (#448)
- 7b1978c fix: Fix --ignore-tags to actually work
- 19c5372 fix: Fix .git-credentials checking/loading/matching (#386)
- e08434a fix: Fix empty label selectors
- 109ada4 fix: Fix error message when apply gets cancelled
- eba8021 fix: Fix multiple issues with normalization found while implementing tests
- 9fe3dc5 fix: GetNestedObject should not treat nil fields as not found
- 7a2c27f fix: Honor ignore-conflicts even if force-apply is active for a field (#387)
- 5f5b756 fix: Ignore ESC in readLine (#439)
- 3310374 fix: Normalize float64 values to be interpreted as ints if possible
- ec32e5c fix: Pin markdown-link-check to 3.10.3 until the latest version gets fixed (#400)
- 69b3c9f fix: Revert handling - as "simple identifier" when building a json path (#409)
- e79a26c fix: Trim spaces when extracting hook annotations (#359)
- 6212102 fix: Upgrade go-jinja2 to get in fixes for to_yaml and get_var (#360)
kluctl-v2.19.3
kluctl-v2.19.2
kluctl-v2.19.1
kluctl-v2.19.0
Kluctl v2.19.0 comes with improvements, fixes and breaking changes.
Breaking changes
- All functionality around the querying of image registries for the latest tag/version has been deprecated and will be removed in the next (v2.20.0) release. Please use fixed images to pin all images to a defined version.
- All functionality around
targetConfig
inside target definitions and dynamic targets has been deprecated and will be removed in the next (v2.20.0) release. Please use git includes and git variable sources as replacements. - This release introduces discriminators and stops using
commonLabels
to identify orphaned objects. Instead, the labelkluctl.io/discriminator
with the rendereddiscriminator
from the target is used. - Helm Charts must either be pre-pulled from now on or have
skipPrePull: true
set inhelm-chart.yaml
. - The
kluctl.io/kustomize_dir
annotation has been renamed tokluctl.io/deployment-item-dir
, which will cause a one-time change of all objects. - The Kluctl docker image is now based on Alpine instead of Debian.
Features and improvements
- Deployment items and variable sources can now have a
when
field with a conditional expression. --local-git-group-override
can now be used to override a whole group of git projects.helm-chart.yaml
now supports skipPrePull, which allows to disable pre-pulling of individual charts via kluctl helm-pull.- Fixed images can now be provided via variables and variable sources. See global images variable for details.
Changelog
- 8a599de Revert "chore: Download kubebuilder-tools for windows from kubebuilder-tools-releases-windows repo"
- b5ac473 chore(deps): Bump github.com/aws/aws-sdk-go-v2/config (#277)
- fc14969 chore(deps): Bump github.com/aws/aws-sdk-go-v2/config (#283)
- e7ac7c1 chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#271)
- 6f132f7 chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#292)
- 94acf99 chore(deps): Bump github.com/bitnami-labs/sealed-secrets (#263)
- c07afbb chore(deps): Bump github.com/fluxcd/pkg/kustomize from 0.12.0 to 0.13.0 (#294)
- b50bac1 chore(deps): Bump github.com/go-playground/validator/v10 (#284)
- da919e0 chore(deps): Bump github.com/google/go-containerregistry (#306)
- 5f8a882 chore(deps): Bump github.com/hashicorp/vault/api from 1.8.2 to 1.8.3 (#308)
- 4710e34 chore(deps): Bump github.com/ohler55/ojg from 1.16.0 to 1.17.3 (#274)
- dd4d92e chore(deps): Bump github.com/ohler55/ojg from 1.17.3 to 1.17.4 (#300)
- 00a4aa3 chore(deps): Bump github.com/spf13/viper from 1.14.0 to 1.15.0 (#293)
- 71c5825 chore(deps): Bump golang.org/x/crypto from 0.5.0 to 0.6.0 (#310)
- 93d3466 chore(deps): Bump golang.org/x/net from 0.5.0 to 0.6.0 (#305)
- 8082e89 chore(deps): Bump golang.org/x/sys from 0.4.0 to 0.5.0 (#298)
- 6ca2413 chore(deps): Bump golang.org/x/term from 0.4.0 to 0.5.0 (#297)
- 7b01910 chore(deps): Bump helm.sh/helm/v3 from 3.10.3 to 3.11.1 (#311)
- 521c62d chore(deps): Bump k8s.io/apiextensions-apiserver from 0.26.0 to 0.26.1 (#286)
- e99b006 chore(deps): Bump k8s.io/klog/v2 from 2.80.1 to 2.90.0 (#299)
- 086645a chore(deps): Bump sigs.k8s.io/controller-runtime from 0.14.1 to 0.14.4 (#307)
- 143c726 feat: Allow to load variables without overriding previously loaded variables (#230)
- 7417b33 feat: Deprecate check-image-updates command
- e335213 feat: Deprecate dynamic targets
- 01a03d5 feat: Deprecate fixed images from external targetConfig
- 9c19fd9 feat: Deprecate querying latest image tag from registries
- 08baf43 feat: Deprecate targetConfig
- ef4bf54 feat: Implement "when" conditional for variable sources
- 4bba601 feat: Implement --local-git-group-override with group match on repo path (#273)
- ce578df feat: Implement deployment/target discriminator
- 01acac9 feat: Implement skipPrePull for helm-chart.yaml (#289)
- cf5930d feat: Implement when conditionals
- 0b0f727 feat: Remove broken support for branch overriding
- b34e771 feat: Rename kluctl.io/kustomize_dir annotation to kluctl.io/deployment-item-dir
- 405b0b7 feat: Support fixed images configuration from vars
- e5ede94 feat: Switch to alpine for docker image
- 6676606 feat: Update deprecation warnings for feature that will be removed in the next release
- aa9f146 fix: Check corrent path when looking for overrides
- a347151 fix: Don't fail known_hosts verification when the key-type doesn't match (#287)
- e60ad8f fix: Fix NormalizedRepoKey() with non-default ports
- b5c5a36 fix: Fix onlyRender to actually not treat the path as deployment item
- f314e3e fix: Fix parsing in parseRepoOverride
- 4829488 fix: Load deprecated args from deployment.yaml after .kluctl.yaml
- 109d3a1 fix: Properly fail if target rendering fails 10 times
- 5bc357c fix: Respect IdentityAgent from SSH config (#280)
- 8aa562d fix: Show deprecation message for sealedSecrets config
- c3cbb70 fix: Upgrade go-jinja2 and go-embed-python to fix Alpine support
- 1253253 fix: findCommit did not account for tags
- 9ac3b0f improve subDir path validation (#279)
- ec62c31 refactor(vars): extract splitting of resource to a separate method
- 7ff58f8 refactor(vars): use aws arn parser in FakeAwsClientFactory
- 712804c refactor(vars): use aws arn parser when region is nil
kluctl-v2.18.4
Kluctl v2.18.4 is a patch release with fixes only.
Changelog
- 5a93717 chore(deps): Bump github.com/aws/aws-sdk-go-v2/service/secretsmanager
- 9ae4158 chore(deps): Bump github.com/mattn/go-isatty from 0.0.16 to 0.0.17
- 3e946de chore(deps): Bump github.com/ohler55/ojg from 1.15.0 to 1.16.0
- 404f185 chore(deps): Bump golang.org/x/crypto from 0.4.0 to 0.5.0
- f9951a9 chore(deps): Bump golang.org/x/net from 0.4.0 to 0.5.0
- 94b68e1 fix: Do not abort when errors occur in UpdateRemoteObjects
- 1a1e63c fix: Don't be too verbose about permission errors
- 6160c4a fix: Don't crash when encountering nil maps in SetNestedField
- 74ccf49 fix: Only query for known GroupKinds when calling validate
- 4678265 fix: Properly print errors/warnings without a ref