Skip to content

Releases: akuity/kargo

v1.2.2

28 Jan 00:04
f53aa48
Compare
Choose a tag to compare

What's Changed

  • chore(backport release-1.2): fix(ui): tolerate entra id RFC8414 deviation by @akuitybot in #3362
  • chore(backport release-1.2): chore(cli): fix update command example by @akuitybot in #3375
  • chore(backport release-1.2): fix: fix faulty logic for handling possible double-encoding of github app private key by @akuitybot in #3379

Full Changelog: v1.2.1...v1.2.2

v1.1.3

28 Jan 00:06
2d9d75e
Compare
Choose a tag to compare

What's Changed

  • chore(backport release-1.1): fix: warehouse branch regex that was to limiting by @akuitybot in #3241
  • chore(backport release-1.1): fix: fix faulty logic for handling possible double-encoding of github app private key by @akuitybot in #3378

Full Changelog: v1.1.2...v1.1.3

v1.2.1

23 Jan 19:15
29b0790
Compare
Choose a tag to compare

What's Changed

  • chore(backport release-1.2): fix(directives): HTTP repo cache helm-chart-update by @akuitybot in #3330
  • chore(backport release-1.2): fix(cmd): improve Argo integration checks by @akuitybot in #3349
  • chore(backport release-1.2): refactor: change generic secret label by @akuitybot in #3350

Full Changelog: v1.2.0...v1.2.1

v1.2.0

14 Jan 19:43
0958769
Compare
Choose a tag to compare

🆕 What's New?

💪 Promotion Tasks

When support for expressions in promotion steps debuted in Kargo v1.1.0, we had a vision of eventually leveraging that capability to define reusable sequences of steps, where the particulars of each Stage utilizing them in their Promotions could be provided, essentially, as arguments. v1.2.0 makes that vision a reality with the introduction of PromotionTasks (and ClusterPromotionTasks).

We've observed the majority of our users housing their application configurations in monorepos, so with little difficulty, we can imagine such a repository housing configuration for dozens or even hundreds of applications, with each of those configurations also having a number of variations for each of several environments. Among these applications, many are likely to employ the same directory structure and configuration management tools. Prior to Kargo v1.2.0, each and every Stage representing an application/environment pair would have had to individually define a promotion process that would have been remarkably similar from one to the next.

With PromotionTasks, a sequence of common steps can be defined like so:

apiVersion: kargo.akuity.io/v1alpha1
kind: PromotionTask
metadata:
  name: standard-process
  namespace: guestbook
spec:
  vars:
  - name: app
  - name: imageRepo
  steps:
  - uses: git-clone
    config:
      repoURL: https://github.com/example/monorepo.git
      checkout:
      - path: ./configs
  - uses: yaml-update
    config:
      path: ./configs/${{ vars.app }}/chart/envs/${{ ctx.stage }}/values.yaml
      updates:
      - key: image.tag
        value: ${{ imageFrom(vars.imageRepo).Tag }}
  - uses: git-commit
    config:
      path: ./configs
  - uses: git-push
    config:
      path: ./configs
  - uses: argocd-update
    config:
      apps:
      - name: ${{ vars.app }}-${{ ctx.stage }}

This PromotionTask can then be referenced by any number of Stages within the same project:

apiVersion: kargo.akuity.io/v1alpha1
kind: Stage
metadata:
  name: uat
  namespace: guestbook
spec:
  requestedFreight:
  - origin:
      kind: Warehouse
      name: guestbook
    sources:
      stages:
      - test
  promotionTemplate:
    spec:
      vars:
      - name: app
        value: guestbook
      - name: imageRepo
        value: company/guestbook
      steps:
      - task:
          name: standard-process

To use a common sequence of steps across multiple projects, use a cluster-scoped ClusterPromotionTask resource instead.

To learn more about this exciting feature, refer to our PromotionTasks reference doc.

🌊 Soak Time

A frequent request from users has been to support an option whereby a Stage may require any Freight promoted to it to have first "soaked" (remained in) an upstream Stage for a certain period of time, and this is now possible in v1.2.0.

apiVersion: kargo.akuity.io/v1alpha1
kind: Stage
metadata:
  name: uat
  namespace: guestbook
spec:
  requestedFreight:
  - origin:
      kind: Warehouse
      name: guestbook
    sources:
      stages:
      - test
      requiredSoakTime: 1h
  promotionTemplate:
    # Omitted for brevity...

Note that requiredSoakTime, if specified, is in addition to the usual criteria that Freight must have been verified upstream before becoming available for promotion.

🪜 New and Updated Promotion Steps

  • A new json-update allows for performing updates to JSON files in the same manner that has been possible for YAML files using the yaml-update step.

  • A new delete promotion step can be used to delete files or directories.

  • Thanks to the diligent efforts of @diegocaspi, the git-open-pr and git-wait-for-pr promotion steps now support Azure DevOps repositories.

  • @muenchdo generously contributed two new options for the git-open-pr promotion step to specify a user-defined title and user-defined labels for the PRs it opens.

Refer to the Promotion Steps reference doc for more details.

🖥️ UI Improvements

The two most notable UI improvements in v1.2.0 are:

  • When viewing a Stages verification history, it is now possible to filter out "implicit" verification records that are created when a Stage lacking any user-defined verification process simply becomes healthy with any new Freight that has been promoted to it.

  • Project-scoped Kubernetes Secrets can now be managed in the UI.

⚙️ Chart Improvements

We've, several times now, encountered users who are terminating TLS somewhere "upstream" from the Kargo API server (for instance at a reverse proxy or load balance). This has tended to impose some difficulty as the API server, itself not being configured to terminate TLS, would be unaware that any URLs it generates should begin with https:// regardless.

To address this, we've introduced a new api.tls.terminatedUpstream that can be set to true at install time.

For further information, please refer directly to the Kargo Helm chart's README, which describes all configuration options in detail.

🙏 New Contributors

Kargo would be nothing without its users. An extra special thank you goes out to community members who made their first contribution to Kargo in this release:

Full Changelog: v1.1.2...v1.2.0

v1.2.0-rc.1

11 Jan 14:55
dfbf526
Compare
Choose a tag to compare
v1.2.0-rc.1 Pre-release
Pre-release
feat: allow project scoped generic kubernetes secrets (#2975)

Signed-off-by: Mayursinh Sarvaiya <[email protected]>
Signed-off-by: Kent Rancourt <[email protected]>
Co-authored-by: Kent Rancourt <[email protected]>

v1.1.2

23 Dec 23:27
4deb9ff
Compare
Choose a tag to compare

What's Changed

  • chore(backport release-1.1): fix(controller): do not normalize urls when searching for image creds by @akuitybot in #3114
  • chore(backport release-1.1): fix(controller): expressions: fix quote() of a json object by @akuitybot in #3116
  • chore(backport release-1.1): fix(controller): git-push step: pull --rebase before push by @akuitybot in #3153
  • chore(backport release-1.1): fix(controller): fix tricky expr evaluation cases dealing with quotes and newlines by @akuitybot in #3186

Full Changelog: v1.1.1...v1.1.2

v1.1.2-rc.2

23 Dec 23:03
4deb9ff
Compare
Choose a tag to compare
v1.1.2-rc.2 Pre-release
Pre-release
chore(backport release-1.1): docs: authorizing kargo stages to modify…

v1.1.2-rc.1

23 Dec 18:08
f19159b
Compare
Choose a tag to compare
v1.1.2-rc.1 Pre-release
Pre-release
chore(deps): bump the go-patch group across 1 directory with 9 update…

v1.1.1

09 Dec 22:03
d9932c7
Compare
Choose a tag to compare

What's Changed

  • chore(backport release-1.1): fix(docs): typos in promition steps causing examples to not work by @akuitybot in #3087
  • chore(backport release-1.1): fix(controller): Promotion on verification failure by @akuitybot in #3099
  • chore(backport release-1.1): fix(controller): app sync fix by @akuitybot in #3101
  • chore(backport release-1.1): chore(deps): bump the go-patch group with 8 updates by @hiddeco in #3102
  • chore(backport release-1.1): chore(deps): bump golang from 1.23.3-bookworm to 1.23.4-bookworm by @hiddeco in #3103
  • chore(backport release-1.1): fix(controller): make app patch affect status.operationState by @akuitybot in #3105
  • chore(backport release-1.1): fix: broken link by @akuitybot in #3106

Full Changelog: v1.1.0...v1.1.1

v1.1.1-rc.1

09 Dec 18:43
d9932c7
Compare
Choose a tag to compare
v1.1.1-rc.1 Pre-release
Pre-release
chore(backport release-1.1): fix: broken link (#3106)

Co-authored-by: Faeka Ansari <[email protected]>