What's New in Kargo v0.5.0

What's new in Kargo v0.5.0 blog cover image

We're back from Kubecon EU '24 in Paris, and there was a lot of buzz around Kargo! We had many conversations with folks talking about their struggles with how to promote their applications from one environment to the next in a GitOps workflow. Many are currently doing it with bespoke CI scripts that are hard to maintain and manage, and they were looking for exactly what Kargo provides!

If you weren't able to sync with us at KubeCon, be sure to check out the upcoming Kargo Webinar!

To that end, we are happy to announce the release of Kargo v0.5 - which is one of the biggest releases yet. In this release of Kargo we are introducing a lot of features, bug fixes, and updates that get us closer to a GA release. Let's dive right in!

UX Updates

Significant improvements have been made to the kargo CLI client. There was a great focus on creating a more intuitive user experience with this update. The behavior and help text for the kargo CLI client have been made more consistent from one command to the next. We have also added the ability to create and manage repo credentials with the kargo CLI, verifications can now be retried, or even be aborted with this new CLI update.

On top of making improvements to the CLI, the Kargo UI has also been updated to provide more information about all components of Kargo. For example, a warehouse that has multiple stages subscribed directly now has an improved visual representation.

Kargo Multi Stage
Kargo Multi Stage

Also in this release, it is now possible to create Projects, AnalysisTemplates, and Warehouses using the Kargo UI.

Repository Content Filtering Rules

In earlier versions of Kargo, when a user subscribed to a Git repository; Kargo would track the specified branches for any changes, in order to create Freight for a Promotion. This had the side effect of creating a significant amount of Freight not having anything to do with a release anytime there's a change/update in that repo. This is especially true for those users who are using Monorepos.

Starting with this release, Warehouses can now indicate specific paths to be monitored or ignored. Specifically, users can now trigger the production of new Freight only when changes to relevant paths are detected. This will allow for a finer grained configuration on what constitutes artifacts as being eligible for promotion.

apiVersion: kargo.akuity.io/v1alpha1
kind: Warehouse
metadata:
  name: my-warehouse
  namespace: kargo-demo
spec:
  subscriptions:
  - git:
      repoURL: https://github.com/example/kargo-demo.git
      includePaths:
      - regex:^apps/guestbook/.*$

The above example shows a Warehouse resource that subscribes to a Git repository but only produces new Freight when a commit contains changes to the apps/guestbook directory. It's also possible to provide excludePaths in the configuration to exclude specific paths/files from producing Freight

Housekeeping Improvements

In this release, we have made significant updates to the Kargo Helm chart for installation. Many improvements have been made, the most significant one being that it is now possible to upgrade Kargo using the helm chart. Users looking to upgrade Kargo to v0.5.0 from v0.4.0 will first need to run this script. This is a one time process and subsequent upgrades can be done via Helm.

Garbage collection has been improved in this release as well. Freight will now be garbage collected along with related AnalysisRuns. Moreover, Promotion resources are now being garbage-collected more conservatively. The improved garbage collection of Promotion resources now takes this into account by working Project by Project, and Stage by Stage, deleting only Promotion resources that are both more than 20 generations older than the oldest Promotion in a non-terminal phase and also more than two weeks old.

Credential Storage

Credential storage has been significantly refactored in this release, which improves how Kargo interacts with Secrets. The update includes a major shift in how repo credentials are stored. Here is an example of the new method.

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: kargo-demo-repo
  labels:
    kargo.akuity.io/cred-type: git
stringData:
  repoURL: https://github.com/akuity/kargo-simple
  username: myuser
  password: ghp_averylongsequenceofchar

The new strategy is considerably more straightforward, but this breaking change does mean that if you are upgrading from a previous version of Kargo, you will need to tweak some of your Secrets. Read more about it in the credential-management section of the Kargo documentation.

Community Growth

One of the most exciting things about Kargo is watching the community grow. With the Kargo GitHub Repo surpassing 1k stars and the discord with over 400 members; we see the popularity and community continue to grow.

We've had some major contributions from both inside and outside of Akuity which will only serve to improve Kargo. For the v0.5.0 release, we are proud to announce that Hidde Beydals @hiddeco has joined the Kargo community as a maintainer. Hidde is not only a Kargo maintainer and contributor, but also is a maintainer of many projects in the open-source space. This includes Flux, SOPS and go-git! We are happy Hidde has joined us at Akuity to help the Kargo project grow!

We also like to give thanks to the following contributors from the Kargo community.

@sennerholm @MPritsch @sthomson-wyn @ftmiro

The Kargo project would like to give a special thanks to Maksim Stankevic @maksimstankevic for their extensive work on the Path Filtering feature. To date, this is the largest feature contributed by a non-maintainer and we are very grateful for not only the effort but also the high quality work that was put into the feature.

Conclusion

This was a major release for Kargo; with the community and buzz growing around the project we expect each release to be more feature rich as we head towards a stable release. Kargo is an Open Source project and we invite you to try out Kargo and hop on the Akuity Community Discord to share your experiences, connect with other users, and provide feedback to the maintainers. Looking to get hands-on experience with Kargo? Try out our Quickstart to get up and running!

Make sure you stay up to date with everything going on at Akuity (be it with Kargo, Argo CD, or GitOps in general) by taking a look at our resources page!

Share this blog:

Latest Blog Posts

What's New in Kargo v0.5.0

What's New in Kargo v0.5.0

We're back from Kubecon EU '24 in Paris, and there was a lot of buzz around Kargo! We had many conversations with folks talking about their struggles with how…...

Argo CD CDK8S Config Management Plugin

Argo CD CDK8S Config Management Plugin

If you haven't stored raw kubernetes YAML files in your GitOps repository, you most probably used some sort of tooling that generates YAML files, for example…...

Application Dependencies with Argo CD

Application Dependencies with Argo CD

With Argo CD and GitOps gaining wide adoption, many organizations are starting to deploy more and more applications using Argo CD and GitOps in their workflows…...

Leverage the industry-leading suite

Contact our team to learn more about Akuity Cloud