|
| 1 | +🚀 The Kargo team is proud to unveil our feature-packed v1.8.0 release! |
| 2 | + |
| 3 | +## ⚠️ Breaking Changes |
| 4 | + |
| 5 | +The format of logs emitted by Kargo components has changed slightly. |
| 6 | + |
| 7 | +## ⚠️ New Deprecations |
| 8 | + |
| 9 | +None |
| 10 | + |
| 11 | +## ✨ Noteworthy Features |
| 12 | + |
| 13 | +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. |
| 14 | + |
| 15 | +* **`Freight` creation criteria:** `Warehouse` resources can now use expression-based criteria to control when automatic `Freight` creation occurs. This solves the long-standing problem of `Warehouse`s creating `Freight` with incompatible artifact combinations when subscribed to multiple repositories. |
| 16 | + |
| 17 | + With a `Warehouse`'s `Freight` creation policy set to `Automatic`, you can now provide criteria as an expression that must evaluate to `true` for automatic `Freight` creation to proceed. For example, to ensure `Freight` is created only when front end and back end container images have matching version tags: |
| 18 | + |
| 19 | + ```expr |
| 20 | + imageFrom('example/front-end').Tag == imageFrom('example/back-end').Tag |
| 21 | + ``` |
| 22 | + |
| 23 | + You can read more about this new feature in the [Working with Warehouses](https://docs.kargo.io/user-guide/how-to-guides/working-with-warehouses#automatic-freight-creation) section of Kargo's documentation. |
| 24 | + |
| 25 | +* **Syncing to an upstream `Stage`**: A new auto-promotion policy, `MatchUpstream`, allows `Stage` resource to perpetually sync with their immediate upstream `Stage` instead of always promoting the newest available `Freight`. This is ideal for scenarios like keeping a performance testing environment synced with the exact same artifacts currently being tested in a QA environment. |
| 26 | + |
| 27 | + You can read more about this feature in the [Working with Stages](https://docs.kargo.io/user-guide/how-to-guides/working-with-stages#auto-promotion) section of Kargo's documentation. |
| 28 | + |
| 29 | +* **`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.** |
| 30 | + |
| 31 | + You can read more about this feature on the `git-merge-pr` promotion step's [reference page](https://docs.kargo.io/user-guide/reference-docs/promotion-steps/git-merge-pr). |
| 32 | + |
| 33 | +* **New and improved metadata support**: You can now propagate important context between `Stage`s using a new `set-metadata` promotion step. Arbitrary metadata attached to `Freight` and `Stage` resources can be retrieved using new `stageMetadata()` and `freightMetadata()` expression functions. This enables use cases like associating a Slack thread ID with a `Freight` resource and sending an update to that thread each time the `Freight` is promoted to a different `Stage`. |
| 34 | + |
| 35 | + To learn more about these features, refer to the reference docs for the [`set-metadata`](https://docs.kargo.io/user-guide/reference-docs/promotion-steps/set-metadata) promotion step as well as the [`freightMetadata()`](https://docs.kargo.io/user-guide/reference-docs/expressions#freightmetadatafreightname) and [`stageMetadata()`](https://docs.kargo.io/user-guide/reference-docs/expressions#stagemetadatastagename) sections of the expressions reference docs. |
| 36 | + |
| 37 | +* **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. |
| 38 | + |
| 39 | + You can read more about mappings in the [operator guide](https://docs.kargo.io/operator-guide/security/access-controls#user-to-serviceaccount-mappings) and [user guide](https://docs.kargo.io/user-guide/security/access-controls/#user-to-serviceaccount-mappings). |
| 40 | + |
| 41 | +* **Harbor webhook receiver:** A new webhook receiver triggers `Warehouse` artifact discovery when container images or Helm charts are pushed to [Harbor](https://goharbor.io/) registries. |
| 42 | + |
| 43 | + To learn more, refer to the [Harbor webhook receiver](https://docs.kargo.io/user-guide/reference-docs/webhook-receivers/harbor/) reference docs. Special thanks to @ahockersten for this contribution. |
| 44 | + |
| 45 | +* **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). |
| 46 | + |
| 47 | +* **Favorite `Project`s:** `Project`s can now be "starred" for quick access - perfect for organizations with a very large number of `Project`s. |
| 48 | + |
| 49 | +* **Drag 'n' drop `Promotion`s:** Need we say more? |
| 50 | + |
| 51 | +* **New `Freight` assembly option:** A new `Freight` "clone" feature lets you use existing `Freight` as a template, selecting only the artifact revisions you want to change from the original. |
| 52 | + |
| 53 | +## 🙏 Special Thanks |
| 54 | + |
| 55 | +Thank you, as always, to community members who made their first contribution to Kargo in this release! |
| 56 | + |
| 57 | +* @mikedougherty |
| 58 | +* @ahockersten |
| 59 | +* @gladavius |
| 60 | +* @ianstanton |
| 61 | +* @kyounghunJang |
| 62 | +* @jobama7860 |
| 63 | + |
| 64 | +**Full Changelog**: https://github.com/akuity/kargo/compare/v1.7.5...v1.8.0 |
0 commit comments