v1.8.0 Release Notes
🚀 The Kargo team is proud to unveil our feature-packed v1.8.0 release!
⚠️ Breaking Changes
The format of logs emitted by Kargo components has changed slightly.
⚠️ New Deprecations
None
✨ Noteworthy Features
Now the fun stuff! As usual, we packed so much great stuff into this release that we'd be here a very long time if we were to cover all of it in detail. Here's our still longer-than-usual list of new or improved features that we regard as being especially noteworthy.
-
Freight
creation criteria:Warehouse
resources can now use expression-based criteria to control when automaticFreight
creation occurs. This solves the long-standing problem ofWarehouse
s creatingFreight
with incompatible artifact combinations when subscribed to multiple repositories.With a
Warehouse
'sFreight
creation policy set toAutomatic
, you can now provide criteria as an expression that must evaluate totrue
for automaticFreight
creation to proceed. For example, to ensureFreight
is created only when front end and back end container images have matching version tags:imageFrom('example/front-end').Tag == imageFrom('example/back-end').Tag
You can read more about this new feature in the Working with Warehouses section of Kargo's documentation.
-
Syncing to an upstream
Stage
: A new auto-promotion policy,MatchUpstream
, allowsStage
resource to perpetually sync with their immediate upstreamStage
instead of always promoting the newest availableFreight
. This is ideal for scenarios like keeping a performance testing environment synced with the exact same artifacts currently being tested in a QA environment.You can read more about this feature in the Working with Stages section of Kargo's documentation.
-
git-merge-pr
promotion step: A new promotion step enables automated merging of pull requests. This addresses requests from users who want to open PRs only for the audit purposes, then merge them immediately. This feature is in beta state.You can read more about this feature on the
git-merge-pr
promotion step's reference page. -
New and improved metadata support: You can now propagate important context between
Stage
s using a newset-metadata
promotion step. Arbitrary metadata attached toFreight
andStage
resources can be retrieved using newstageMetadata()
andfreightMetadata()
expression functions. This enables use cases like associating a Slack thread ID with aFreight
resource and sending an update to that thread each time theFreight
is promoted to a differentStage
.To learn more about these features, refer to the reference docs for the
set-metadata
promotion step as well as thefreightMetadata()
andstageMetadata()
sections of the expressions reference docs. -
Improved OIDC claim-to-ServiceAccount mappings: The system for mapping authenticated users to Kubernetes
ServiceAccount
s has been overhauled with a new format that supports special characters not permitted in Kubernetes annotation keys. The change is largely transparent - existing mappings will migrate automatically with no user action required.You can read more about mappings in the operator guide and user guide.
-
Harbor webhook receiver: A new webhook receiver triggers
Warehouse
artifact discovery when container images or Helm charts are pushed to Harbor registries.To learn more, refer to the Harbor webhook receiver reference docs. Special thanks to @ahockersten for this contribution.
-
Logging improvements: We've replaced Kargo's internal logging framework, resulting in minor format changes to unstructured logs and new support for structured JSON logs (opt-in via chart settings).
-
Favorite
Project
s:Project
s can now be "starred" for quick access - perfect for organizations with a very large number ofProject
s. -
Drag 'n' drop
Promotion
s: Need we say more? -
New
Freight
assembly option: A newFreight
"clone" feature lets you use existingFreight
as a template, selecting only the artifact revisions you want to change from the original.
Special Thanks
Thank you, as always, to community members who made their first contribution to Kargo in this release!
Full Changelog: v1.7.5...v1.8.0