github kluctl/kluctl v2.15.0
kluctl-v2.15.0

latest releases: devel, v2.24.1, v2.24.0...
19 months ago

Kluctl v2.15.0 comes with improvements, fixes and breaking changes.

Features and improvements

  • kluctl render -t my-target and kluctl seal can now be run without contacting the target Kubernetes cluster. Simply pass --offline-kubernetes to these commands. This will however only work if no clusterConfigMap and no clusterSecret vars sources are used.
  • kluctl render now accepts the --print-all flag which simply prints all rendered manifests to stdout.
  • The -a flag of kluctl deploy and kluctl diff can now set nested arguments, e.g. kluctl deploy -t my-target -a my.nested.arg.
  • Values in the-a flag are now treated as yaml values (which also allows to pass complex json documents).
  • args defaults can now be complex/arbitrary yaml values, including nested dictionaries.
  • kluctl seal can now use a local certificates for sealing instead of fetching it from the target cluster. This allows offline sealing. Check the documentation for details.
  • Resources can now have the kluctl.io/delete: "true" annotation, instructing kluctl to delete the resource at deployment time.
  • You can now place .templateignore files into your deployment project. These contain the same patterns as found the well known .gitignore files. Files matching these patterns will then NOT be rendered anymore.

Deprecations

  • templateExcludes inside deployment.yaml is deprecated from now on and will be removed in a future version. Use .templateignore as an alternative.

Breaking changes

  • Sealed secrets (sealed by kluctl seal) will not track clusterIds anymore and instead track the public key hash. This will cause re-sealing whenever the certificate changes. This will also cause a re-seal of all secrets when called for the first time after the kluctl upgrade.
  • dynamicArgs do not support pattern anymore as this collides with the support of nested/complex args.
  • kluctl downscale has been completely removed. It turned out to be hard to maintain and limited in its use. You can use plain templating as an alternative instead and use an argument to enable/disable downscaling. The new kluctl.io/delete annotation will also help you delete resources whenever downscaling is requested this way.
  • The treatment of -a values as yaml causes incompatibilities in case true/false or numerical values are passed, as these are not treated as strings anymore. Wrap these with quotes to enforce them being strings.

Changelog

  • 2ee45fb feat: Add --offline-kubernetes flag to render command
  • b25579c feat: Add --offline-kubernetes flag to seal command
  • ce61477 feat: Add --print-all flag to render command
  • ad45352 feat: Allow children of dynamic args to be set via -a
  • 42e5a45 feat: Allow nested defaults for args
  • 864a0d6 feat: Allow to override certFile via command line
  • 1bf1c1a feat: Allow to specify certFile via target SealingConfig
  • 0ec1e7c feat: Enable time extension for jinja2 templating
  • 97bc348 feat: Implement kluctl.io/delete annotation
  • 0682af3 feat: Pass k8s client into Helm install commands
  • 9a38661 feat: Remove Helm from docker image
  • ac91c0a feat: Remove cluster-id from sealed secrets
  • 3704872 feat: Remove downscale command
  • 5f283c9 feat: Remove dynamicArgs pattern support
  • 0c9fede feat: Treat -a values as yaml
  • 1952338 feat: Upgrade go-jinja2 to add .templateignore support
  • 74ae3f7 feat: Write certificate hash to sealed secret and re-seal when it changes
  • 7e2b6b6 fix: Add new-line between diff tables
  • 7bb2a79 fix: Also treat --force-replace-on-error as --replace-on-error
  • 834c11f fix: Don't treat final error as formatted string
  • 90d639b fix: Don't use user.Current() on Linux/Mac as it requires CGO/$USER
  • b844b86 fix: Don'tr treat string array arguments as CSV
  • 8606733 fix: Enable colored output in windows
  • e6c028c fix: Fix diff after downscale
  • 2ee4209 fix: Remove traces of Helm installation from Dockerfile
  • 80df7d1 fix: Upgrade go-jinja2
  • 26ebb32 fix: Upgrade go-jinja2 to fix relative includes of ../ files
  • 4ea1d40 fix: Use 100ms for multiline updates
  • e190eec fix: Use custom GetSize/GetWidth implementation
  • b717b2b fix: Use custom multiline implementation

Don't miss a new kluctl release

NewReleases is sending notifications on new releases.