Compare commits

...

1700 Commits

Author SHA1 Message Date
Rafael Brito 67d19e100f
chore: make api-proto to support go module style (#4402)
tweak on make api-proto to support go module style

Signed-off-by: Rafael Brito <rafa@stormforge.io>
2025-08-08 11:18:18 -05:00
Rafael Brito b579b3d4d9
fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212)
* chore: bumping k8s mods to 0.30.11 and new CRD

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* chore: updating more modules and tweaking CRD generation

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* chore: adding StormForge on USERS.md

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* tweaking Makefile and supporting script to successfully run codegen

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* removed deprecated generate-groups.sh codegen script

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* Updating gen-openapi parameters k8s to v0.30.X

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* running go mod before generating crd

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* another pass on fixing go-to-protobuf

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* restoring boilerplate.go.txt for gen_client

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* tweaking openapi-gen for the expected file name

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* disable vendoring on gen-crd

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* disable vendoring for docs generation

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* invoking doc generation prior crd generation

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* bumping mockery version

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* adding go-mod-vendor for docs

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* bumping to latest k8s libraries 0.30.X

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* bumping golang

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* bumping last k8s libraries and reinstate go 1.23

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* fixing codegen directory

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* resolving conflicts on x/sync

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* bumping k8s libraries to 1.30.14

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* another pass after go mod tidy

Signed-off-by: Rafael Brito <rafa@stormforge.io>

* Makefile changes to support go module style setup with new codegen

Signed-off-by: Rafael Brito <rafa@stormforge.io>

---------

Signed-off-by: Rafael Brito <rafa@stormforge.io>
Signed-off-by: Rafael Brito <rafaelbrito@gmail.com>
2025-08-07 19:20:37 -05:00
Gusty Sapto Ady Prakoso b3447cbf96
docs: add batumbu to USERS.md (#4389)
Signed-off-by: Gusty Sapto Ady Prakoso <gustysaptoadyprakoso@gmail.com>
2025-08-07 19:19:46 -05:00
Kevin Dorosh a9e566ea4f
fix(cli): Add generation to RolloutInfo (#4336)
Signed-off-by: Kevin Dorosh <kcdorosh@gmail.com>
Co-authored-by: Kevin Dorosh <kevin.dorosh@reddit.com>
2025-07-24 10:26:32 -05:00
Oliver Gondža 87562252b3
chore: Adding Red Hat to the list (#4361)
feat(USERS.md): Adding Red Hat to the list

Signed-off-by: Oliver Gondža <ogondza@gmail.com>
2025-07-24 10:25:42 -05:00
dependabot[bot] 5e44d4b461
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.45.1 to 1.45.4 (#4366)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-version: 1.45.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-24 10:25:23 -05:00
Kevin Park 401a5fab7e
fix(cli): expose AWS API versions in controller CLI. Fixes #4334 (#4368)
* Fix camelCase typo in metricsPort CLI flag

Signed-off-by: Kevin Park <krapi0314@gmail.com>

* Expose AWS API version in controller CLI

Signed-off-by: Kevin Park <krapi0314@gmail.com>

---------

Signed-off-by: Kevin Park <krapi0314@gmail.com>
2025-07-24 09:28:08 -05:00
Brian Fox d6d63f3330
fix(controller): don't panic if workload ref is not found (#4208)
Signed-off-by: OneMatchFox <878612+onematchfox@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2025-07-23 13:19:36 -05:00
TamarRubin d4a935068d
feat(dashboard): add error handling notifications for rollout actions (#4345)
* feat(ui): add error handling notifications for rollout actions

- Add try-catch error handling to rollout action buttons
- Display error notifications at top of page when actions fail
- Show specific 'Permission Denied' message for HTTP 403 errors
- Include RBAC guidance for permission-related failures
- Ensure loading spinner stops on both success and error
- Remove success notifications to reduce UI noise

Fixes silent failures when users lack proper RBAC permissions
for rollout actions like Abort, Promote, Restart, and Retry.

Signed-off-by: tamar.rubin <tamar.rubin@appsflyer.com>

* docs: add AppsFlyer to USERS.md

Signed-off-by: tamar.rubin <tamar.rubin@appsflyer.com>

---------

Signed-off-by: tamar.rubin <tamar.rubin@appsflyer.com>
Co-authored-by: tamar.rubin <tamar.rubin@appsflyer.com>
2025-07-17 08:45:13 -05:00
dependabot[bot] 1e03da7841
chore(deps): bump golang.org/x/sync from 0.11.0 to 0.16.0 (#4353)
Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.11.0 to 0.16.0.
- [Commits](https://github.com/golang/sync/compare/v0.11.0...v0.16.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-version: 0.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 08:43:53 -05:00
Donghyun Kang 848c9fa729
docs: fix indentation in Rollout YAML (#4354)
Signed-off-by: augustkang <iamaugustkang@gmail.com>
2025-07-17 08:43:33 -05:00
Kevin Park caf2e6f4d2
fix(cli): update incorrect boolean flag syntax example in cli help output. Fixes #4112 (#4355)
Fix cli example for boolean flag with value set

Signed-off-by: Kevin Park <krapi0314@gmail.com>
2025-07-17 08:43:06 -05:00
Eduardo Morales 6dfe280d14
feat: added available replica pods threshold (#4341)
* feat: added available replica pods threshold

Signed-off-by: Eduardo Morales <emorales@nextdoor.com>

* feat: created a better struct pattern for replicaProgressThreshold

Signed-off-by: Eduardo Morales <emorales@nextdoor.com>

* fix: changed ThresholdType -> Type

Signed-off-by: Eduardo Morales <emorales@nextdoor.com>

---------

Signed-off-by: Eduardo Morales <emorales@nextdoor.com>
2025-07-17 08:41:01 -05:00
Kostis (Codefresh) 468cfdf3d4
docs: proposal for parameterized build system (#4331)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2025-07-08 14:42:31 +00:00
Kostis (Codefresh) 92df0a35d2
fix: truncate analysis job name if needed (#4305)
* fix: truncate analysis job name if needed

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

* fix: moved DNS limit to defaults

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

---------

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2025-07-08 09:07:13 -05:00
Abhish2702 88ea0c519f
fix: experiment services deletion before reconciling traffic routing in rollouts (#4310)
Signed-off-by: Abhishek Bansal <abhishekbansal2002@gmail.com>
2025-07-07 19:11:47 -07:00
dependabot[bot] e2cdaf5f11
chore(deps): bump docker/setup-buildx-action from 3.10.0 to 3.11.1 (#4328)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.10.0 to 3.11.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](b5ca514318...e468171a9d)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 13:11:26 -05:00
Revan Darth f17316b9ac
docs: fix traffic manager note (#4311)
Signed-off-by: Revan Darth <darthrevan344@gmail.com>
2025-06-09 10:16:53 -05:00
dependabot[bot] c179d94d5a
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.44.1 to 1.45.1 (#4313)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.44.1 to 1.45.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/iot/v1.44.1...service/s3/v1.45.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-version: 1.45.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 10:16:32 -05:00
github-actions[bot] 4025384e2e
docs: Update Changelog (#4306)
* update changelog

* Update CHANGELOG.md

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2025-06-05 13:14:33 +00:00
Jan Konarzewski 02cf24ebb3
docs: fix links in canary docs to other docs (#4303)
docs(canaries): fix links to other docs

Signed-off-by: Jan Konarzewski <jan.konarzewski@wolt.com>
2025-06-04 10:40:21 -05:00
Jayendra Parsai 8668348cd4
fix: code weakness of path traversal (#4278)
Signed-off-by: Jayendra Parsai <jparsai@jparsai-thinkpadp1gen4i.remote.csb>
Co-authored-by: Jayendra Parsai <jparsai@jparsai-thinkpadp1gen4i.remote.csb>
2025-05-30 21:21:19 +00:00
Kostis (Codefresh) 5ccf0a71e0
docs: explain skew policy between the kubectl plugin and the controller (#4300)
* docs: explain version skew policy

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

* docs: explain version skew policy - added links

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

---------

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2025-05-30 21:20:45 +00:00
Johannes Kleinlercher 3f677349be
fix: remove preserveUnknownFields to avoid OutOfSync in ArgoCD. Fixes #1272 (#4277)
* fix: remove preserveUnknownFields to avoid OutOfSync in ArgoCD

fixes https://github.com/argoproj/argo-rollouts/issues/1272

Signed-off-by: Johannes Kleinlercher <johannes.kleinlercher@suxess-it.com>

* chore: added suxess-it as users

Signed-off-by: Johannes Kleinlercher <johannes.kleinlercher@suxess-it.com>

* fix: remove preserveUnknownFields in gen-crd-spec

Signed-off-by: Johannes Kleinlercher <johannes.kleinlercher@suxess-it.com>

---------

Signed-off-by: Johannes Kleinlercher <johannes.kleinlercher@suxess-it.com>
2025-05-30 09:17:55 -05:00
dependabot[bot] db79990787
chore(deps): bump codecov/codecov-action from 5.4.2 to 5.4.3 (#4283)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.4.2 to 5.4.3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](ad3126e916...18283e04ce)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 5.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-30 09:05:37 -05:00
Takumi Sue 599e7fa54e
docs: fix broken link (#4289)
docs: fix link

Signed-off-by: mikutas <23391543+mikutas@users.noreply.github.com>
2025-05-30 08:50:06 -05:00
Tyler Auerbeck 473c14e360
ci: bump golangci-lint to v2 (#4290)
bump golangci-lint to v2

Signed-off-by: Tyler Auerbeck <tylerauerbeck@users.noreply.github.com>
Co-authored-by: Tyler Auerbeck <tylerauerbeck@users.noreply.github.com>
2025-05-30 08:48:19 -05:00
dependabot[bot] 0a15908d66
chore(deps): bump docker/build-push-action from 6.16.0 to 6.18.0 (#4298)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.16.0 to 6.18.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](14487ce63c...263435318d)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-30 08:38:45 -05:00
Peter Jiang ccf0be9ccc
fix: abort scenario where canary/stable service is not provided (#4299)
* fix: fix abort scenario where canary/stable service is not provided

Signed-off-by: Peter Jiang <peterjiang823@gmail.com>

* remove not needed code

Signed-off-by: Peter Jiang <peterjiang823@gmail.com>

* Modularize tests

Signed-off-by: Peter Jiang <peterjiang823@gmail.com>

* fix tests

Signed-off-by: Peter Jiang <peterjiang823@gmail.com>

* Refactor code to handle only checking relavant RS and return nil

Signed-off-by: Peter Jiang <peterjiang823@gmail.com>

* update test

Signed-off-by: Peter Jiang <peterjiang823@gmail.com>

* update test

Signed-off-by: Peter Jiang <peterjiang823@gmail.com>

---------

Signed-off-by: Peter Jiang <peterjiang823@gmail.com>
2025-05-30 08:38:01 -05:00
Ciprian Hacman 6e7560ad8d
fix: update main command description for retry (#4301)
* Fix main command description for retry

Signed-off-by: Ciprian Hacman <ciprian@hakman.dev>

* Add Microsoft to the users list

Signed-off-by: Ciprian Hacman <ciprian@hakman.dev>

* Update generated docs

Signed-off-by: Ciprian Hacman <ciprian@hakman.dev>

---------

Signed-off-by: Ciprian Hacman <ciprian@hakman.dev>
2025-05-30 08:33:23 -05:00
Travis Perdue 8f536b4beb
refactor(controller): context refactor (#4291)
* add lo package

Signed-off-by: Travis Perdue <perduetravis@gmail.com>

* remove repetitive boolean checks

Signed-off-by: Travis Perdue <perduetravis@gmail.com>

* remove accidental package add

Signed-off-by: Travis Perdue <perduetravis@gmail.com>

* fix vendor package snafu

Signed-off-by: Travis Perdue <perduetravis@gmail.com>

* restore log; tweak if conditions

Signed-off-by: Travis Perdue <perduetravis@gmail.com>

---------

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
2025-05-27 12:00:00 -05:00
T Nolan 2e31d0f550
docs: adding more information about flag to document (#4240) (#4280)
* Adding more information about flag

Signed-off-by: Tavi Nolan <Tavi.Nolan@fmr.com>

* Updating --aws-region note

Signed-off-by: Tavi Nolan <Tavi.Nolan@fmr.com>

---------

Signed-off-by: Tavi Nolan <Tavi.Nolan@fmr.com>
Co-authored-by: Tavi Nolan <Tavi.Nolan@fmr.com>
2025-05-19 17:02:28 +00:00
Travis Perdue b32ed29b43
chore: fix deprecation (pointer -> ptr) (#4286)
pointer -> ptr

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
2025-05-19 07:52:06 -05:00
Kostis (Codefresh) 287acaa919
chore: Improve logging (#4266)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
Co-authored-by: pashakostohrys <pavel@codefresh.io>
2025-05-18 10:20:01 -05:00
Kylash M R e9ac866296
docs: Update USERS.md - adding Schneider Electric (#4272)
Update USERS.md - adding Schneider Electric

Signed-off-by: Kylash M R <105107963+kylash-mr@users.noreply.github.com>
2025-05-13 15:25:19 +00:00
Tsubasa Nakayama c44c9d2560
fix(dashboard): fix container image input (#4274)
Signed-off-by: Tsubasa Nakayama <app.nakayama@gmail.com>
2025-05-13 10:22:55 -05:00
Jorge Ivan Tapicha Bedoya 16edf3a9b5
docs: Added Yuno to the USERS.md (#4262)
Docs: Added Yuno to the USERS.md

Signed-off-by: Jorge Ivan Tapicha Bedoya <jitapichab@gmail.com>
2025-05-01 10:55:04 -05:00
Aaron Hastings 80493f2018
docs: Fix traffic management link from `features/canary` page (#4269)
* Fix traffic management link from `features/canary` page.

Signed-off-by: Aaron Hastings <aaron@aaronhastings.me>
2025-05-01 10:54:29 -05:00
Kostis (Codefresh) 7ea5086021
docs: mention existing test suite names (#4267)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2025-04-30 17:47:06 +00:00
dependabot[bot] 94376e6ed3
chore(deps): bump softprops/action-gh-release from 2.2.1 to 2.2.2 (#4243)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](c95fe14893...da05d55257)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-28 12:46:39 -05:00
Zach Aller 06e887dcbf
docs: blue green w/ ALB not supported without downtime (#4259)
* docs: blue green w/ ALB not supported

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* docs: blue green w/ ALB not supported

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* docs: blue green w/ ALB not supported

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* docs: blue green w/ ALB not supported

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* docs: blue green w/ ALB not supported

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* docs: blue green w/ ALB not supported

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* Update docs/features/bluegreen.md

Co-authored-by: Leonardo Luz Almeida <leoluz@users.noreply.github.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* Update docs/features/bluegreen.md

Co-authored-by: Leonardo Luz Almeida <leoluz@users.noreply.github.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* docs: blue green w/ ALB not supported

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Leonardo Luz Almeida <leoluz@users.noreply.github.com>
2025-04-28 16:00:01 +00:00
dependabot[bot] 6f391aaf03
chore(deps): bump actions/download-artifact from 4.2.1 to 4.3.0 (#4254)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.2.1 to 4.3.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](95815c38cf...d3f86a106a)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-25 13:13:49 -07:00
dependabot[bot] 9b8655c72c
chore(deps): bump docker/build-push-action from 6.15.0 to 6.16.0 (#4255)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](471d1dc4e0...14487ce63c)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-25 13:13:22 -07:00
dependabot[bot] b296d31a85
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.29.8 to 1.29.14 (#4230)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.8 to 1.29.14.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.8...config/v1.29.14)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.29.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-24 08:44:59 -07:00
dependabot[bot] 37b9d0bee1
chore(deps): bump codecov/codecov-action from 5.4.0 to 5.4.2 (#4237)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.4.0 to 5.4.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](0565863a31...ad3126e916)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 5.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-24 08:44:35 -07:00
dependabot[bot] e7e512a606
chore(deps): bump sigstore/cosign-installer from 3.8.1 to 3.8.2 (#4247)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.1 to 3.8.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](d7d6bc7722...3454372f43)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-24 08:43:59 -07:00
Keith Chong c98bc84159
chore(deps): bump github.com/golang-jwt/jwt to 4.5.2 (#4235) (#4236)
Signed-off-by: Keith Chong <kykchong@redhat.com>
2025-04-16 10:02:00 -05:00
dependabot[bot] d2d958d1d2
chore(deps): bump google.golang.org/grpc from 1.70.0 to 1.71.1 (#4227)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.70.0 to 1.71.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.70.0...v1.71.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.71.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-10 11:21:01 -05:00
Yusuke Abe bd7a37c607
fix: follow the kustomize directory structure changes for link (#4224)
Signed-off-by: chansuke <moonset20@gmail.com>
2025-04-08 13:27:47 -05:00
Cheng Fang 39665b087c
chore(deps): bump golangci-lang from v1.61.0 to v1.64.8 (#4213)
Signed-off-by: Cheng Fang <cfang@redhat.com>
2025-04-08 14:35:33 +00:00
Joe Ton 5fe7bb8963
chore: enrich controller startup log with namespace, ports, and insta… (#4218)
chore: enrich controller startup log with namespace, ports, and instanceID

Signed-off-by: Joe Ton <joe@tonindustries.com>
2025-04-08 09:15:23 -05:00
dependabot[bot] bd6ec088f4
chore(deps): bump golang.org/x/oauth2 from 0.26.0 to 0.29.0 (#4219)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.26.0 to 0.29.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.26.0...v0.29.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-08 09:14:36 -05:00
Jesse Suen 2d24489418
fix: restarts during updates could cause downtime (#4221)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2025-04-08 09:13:03 -05:00
Salvador Montiel 3427b15786
chore: Fix Traefik name (#4217)
Signed-off-by: Salvador Montiel <salvadormontiel8@gmail.com>
2025-04-07 11:05:33 -05:00
Dag Andersen 2583845f27
chore: Add Doubble to official USERS.md (#4214)
docs(users): Add Doubble to official USERS.md

Signed-off-by: Dag Andersen <dagbjerreandersen@gmail.com>
2025-04-03 22:24:40 +00:00
github-actions[bot] f4f7eabd6b
docs: Update Changelog (#4202)
update changelog

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
2025-03-22 03:53:31 +00:00
Zach Aller 963e4f291b
fix: Revert "fix(controller): rollout stuck in `Progressing`. fixes #3988" (#4201)
Revert "fix(controller):  rollout stuck in `Progressing`. fixes #3988 (#4072)"

This reverts commit f4289b70eb.
2025-03-21 14:06:41 -05:00
Yurii 38c3ff3584
fix(analysis): prevent promotion on inconclusive background run. Fixes: #3850 (#3873)
* test: add test for background analysis with inconclusive result

Signed-off-by: Yurii Popivniak <ypopivniak@cargurus.com>

* fix: prevent promotion on inconclusive background run

Signed-off-by: Yurii Popivniak <ypopivniak@cargurus.com>

* fix: e2e test for inconclusive analysisrun

Signed-off-by: Yurii Popivniak <ypopivniak@cargurus.com>

---------

Signed-off-by: Yurii Popivniak <ypopivniak@cargurus.com>
2025-03-21 13:58:51 -05:00
github-actions[bot] 88f902cfcb
docs: Update Changelog (#4199)
* update changelog

* Update CHANGELOG.md for version 1.8.0

---------

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2025-03-20 17:16:54 +00:00
dependabot[bot] d49ab7eb0f
chore(deps): bump actions/setup-go from 5.3.0 to 5.4.0 (#4197)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5.3.0...v5.4.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-20 09:00:43 -05:00
dependabot[bot] 5bbc3723e2
chore(deps): bump actions/download-artifact from 4.2.0 to 4.2.1 (#4198)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](b14cf4c926...95815c38cf)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-20 09:00:13 -05:00
dependabot[bot] 2b653644c0
chore(deps): bump docker/login-action from 3.3.0 to 3.4.0 (#4191)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](9780b0c442...74a5d14239)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-19 09:45:27 -05:00
dependabot[bot] 88e408d957
chore(deps): bump actions/download-artifact from 4.1.9 to 4.2.0 (#4194)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.9 to 4.2.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](cc20338598...b14cf4c926)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-19 09:45:11 -05:00
Anand Francis Joseph 507dc0c233
chore(deps): Updated go version in go.mod file (#4182)
Updated go version in go.mod file

Signed-off-by: Anand Francis Joseph <anjoseph@redhat.com>
2025-03-15 08:34:33 -05:00
Steve Ramage 659c13934f
docs: Improve the Istio documentation and some grammar tweaks. Fixes #4163 (#4164)
docs: fix some typos and tweaks to istio documentation

Signed-off-by: Steve Ramage <gitcommits@sjrx.net>
Co-authored-by: Steve Ramage <gitcommits@sjrx.net>
2025-03-12 14:50:34 -05:00
Abhish2702 933b7b3b1a
fix: guardrail to not overload stable replicaset (#3878)
* fix: unexpected downtime in rollouts

Signed-off-by: Abhishek Bansal <abhibansal@abhisheks-mbp-7.corp.adobe.com>

* lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Abhishek Bansal <abhibansal@abhisheks-mbp-7.corp.adobe.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Abhishek Bansal <abhibansal@abhisheks-mbp-7.corp.adobe.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2025-03-10 11:35:33 -05:00
chengjoey f4289b70eb
fix(controller): rollout stuck in `Progressing`. fixes #3988 (#4072)
fix rollout stuck in `Progressing`

Signed-off-by: joey <zchengjoey@gmail.com>
2025-03-06 09:29:17 -06:00
dependabot[bot] 37368106ab
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.44.0 to 1.44.1 (#4172)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.44.0 to 1.44.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.44.0...service/iot/v1.44.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-05 12:01:10 -06:00
Andrii Korotkov aa243dbba9
chore: Add Verkada to the list of users (#4176)
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
2025-03-05 12:00:45 -06:00
Michael Crenshaw 7c0f995d8c
chore: use internal errors util instead of pkg's (#4171)
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
2025-03-05 17:33:12 +00:00
dependabot[bot] 9e71a87087
chore(deps): bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (#4152)
chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 08:31:17 -06:00
dependabot[bot] 48377540ec
chore(deps): bump docker/setup-buildx-action from 3.9.0 to 3.10.0 (#4167)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](f7ce87c1d6...b5ca514318)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 08:29:58 -06:00
dependabot[bot] 451ea40086
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.15 to 1.44.0 (#4169)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.15 to 1.44.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/cloudwatch/v1.43.15...service/s3/v1.44.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 08:29:14 -06:00
Yusuke Abe b69c07cdf7
fix(dashboard): Revert react-scripts upgrade due to performance regression. Fixes #4122 (#4166)
fix(dashboard): revert `react-scripts`` upgrade to restore performance

This reverts commit 2e7cf6932a.

Signed-off-by: chansuke <moonset20@gmail.com>
2025-03-03 16:29:01 -06:00
dependabot[bot] 2213b07592
chore(deps): bump github.com/newrelic/newrelic-client-go/v2 from 2.53.0 to 2.54.0 (#4150)
chore(deps): bump github.com/newrelic/newrelic-client-go/v2

Bumps [github.com/newrelic/newrelic-client-go/v2](https://github.com/newrelic/newrelic-client-go) from 2.53.0 to 2.54.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v2.53.0...v2.54.0)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 15:48:36 -06:00
dependabot[bot] e033914389
chore(deps): bump actions/download-artifact from 4.1.8 to 4.1.9 (#4154)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.8 to 4.1.9.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](fa0a91b85d...cc20338598)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 15:47:26 -06:00
dependabot[bot] e876f43be9
chore(deps): bump codecov/codecov-action from 5.3.1 to 5.4.0 (#4157)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](13ce06bfc6...0565863a31)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 15:47:03 -06:00
dependabot[bot] 7b9279c5ae
chore(deps): bump docker/build-push-action from 6.14.0 to 6.15.0 (#4158)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](0adf995921...471d1dc4e0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 15:46:25 -06:00
dependabot[bot] 6fbb625bdf
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.29.6 to 1.29.8 (#4160)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.6 to 1.29.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.6...config/v1.29.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 15:46:05 -06:00
Matias Reparaz 3cb61fa80a
docs: Update USERS.md (#4162)
Update USERS.md

Adding X3M ads to argo-rollouts users

Signed-off-by: Matias Reparaz <mreparaz@gmail.com>
2025-03-03 15:45:42 -06:00
dependabot[bot] 444094a1ca
chore(deps): bump docker/setup-qemu-action from 3.4.0 to 3.6.0 (#4165)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.4.0 to 3.6.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](4574d27a47...29109295f8)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 11:29:30 -06:00
Jean Morais 77a139861c
fix(trafficrouting): patch VirtualService when there is only one named route (#4055)
* fix(trafficrouting): patch VirtualService when there is only one named route

Signed-off-by: Jean Morais <jeancdemorais@gmail.com>

* test(trafficrouting): fix TestGetHttpRouteIndexesToPatch

Signed-off-by: Jean Morais <jeancdemorais@gmail.com>

---------

Signed-off-by: Jean Morais <jeancdemorais@gmail.com>
2025-02-21 20:18:01 +00:00
Zach Aller 5e6936e06f
fix!: subresource scale selector changed for traffic routed canary (#4074)
* fix: subresouce scale selector for traffic routed canary

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: fix tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: fix lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: add code docs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: standardize test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2025-02-21 13:32:01 -06:00
Zach Aller 6e43cff7b2
fix: loop when paused and completed (#4134)
* fix: loop when paused and completed

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: loop when paused and completed

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: loop when paused and completed

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add e2e tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: loop when paused and completed

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: loop when paused and completed

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: loop when paused and completed

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add e2e tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add comments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* use function for completed

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove un-used variable

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2025-02-21 13:16:41 -06:00
dependabot[bot] e4e1942a0c
chore(deps): bump docker/build-push-action from 6.13.0 to 6.14.0 (#4141)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.13.0 to 6.14.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](ca877d9245...0adf995921)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-21 08:29:15 -06:00
Takayuki Takagi 494bfd909e
fix(metricprovider): not require address in kubernetes secret for Datadog. Fixes #4103 (#4145)
fix(metricprovider): not require address in kubernetes secret for Datadog

Signed-off-by: Takayuki Takagi <takagi.takayuki.yuuki@gmail.com>
2025-02-21 08:23:55 -06:00
dependabot[bot] d35fcb5b4c
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.14 to 1.43.15 (#4144)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.14 to 1.43.15.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/cloudwatch/v1.43.14...service/cloudwatch/v1.43.15)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-21 07:39:46 -06:00
dependabot[bot] 1672c67065
chore(deps): bump sigstore/cosign-installer from 3.8.0 to 3.8.1 (#4146)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.0 to 3.8.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](c56c2d3e59...d7d6bc7722)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-21 07:39:28 -06:00
dependabot[bot] 445e1c2b78
chore(deps): bump github.com/spf13/cobra from 1.8.1 to 1.9.1 (#4135)
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.8.1 to 1.9.1.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.8.1...v1.9.1)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-19 08:33:55 -06:00
dependabot[bot] cb7c0fc7c8
chore(deps): bump github.com/aws/smithy-go from 1.22.2 to 1.22.3 (#4136)
Bumps [github.com/aws/smithy-go](https://github.com/aws/smithy-go) from 1.22.2 to 1.22.3.
- [Release notes](https://github.com/aws/smithy-go/releases)
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/smithy-go/compare/v1.22.2...v1.22.3)

---
updated-dependencies:
- dependency-name: github.com/aws/smithy-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-19 08:33:28 -06:00
dependabot[bot] 76b3898c04
chore(deps): bump golang.org/x/sync from 0.10.0 to 0.11.0 (#4132)
Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.10.0 to 0.11.0.
- [Commits](https://github.com/golang/sync/compare/v0.10.0...v0.11.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 10:09:37 -06:00
mitchell amihod a748f05fde
fix(experiments): fire rollout event on experiment step (#4124)
* chore: ignore all debug_bin*

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* feat(experiments): Add a utility to check if an experiment belongs to a Rollout. We can then identify when an experiment is a Step in a Rollout.

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* chore: typo

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* feat(experiments): Fire k8s Event bound to the Rollout when it owns the Experiment

Addresses #4009. This change will fire Analysis Run events bound to the parent Rollout object when the Experiment is a Step in the Rollout.

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Loop through ownerReferences to find the rollout reference.

If we pass belongs to rollout check, we know there is a rollout to find.

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Tighten things up - don't need a bool - fetch the ref or nil

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

---------

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2025-02-14 10:09:09 -06:00
Jordan Rodgers d8994c0b19
feat: reconcile pod ephemeral metadata in parallel (#4130)
* perf: reconcile pod ephemeral metadata in parallel

Signed-off-by: Jordan Rodgers <jrodgers@figma.com>

* update tests for multiple pods

Signed-off-by: Jordan Rodgers <jrodgers@figma.com>

---------

Signed-off-by: Jordan Rodgers <jrodgers@figma.com>
2025-02-13 10:21:32 -06:00
Zach Aller a312e28021
fix: nil pointer on logging (#4127)
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2025-02-11 21:44:28 -06:00
dependabot[bot] 44eee2ec3b
chore(deps): bump docker/setup-qemu-action from 3.3.0 to 3.4.0 (#4120)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](53851d1459...4574d27a47)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 14:46:07 +00:00
dependabot[bot] a9e10fb73e
chore(deps): bump github.com/newrelic/newrelic-client-go/v2 from 2.52.0 to 2.53.0 (#4102)
chore(deps): bump github.com/newrelic/newrelic-client-go/v2

Bumps [github.com/newrelic/newrelic-client-go/v2](https://github.com/newrelic/newrelic-client-go) from 2.52.0 to 2.53.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v2.52.0...v2.53.0)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 08:21:27 -06:00
ayureidini 420aacb133
fix(experiments): propagate rolouts labels to experiments and replicasets (#4118)
fix(experiments): propagate rolouts labels to experiments and replica sets

Enhancement ticket: https://github.com/argoproj/argo-rollouts/issues/4113
This can be useful for complying to Tagging Policy imposed at cluster level
since there is no mechanism to add custom labels to Experiments and their
associated ReplicaSets.
Indeed, this could enable automatic reporting but also give required information
for investigation.

Signed-off-by: Ahmed YUREIDINI NOGALES <ahmed.yureidini@gmail.com>
Co-authored-by: Ahmed YUREIDINI NOGALES <ayureidininogales@ncelrnd2709.nce.amadeus.net>
2025-02-07 08:20:59 -06:00
dependabot[bot] cbf36efaf8
chore(deps): bump google.golang.org/protobuf from 1.36.4 to 1.36.5 (#4119)
Bumps google.golang.org/protobuf from 1.36.4 to 1.36.5.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 08:17:40 -06:00
dependabot[bot] c8f165c1ca
chore(deps): bump docker/setup-buildx-action from 3.8.0 to 3.9.0 (#4121)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.8.0 to 3.9.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](6524bf65af...f7ce87c1d6)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 08:15:41 -06:00
dependabot[bot] 70a946d56e
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.12 to 1.43.14 (#4115)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.12 to 1.43.14.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/cloudwatch/v1.43.12...service/cloudwatch/v1.43.14)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-06 22:58:07 +00:00
dependabot[bot] 1d47a97cd3
chore(deps): bump golang.org/x/oauth2 from 0.25.0 to 0.26.0 (#4108)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.25.0 to 0.26.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.25.0...v0.26.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-06 16:18:07 -06:00
dependabot[bot] fa17918a9e
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.29.4 to 1.29.6 (#4116)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.4 to 1.29.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.4...config/v1.29.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-06 16:17:15 -06:00
dependabot[bot] c3407844ca
chore(deps): bump sigstore/cosign-installer from 3.7.0 to 3.8.0 (#4105)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](dc72c7d5c4...c56c2d3e59)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-06 16:16:58 -06:00
Zach Aller ea914af830
fix: redo PR 3639 (#4114)
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2025-02-06 16:15:47 -06:00
Gonçalo Montalvão Marques 6761843977
docs: fix markdown rendering (#4109)
Signed-off-by: Gonçalo Montalvão Marques <9379664+gonmmarques@users.noreply.github.com>
2025-02-05 10:34:28 -06:00
Jordan Rodgers f829ae7984
fix: check ephemeral metadata is set before delete (#4089)
* fix: check ephemeral metadata is set before delete

Signed-off-by: Jordan Rodgers <jrodgers@figma.com>

* add test case

Signed-off-by: Jordan Rodgers <jrodgers@figma.com>

* address test comments

Signed-off-by: Jordan Rodgers <jrodgers@figma.com>

---------

Signed-off-by: Jordan Rodgers <jrodgers@figma.com>
2025-02-03 20:18:56 -06:00
dependabot[bot] db8e065044
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.29.3 to 1.29.4 (#4098)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.3 to 1.29.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.3...config/v1.29.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 17:07:37 +00:00
Ville Vesilehto 42117f9af4
fix: correct typo in linter settings key name (#4094)
The linter settings key was incorrectly named "linter-settings" instead of
"linters-settings", preventing proper parsing of goimports configuration.
This fixes the local-prefixes setting for import organization.

All affected files have been automatically reformatted to comply with the
now-active goimports rules for import ordering and grouping.

Signed-off-by: Ville Vesilehto <ville@vesilehto.fi>
2025-02-03 10:16:38 -06:00
dependabot[bot] 7695f8a8de
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.11 to 1.43.12 (#4099)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.11 to 1.43.12.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/cloudwatch/v1.43.11...service/cloudwatch/v1.43.12)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 10:12:22 -06:00
dependabot[bot] 4ecce02e70
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.35.0 to 1.36.0 (#4100)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.35.0 to 1.36.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.35.0...v1.36.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 10:12:03 -06:00
dependabot[bot] 4580c2d1e2
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.10 to 1.43.11 (#4091)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.10 to 1.43.11.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.43.10...service/cloudwatch/v1.43.11)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 17:58:17 +00:00
dependabot[bot] 73fda66371
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.29.2 to 1.29.3 (#4092)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.2 to 1.29.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.2...config/v1.29.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 11:13:01 -06:00
github-actions[bot] 38ed49959b
docs: Update Changelog (#4088)
* update changelog

* Update CHANGELOG.md formatting

---------

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2025-01-31 15:39:08 +00:00
Zach Aller 4f5d93bbe6
fix!: make `.spec.selector` immutable (#4084)
* fix: make selector immutable

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: make selector immutable

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: make selector optional for workloadRef

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2025-01-30 10:07:11 -06:00
dependabot[bot] 723e81ca69
chore(deps): bump github.com/evanphx/json-patch/v5 from 5.9.10 to 5.9.11 (#4085)
Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.9.10 to 5.9.11.
- [Release notes](https://github.com/evanphx/json-patch/releases)
- [Commits](https://github.com/evanphx/json-patch/compare/v5.9.10...v5.9.11)

---
updated-dependencies:
- dependency-name: github.com/evanphx/json-patch/v5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-30 09:52:51 -06:00
dependabot[bot] 236f878447
chore(deps): bump google.golang.org/grpc from 1.69.4 to 1.70.0 (#4086)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.69.4 to 1.70.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.69.4...v1.70.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-30 09:52:29 -06:00
dependabot[bot] dfa0eaef7c
chore(deps): bump github.com/evanphx/json-patch/v5 from 5.9.0 to 5.9.10 (#4080)
Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.9.0 to 5.9.10.
- [Release notes](https://github.com/evanphx/json-patch/releases)
- [Commits](https://github.com/evanphx/json-patch/compare/v5.9.0...v5.9.10)

---
updated-dependencies:
- dependency-name: github.com/evanphx/json-patch/v5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-28 08:44:33 -06:00
dependabot[bot] 78682686b9
chore(deps): bump github.com/hashicorp/go-plugin from 1.6.2 to 1.6.3 (#4081)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.6.2 to 1.6.3.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.6.2...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-28 08:44:08 -06:00
dependabot[bot] c25954dccf
chore(deps): bump google.golang.org/protobuf from 1.36.3 to 1.36.4 (#4082)
Bumps google.golang.org/protobuf from 1.36.3 to 1.36.4.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-28 08:43:46 -06:00
Kostis (Codefresh) f237af07be
chore: security fix https://nvd.nist.gov/vuln/detail/CVE-2023-46402 (#4083)
* chore: security fix https://nvd.nist.gov/vuln/detail/CVE-2023-46402

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

* docs: GitHub notification reference

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

---------

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>
2025-01-28 08:43:22 -06:00
chengjoey b101632af0
chore(deps): fix go list -m all show `unknown revision v0.0.0` (#4071)
fix go list -m all show `unknown revision v0.0.0`

Signed-off-by: joey <zchengjoey@gmail.com>
2025-01-27 16:49:42 -06:00
dependabot[bot] b6a9bec292
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.29.0 to 1.29.2 (#4077)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.29.0 to 1.29.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.29.0...config/v1.29.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 17:18:11 +00:00
dependabot[bot] e225d88da8
chore(deps): bump docker/build-push-action from 6.12.0 to 6.13.0 (#4076)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.13.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](67a2d409c0...ca877d9245)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 17:03:19 +00:00
dependabot[bot] 086d4cb755
chore(deps): bump actions/setup-go from 5.2.0 to 5.3.0 (#4066)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5.2.0...v5.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 10:33:55 -06:00
dependabot[bot] 8b5ecaed16
chore(deps): bump codecov/codecov-action from 5.1.2 to 5.3.1 (#4075)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.1.2 to 5.3.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](1e68e06f1d...13ce06bfc6)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 10:21:36 -06:00
dependabot[bot] 7d02604f6d
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.8 to 1.43.10 (#4078)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.8 to 1.43.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.43.8...service/fsx/v1.43.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 10:20:38 -06:00
dependabot[bot] c10bf66176
chore(deps): bump google.golang.org/protobuf from 1.36.2 to 1.36.3 (#4057)
Bumps google.golang.org/protobuf from 1.36.2 to 1.36.3.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 08:37:26 -06:00
github-actions[bot] 99903543ee
docs: Update Changelog (#4056)
* update changelog

* Update CHANGELOG.md formatting

---------

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2025-01-16 20:21:13 +00:00
dependabot[bot] 5905525b4a
chore(deps): bump docker/build-push-action from 6.10.0 to 6.12.0 (#4050)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.10.0 to 6.12.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](48aba3b46d...67a2d409c0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-16 13:40:28 -06:00
dependabot[bot] d6054867c6
chore(deps): bump docker/setup-qemu-action from 3.2.0 to 3.3.0 (#4034)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](49b3bc8e6b...53851d1459)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-16 11:57:31 -06:00
dependabot[bot] 00210827b7
chore(deps): bump google.golang.org/grpc from 1.69.2 to 1.69.4 (#4045)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.69.2 to 1.69.4.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.69.2...v1.69.4)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-16 10:58:11 -06:00
dependabot[bot] ba05acf4fd
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.6 to 1.43.8 (#4051)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.6 to 1.43.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.43.6...service/fsx/v1.43.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-16 10:57:20 -06:00
dependabot[bot] effef4477a
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.28.10 to 1.29.0 (#4053)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.10 to 1.29.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.28.10...v1.29.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-16 09:50:35 -06:00
Zach Aller 50cf6d7de9
fix: remove ReplicaSet write-back (#4044)
* fix: keep informer updated

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: move inside if

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: cleanup logic

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: don't write back to informer at all

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: fix tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: remove informer add

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: typo

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: fix lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: update comments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2025-01-16 09:18:46 -06:00
dependabot[bot] 5c1a2a9000
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.4 to 1.43.6 (#4039)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.4 to 1.43.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.43.4...service/fsx/v1.43.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-13 22:01:07 +00:00
dependabot[bot] 23c40c15ad
chore(deps): bump github.com/newrelic/newrelic-client-go/v2 from 2.51.3 to 2.52.0 (#4031)
chore(deps): bump github.com/newrelic/newrelic-client-go/v2

Bumps [github.com/newrelic/newrelic-client-go/v2](https://github.com/newrelic/newrelic-client-go) from 2.51.3 to 2.52.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v2.51.3...v2.52.0)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-13 15:23:33 -06:00
dependabot[bot] dbf5588e7e
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.28.7 to 1.28.10 (#4043)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.7 to 1.28.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.28.7...config/v1.28.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-13 15:22:19 -06:00
dependabot[bot] 00b57266b9
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.32.7 to 1.32.8 (#4041)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.32.7 to 1.32.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.7...v1.32.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 16:43:09 -06:00
Derek Brown efd3008a34
fix(controller): Fixed broken pprof links #4037 (#4038)
Signed-off-by: Derek Brown <6845676+DerekTBrown@users.noreply.github.com>
2025-01-10 16:42:00 -06:00
Hellspam c0ca5301bf
fix(experiments): move recorder event to after experiment reconciliation, fixes #4021 (#4022)
* fix: move recorder event to after experiment reconcilation, fixes #4021

Signed-off-by: Roy Arnon <roy.a@taboola.com>

* Add Taboola to the user list

---------

Signed-off-by: Roy Arnon <roy.a@taboola.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2025-01-08 18:15:11 +00:00
dependabot[bot] 07c1028545
chore(deps): bump golang.org/x/oauth2 from 0.24.0 to 0.25.0 (#4027)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.24.0 to 0.25.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 09:19:59 -06:00
dependabot[bot] 1874afa10d
chore(deps): bump softprops/action-gh-release from 2.2.0 to 2.2.1 (#4028)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](7b4da11513...c95fe14893)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 09:19:23 -06:00
dependabot[bot] dc2e00e3a0
chore(deps): bump google.golang.org/protobuf from 1.36.0 to 1.36.2 (#4029)
Bumps google.golang.org/protobuf from 1.36.0 to 1.36.2.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 09:18:34 -06:00
dependabot[bot] 097f5be132
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.28.6 to 1.28.7 (#4019)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.6 to 1.28.7.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.28.6...config/v1.28.7)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-06 18:08:38 +00:00
dependabot[bot] fde9cdeba9
chore(deps): bump google.golang.org/grpc from 1.69.0 to 1.69.2 (#4015)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.69.0 to 1.69.2.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.69.0...v1.69.2)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-06 11:05:38 -06:00
dependabot[bot] 5904f6481f
chore(deps): bump codecov/codecov-action from 5.1.1 to 5.1.2 (#4014)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](7f8b4b4bde...1e68e06f1d)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-06 10:59:34 -06:00
dependabot[bot] 6ca92be1fe
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.3 to 1.43.4 (#4020)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.43.3 to 1.43.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ssm/v1.43.3...service/fsx/v1.43.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-06 10:58:10 -06:00
Kostis (Codefresh) bdbb0f17c0
docs: mention the Kubernetes Downward API in the ephemeral metadata documentation page (#4025)
* :docs: mention Downward API in docs

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* :docs: Spelling mistakes

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

---------

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>
2025-01-05 08:25:32 -06:00
Kostis (Codefresh) 8a800a8717
docs: new syntax for docs conf (#4012)
Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>
2024-12-18 16:13:14 +00:00
Zach Aller 0eec0d89f8
fix: don't over reconcile on error (#4005)
* fix: don't over reconcile on error

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: don't send rollout context on field error

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: cleanup comments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: cleanup comments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix typo

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-12-17 16:03:01 +00:00
dependabot[bot] 707bd9f9eb
chore(deps): bump google.golang.org/protobuf from 1.35.2 to 1.36.0 (#4007)
Bumps google.golang.org/protobuf from 1.35.2 to 1.36.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-17 09:18:01 -06:00
dependabot[bot] e808d6ef62
chore(deps): bump docker/setup-buildx-action from 3.7.1 to 3.8.0 (#4006)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](c47758b77c...6524bf65af)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-16 19:08:32 -06:00
dependabot[bot] e5a9307958
chore(deps): bump actions/setup-go from 5.1.0 to 5.2.0 (#4000)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 10:42:59 -06:00
dependabot[bot] c348ecf270
chore(deps): bump google.golang.org/grpc from 1.68.1 to 1.69.0 (#4001)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.68.1 to 1.69.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.68.1...v1.69.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 10:42:41 -06:00
dependabot[bot] 6858812261
chore(deps): bump softprops/action-gh-release from 2.1.0 to 2.2.0 (#3999)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](01570a1f39...7b4da11513)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 10:42:20 -06:00
Rizwana Naaz 25e2b535db
fix: Upgrade go-retryablehttp to v0.7.7 (#3743)
Upgrade go-retryablehttp to v0.7.7

Signed-off-by: Rizwana777 <rizwananaaz177@gmail.com>
2024-12-12 18:33:41 -06:00
Youssef Rabie 21d57165b9
docs(analysis): add docs for consecutiveSuccessLimit (#3996)
Signed-off-by: Youssef Rabie <youssef.rabie@procore.com>
2024-12-11 14:07:37 -06:00
github-actions[bot] 37193bf535
docs: Update Changelog (#3992)
update changelog

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
2024-12-09 15:44:23 +00:00
William Van Hevelingen 5a1fa164ef
ci: add testing for k8s 1.30 and 1.31 (#3858)
* ci: add testing for k8s 1.30 and 1.31

Signed-off-by: william.vanhevelingen <william.vanhevelingen@acquia.com>

* Update Kubernetes versions' latest flags in workflow

---------

Signed-off-by: william.vanhevelingen <william.vanhevelingen@acquia.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-12-07 08:27:04 -06:00
Pierre Baillet (Oct) a4d50d8e65
docs: fix broken links (#3962)
Update notifications.md

- Fix external reference urls.
2024-12-06 11:58:08 -06:00
Nicolas Lamirault b3356a2eda
feat: New Prometheus metric: build_info (#3591)
* new Prometheus metrics build_info

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* fix: gofmt

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

---------

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
2024-12-06 10:12:10 -06:00
dependabot[bot] c335003427
chore(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#3985)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.9.0...v1.10.0)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-06 10:08:34 -06:00
dependabot[bot] db43539773
chore(deps): bump codecov/codecov-action from 5.0.7 to 5.1.1 (#3986)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.0.7 to 5.1.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](015f24e681...7f8b4b4bde)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-06 10:08:16 -06:00
William Van Hevelingen 02e9dd62b4
chore(deps): update golang to 1.23 (#3987)
Signed-off-by: william.vanhevelingen <william.vanhevelingen@acquia.com>
2024-12-06 10:07:58 -06:00
William Van Hevelingen 5e39d59311
chore: update golangci-lint to v1.61.0 (#3857)
Signed-off-by: william.vanhevelingen <william.vanhevelingen@acquia.com>
2024-12-05 22:49:01 +00:00
Youssef Rabie 1c6a7ff95a
feat(analysis): Add ConsecutiveSuccessLimit feature to Analysis (#3970)
Signed-off-by: Youssef Rabie <youssef.rabie@procore.com>
2024-12-05 16:14:58 -06:00
dependabot[bot] ffbaaad4ea
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.42.4 to 1.43.3 (#3980)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.42.4 to 1.43.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/emr/v1.42.4...service/ssm/v1.43.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-05 15:23:06 +00:00
Youssef Rabie 1bfcd0c344
fix(controller): fix race condition in updating ephemeral metadata (#3975)
Signed-off-by: Youssef Rabie <youssef.rabie@procore.com>
2024-12-05 08:50:36 -06:00
dependabot[bot] 947437962f
chore(deps): bump google.golang.org/grpc from 1.67.1 to 1.68.1 (#3979)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.67.1 to 1.68.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.67.1...v1.68.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-05 08:47:52 -06:00
dependabot[bot] 1dbe60c549
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.28.1 to 1.28.6 (#3981)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.1 to 1.28.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.28.1...config/v1.28.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-05 08:47:33 -06:00
arouco 7c063168cc
feat(metricprovider): credentials to download plugin (#3905)
* adding logic to defined headers to download plugins from secure sources.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* adding documentation for plugin download headers

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* removing insignificant line.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* increasing coverage

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* adding coverage.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* malformed url case coverage.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

---------

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>
2024-12-04 14:00:30 -06:00
Yusuke Abe 275623fedc
docs: add descriptions for additional default trigger templates (#3960)
Signed-off-by: chansuke <moonset20@gmail.com>
2024-12-04 13:46:08 -06:00
dependabot[bot] c5f3810023
chore(deps): bump codecov/codecov-action from 4.6.0 to 5.0.7 (#3961)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.6.0 to 5.0.7.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](b9fd7d16f6...015f24e681)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 13:45:33 -06:00
dependabot[bot] f7265e3b45
chore(deps): bump golang.org/x/oauth2 from 0.23.0 to 0.24.0 (#3949)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.23.0 to 0.24.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.23.0...v0.24.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 13:45:14 -06:00
dependabot[bot] 25d1a6edc3
chore(deps): bump google.golang.org/protobuf from 1.35.1 to 1.35.2 (#3950)
Bumps google.golang.org/protobuf from 1.35.1 to 1.35.2.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 13:44:56 -06:00
dependabot[bot] c40e5a8883
chore(deps): bump docker/build-push-action from 6.9.0 to 6.10.0 (#3963)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](4f58ea7922...48aba3b46d)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 13:42:17 -06:00
Cory Jacobsen 642d031747
fix(dashboard): Cleanup viewcontroller after each request. Fixes #2095 (#3966)
fix(dashboard): cleanup viewcontroller after each request. Fixes #2095

Signed-off-by: Cory Jacobsen <cory@7shifts.com>
2024-12-04 13:34:22 -06:00
Josef Kolář 35147d30a8
fix(dashboard): No redirect loop when running on root. Fixes #3967 (#3968)
fix(dashboard): no redirect loop with running on root

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>
2024-12-04 13:28:45 -06:00
Kostis (Codefresh) 0607239cc3
docs: document dynamicStableScale (#3978)
Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>
2024-12-04 13:24:55 -06:00
Cory Jacobsen 2de796683a
docs: add 7shifts to users.md (#3965)
Signed-off-by: Cory Jacobsen <cory@7shifts.com>
2024-12-04 13:00:39 -06:00
dependabot[bot] 5f59344adf
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.32.3 to 1.32.4 (#3934)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.32.3 to 1.32.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.3...v1.32.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-13 22:33:57 -07:00
dependabot[bot] 1a05565827
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.42.3 to 1.42.4 (#3935)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.42.3 to 1.42.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/emr/v1.42.3...service/emr/v1.42.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-13 22:33:40 -07:00
dependabot[bot] b899cf57f0
chore(deps): bump softprops/action-gh-release from 2.0.9 to 2.1.0 (#3938)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.9 to 2.1.0.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](e7a8f85e1c...01570a1f39)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-13 22:33:23 -07:00
dependabot[bot] 8ff3d0d77a
chore(deps): bump github.com/newrelic/newrelic-client-go/v2 from 2.50.1 to 2.51.3 (#3939)
chore(deps): bump github.com/newrelic/newrelic-client-go/v2

Bumps [github.com/newrelic/newrelic-client-go/v2](https://github.com/newrelic/newrelic-client-go) from 2.50.1 to 2.51.3.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v2.50.1...v2.51.3)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-13 22:33:03 -07:00
Jahvon Dockery 7a63088ab2
docs: add CarGurus to users.md (#3940)
Signed-off-by: Jahvon Dockery <jdockery@cargurus.com>
2024-11-13 22:32:44 -07:00
Yusuke Abe e0968a9287
chore: update the link of DCO in PR template (#3944)
chore: update the link of DCO

Signed-off-by: chansuke <moonset20@gmail.com>
2024-11-13 22:32:23 -07:00
Dylan Schlager 53c4f12d66
fix: remove condition where header routes can stay directed at empty service in preemption (#3898)
* fix: remove condition where header routes can stay directed at empty service in preemption

Signed-off-by: Dylan Schlager <dylan.schlager@lattice.com>

* add unit test

Signed-off-by: Dylan Schlager <dylan.schlager@lattice.com>

* lint

Signed-off-by: Dylan Schlager <dylan.schlager@lattice.com>

---------

Signed-off-by: Dylan Schlager <dylan.schlager@lattice.com>
2024-11-02 20:50:29 -05:00
dependabot[bot] 15c723fd81
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.42.2 to 1.42.3 (#3923)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.42.2 to 1.42.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.42.2...service/emr/v1.42.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 11:04:44 -05:00
dependabot[bot] 3296d6d651
chore(deps): bump github.com/newrelic/newrelic-client-go/v2 from 2.48.2 to 2.50.1 (#3924)
chore(deps): bump github.com/newrelic/newrelic-client-go/v2

Bumps [github.com/newrelic/newrelic-client-go/v2](https://github.com/newrelic/newrelic-client-go) from 2.48.2 to 2.50.1.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v2.48.2...v2.50.1)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 11:04:26 -05:00
dependabot[bot] 7d3627d669
chore(deps): bump softprops/action-gh-release from 2.0.8 to 2.0.9 (#3928)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.8 to 2.0.9.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](c062e08bd5...e7a8f85e1c)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 11:04:02 -05:00
Selçuk Usta 8bd36d813b
docs(analysis): plugin url is changed and redirected to argoproj-labs project (#3922)
update docs/analysis/plugins.md

Signed-off-by: selcukusta <selcukusta@gmail.com>
2024-10-31 07:42:36 -05:00
Alexandre Gaudreault 68afdbf9b0
docs: document canary step plugin (alpha) (#3906)
* docs(plugins): document canary step plugin (alpha)

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* add docs for step plugins

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* mkdocs

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* spell check

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* review

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

---------

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>
2024-10-29 17:08:32 +00:00
dependabot[bot] 9ea0de1f6e
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.38 to 1.28.1 (#3917)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.38 to 1.28.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.38...config/v1.28.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-29 14:57:17 +00:00
dependabot[bot] 51b02adaba
chore(deps): bump github.com/hashicorp/go-plugin from 1.6.1 to 1.6.2 (#3908)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.6.1 to 1.6.2.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.6.1...v1.6.2)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-29 09:47:46 -05:00
dependabot[bot] cb86d48e57
chore(deps): bump actions/setup-go from 5.0.2 to 5.1.0 (#3912)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5.0.2...v5.1.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-29 09:47:20 -05:00
Maksim Bezsaznyj 8503baa8fe
fix(controller): weighted experiment validation should allow delegating to trafficRouter plugins (#3909)
Signed-off-by: Maksim Bezsaznyj <bezmax@gmail.com>
2024-10-29 09:46:58 -05:00
Ian Rudie 869687932a
docs: GTW API support changed to Gloo Gateway instead of GloodMesh (#3914)
correct GTW API support to state Gloo Gateway instead of GloodMesh

Signed-off-by: Ian Rudie <ian.rudie@solo.io>
2024-10-29 09:23:03 -05:00
dependabot[bot] 79c445f48e
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.32.2 to 1.32.3 (#3919)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.32.2 to 1.32.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.2...v1.32.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-29 09:22:04 -05:00
Selçuk Usta 8ac6be847a
docs(analysis): new plugin is added to the documentation (#3915)
USERS.md is modified & new plugin is added to the documentation

Signed-off-by: selcukusta <selcukusta@gmail.com>
2024-10-29 09:21:03 -05:00
Alexandre Gaudreault 1264f8d9b3
chore: add step plugin proposal (#3480)
step plugin proposal

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>
2024-10-19 18:25:06 +00:00
dependabot[bot] ee356d0aeb
chore(deps): bump google.golang.org/grpc from 1.66.2 to 1.67.1 (#3903)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.66.2 to 1.67.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.66.2...v1.67.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-18 08:38:55 -05:00
Li Wang b2a6844f26
fix: rollout should skip timeout when paused (#3711)
* fix: rollout should timeout when paused

Signed-off-by: Li Wang <li.wang3@fmr.com>

* chore: add test cases for Rollout timeout when paused or aborted

Signed-off-by: Li Wang <li.wang3@fmr.com>

---------

Signed-off-by: Li Wang <li.wang3@fmr.com>
2024-10-17 10:59:52 -05:00
dependabot[bot] 3cf177dbee
chore(deps): bump docker/setup-buildx-action from 3.6.1 to 3.7.1 (#3876)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.6.1 to 3.7.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](988b5a0280...c47758b77c)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-17 10:51:49 -05:00
Zach Aller de827d4144
fix: check isScalingEvent only on stable and newRS (#3883)
* test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add comments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* comments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* no need to check length, same in both versions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add active filter back

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* rename vars add comments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove comment

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-10-17 10:49:48 -05:00
dependabot[bot] 060566cbf0
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.40.8 to 1.42.2 (#3901)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.40.8 to 1.42.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/athena/v1.40.8...service/s3/v1.42.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-16 21:05:19 -05:00
dependabot[bot] 806d07cca1
chore(deps): bump github.com/aws/smithy-go from 1.21.0 to 1.22.0 (#3885)
Bumps [github.com/aws/smithy-go](https://github.com/aws/smithy-go) from 1.21.0 to 1.22.0.
- [Release notes](https://github.com/aws/smithy-go/releases)
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/smithy-go/compare/v1.21.0...v1.22.0)

---
updated-dependencies:
- dependency-name: github.com/aws/smithy-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-16 16:50:37 +00:00
dependabot[bot] ac5a0d7368
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.31.0 to 1.32.2 (#3886)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.31.0 to 1.32.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.31.0...v1.32.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-16 11:50:14 -05:00
dependabot[bot] 6c61ed2a22
chore(deps): bump google.golang.org/protobuf from 1.34.2 to 1.35.1 (#3887)
Bumps google.golang.org/protobuf from 1.34.2 to 1.35.1.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-16 11:49:57 -05:00
Youssef Rabie 785ea17563
fix(metricprovider): fix handling null values in datadog (#3893)
Signed-off-by: Youssef Rabie <youssef.rabie@procore.com>
2024-10-14 21:00:33 -05:00
dependabot[bot] b0d74e5def
chore(deps): bump golang.org/x/oauth2 from 0.22.0 to 0.23.0 (#3841)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.22.0 to 0.23.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 15:04:58 -05:00
dependabot[bot] 9f182220f5
chore(deps): bump codecov/codecov-action from 4.5.0 to 4.6.0 (#3865)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](e28ff129e5...b9fd7d16f6)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 14:52:05 -05:00
Ashu 4afdb85224
fix(dashboard): analysis modal crashed when value not valid (#3881)
* handle the parse issue
Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* handle the parse error

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* handle the parse error

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* handle the parse error

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

---------

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>
2024-10-09 13:32:09 -05:00
dependabot[bot] d49b3fa166
chore(deps): bump github.com/newrelic/newrelic-client-go/v2 from 2.45.0 to 2.48.2 (#3874)
chore(deps): bump github.com/newrelic/newrelic-client-go/v2

Bumps [github.com/newrelic/newrelic-client-go/v2](https://github.com/newrelic/newrelic-client-go) from 2.45.0 to 2.48.2.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v2.45.0...v2.48.2)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 12:58:23 -05:00
dependabot[bot] e9dad99810
chore(deps): bump sigstore/cosign-installer from 3.6.0 to 3.7.0 (#3875)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](4959ce089c...dc72c7d5c4)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 12:58:06 -05:00
Mate Gogiberidze 50300e5525
docs: add TBC Bank to USERS.md (#3871)
* docs: add TBC Bank to USERS.md

Signed-off-by: Mate Gogiberidze <gogiberidzemate9@gmail.com>

* docs: reordered alpabethical

Signed-off-by: Mate Gogiberidze <gogiberidzemate9@gmail.com>

---------

Signed-off-by: Mate Gogiberidze <gogiberidzemate9@gmail.com>
2024-10-07 10:42:55 -05:00
Taehong Kim 5bcf340a23
docs: Update specification document (#3877)
doc: Update specification document about setCanaryScale

Signed-off-by: kth496 <taehongkim496@gmail.com>
2024-10-07 10:42:38 -05:00
dependabot[bot] 6ced7fc986
chore(deps): bump docker/build-push-action from 6.8.0 to 6.9.0 (#3863)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.8.0 to 6.9.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](32945a3392...4f58ea7922)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 09:55:52 -05:00
dependabot[bot] 3df034c865
chore(deps): bump docker/build-push-action from 6.7.0 to 6.8.0 (#3860)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.7.0 to 6.8.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](5cd11c3a4c...32945a3392)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-30 19:10:28 -05:00
Miles 4e44913329
fix: stop rollout from entering degraded state during blueGreen pause. Fixes #3843 (#3845)
add check for overall pause condition to indefinite step

Signed-off-by: Miles <miles.wilson@wolterskluwer.com>
Co-authored-by: Miles <miles.wilson@wolterskluwer.com>
2024-09-27 14:50:53 +00:00
John Wood 9b60ecaaa2
docs: clarify supported deployment strategies (#3823)
Signed-off-by: John Wood <jmw.home@gmail.com>
2024-09-27 09:13:16 -05:00
dependabot[bot] a0a520c4d7
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.33 to 1.27.38 (#3851)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.33 to 1.27.38.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.33...config/v1.27.38)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-27 09:02:22 -05:00
Youssef Rabie f32b2f3fb5
fix(trafficrouting): add nil check for desired annotations map in ALB… (#3853)
fix(trafficrouting): add nil check for desired annotations map in ALB ingress

Signed-off-by: Youssef Rabie <youssef.rabie@procore.com>
2024-09-27 09:02:05 -05:00
mitchell amihod ff93786194
docs: Update metric job docs with some of the available config options (#3839)
[chore] Update metric job docs with some of the available config options

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2024-09-24 13:51:17 -05:00
Leonardo Luz Almeida a964a8078c
docs: Clarify analysis count with value 0 (#3847)
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2024-09-24 14:30:14 +00:00
dependabot[bot] 00e39b1148
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.40.5 to 1.40.8 (#3838)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.40.5 to 1.40.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/rds/v1.40.5...service/athena/v1.40.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-18 09:48:56 -05:00
dependabot[bot] c3db7611f4
chore(deps): bump github.com/newrelic/newrelic-client-go/v2 from 2.43.1 to 2.45.0 (#3829)
chore(deps): bump github.com/newrelic/newrelic-client-go/v2

Bumps [github.com/newrelic/newrelic-client-go/v2](https://github.com/newrelic/newrelic-client-go) from 2.43.1 to 2.45.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v2.43.1...v2.45.0)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-18 09:47:46 -05:00
dependabot[bot] d750376137
chore(deps): bump google.golang.org/grpc from 1.65.0 to 1.66.2 (#3831)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.65.0 to 1.66.2.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.65.0...v1.66.2)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-18 09:47:29 -05:00
maru 0258071ccf
docs: fix a link to e2e.yaml (#3834)
Signed-off-by: maru <marumaru.niconico@gmail.com>
2024-09-18 09:44:10 -05:00
Bishal Thapa e51e924133
chore: Add Trustly to USERS.md (#3837)
* chore: Add Trustly to users

Signed-off-by: Bishal Thapa <bishal.thapa@trustly.com>

* Update USERS.md

Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Bishal Thapa <bishal.thapa@trustly.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-09-18 14:31:58 +00:00
dependabot[bot] b8a9bf54f8
chore(deps): bump peter-evans/create-pull-request from 6 to 7 (#3819)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-09 14:25:12 -05:00
dependabot[bot] 4135fae152
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.31 to 1.27.33 (#3822)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.31 to 1.27.33.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.31...config/v1.27.33)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-09 14:23:49 -05:00
arouco bfef7f0d2b
feat: support multi account Datadog metrics provider (#3787)
* Adding support for multi datadog accounts.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* Removing default secret name in the manifest.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* Adding secret ref to analysis template, analsys run and cluster analysis template.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* reentering removed command

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* Documentation updated

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* Update docs/analysis/datadog.md

Co-authored-by: Thibault Jamet <tjamet@users.noreply.github.com>
Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* Adding removed code and removing string from log.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* Rewriting documentation with the correct flow.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>

* updated credential finders logic and added tests

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>
(cherry picked from commit 36a9c0601eef055eaa88faa8cfd04fd76fc54b87)
Signed-off-by: Ariadna Rouco <ariadna.rouco@adevinta.com>

* Added test case for credentials not found.

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>
(cherry picked from commit 7703ff960f2b27f1fffef234d4c9a686d1375397)
Signed-off-by: Ariadna Rouco <ariadna.rouco@adevinta.com>

* added tests for findCredential method.

(cherry picked from commit eab99be055cff27cab44e76955d8a6611807aaeb)
Signed-off-by: Ariadna Rouco <ariadna.rouco@adevinta.com>

* updating generated.pd.go

Signed-off-by: Ariadna Rouco <ariadna.rouco@adevinta.com>

---------

Signed-off-by: Ariadna Rouco <ariadna.rouco@gmail.com>
Signed-off-by: Ariadna Rouco <ariadna.rouco@adevinta.com>
Co-authored-by: Thibault Jamet <tjamet@users.noreply.github.com>
2024-08-28 00:21:10 +02:00
Wietse Muizelaar 39764fb239
fix(trafficrouting): Fix downtime on initial deployment using Istio DestinationRule Subsets. Fixes #2507 (#3602)
Signed-off-by: Wietse Muizelaar <wmuizelaar@bol.com>
2024-08-28 00:13:16 +02:00
dependabot[bot] 22cdc1f258
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.30 to 1.27.31 (#3807)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.30 to 1.27.31.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.30...config/v1.27.31)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-27 17:47:44 +00:00
Jahvon Dockery f9b62a8da5
fix: retain non-nginx canary annotations. Fixes: #1070 (#3806)
fix: retain nginx canary annotations

Signed-off-by: Jahvon Dockery <jdockery@cargurus.com>
2024-08-27 12:21:23 -05:00
dependabot[bot] 8a9ef9f8ee
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.40.3 to 1.40.5 (#3808)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.40.3 to 1.40.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/rds/v1.40.3...service/rds/v1.40.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-27 12:10:55 -05:00
dependabot[bot] 23e186e43d
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.27 to 1.27.30 (#3804)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.27 to 1.27.30.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.27...config/v1.27.30)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 11:46:20 -05:00
Zach Aller 7938e84db6
chore: move ReplicaSet creation and Rollout validation earlier during the reconciliation process. (#3657)
refactor replicaset creation

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-08-26 11:45:50 -05:00
Thomas Martin 80fff8e89c
fix(dashboard): parse analysis values with JSON5 to handle NaN. Fixes #2758 (#3801)
fix(ui analysis-modal): parse analysis values with JSON5 to handle NaN

Signed-off-by: AppliNH <applinh@protonmail.com>
2024-08-22 19:27:51 +02:00
dependabot[bot] a38748ba71
chore(deps): bump github.com/newrelic/newrelic-client-go/v2 from 2.41.2 to 2.43.1 (#3793)
chore(deps): bump github.com/newrelic/newrelic-client-go/v2

Bumps [github.com/newrelic/newrelic-client-go/v2](https://github.com/newrelic/newrelic-client-go) from 2.41.2 to 2.43.1.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v2.41.2...v2.43.1)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-15 08:31:59 -05:00
dependabot[bot] 463b63e6ac
chore(deps): bump github.com/aws/smithy-go from 1.20.3 to 1.20.4 (#3794)
Bumps [github.com/aws/smithy-go](https://github.com/aws/smithy-go) from 1.20.3 to 1.20.4.
- [Release notes](https://github.com/aws/smithy-go/releases)
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/smithy-go/compare/v1.20.3...v1.20.4)

---
updated-dependencies:
- dependency-name: github.com/aws/smithy-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-15 08:31:41 -05:00
dependabot[bot] c1ffa8e1ab
chore(deps): bump docker/build-push-action from 6.6.1 to 6.7.0 (#3791)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.6.1 to 6.7.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](16ebe778df...5cd11c3a4c)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-14 15:54:45 -05:00
Orlando Valdez 97ded54e3f
feat(analysis): Adds timeout property to NewRelic metrics provider. Resolves: #3741 (#3742)
* Add timeout property

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Add option to specify nrql timeout

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Update newrelic docs

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Indent gql query

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Slim down GQL query

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Add missing codegen output after the merge

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Add tests

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Add mock client comments

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Fix response struct

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Codegen after merge

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

---------

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>
2024-08-14 15:54:28 -05:00
github-actions[bot] 36b9e15e39
docs: Update Changelog (#3788)
* update changelog

* Update CHANGELOG.md

---------

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-08-13 22:20:50 +00:00
John Wood 0397210a79
feat(controller): enable pprof profiling support (#3769)
* feat(controller): enable pprof profiling

Signed-off-by: John Wood <jmw.home@gmail.com>

* wip

Signed-off-by: John Wood <jmw.home@gmail.com>

* Consolidate --enable-pprof and --pprof-port into single config variable

Signed-off-by: John Wood <jmw.home@gmail.com>

---------

Signed-off-by: John Wood <jmw.home@gmail.com>
2024-08-13 11:27:33 -05:00
dependabot[bot] e619a51a16
chore(deps): bump github.com/influxdata/influxdb-client-go/v2 from 2.13.0 to 2.14.0 (#3786)
chore(deps): bump github.com/influxdata/influxdb-client-go/v2

Bumps [github.com/influxdata/influxdb-client-go/v2](https://github.com/influxdata/influxdb-client-go) from 2.13.0 to 2.14.0.
- [Release notes](https://github.com/influxdata/influxdb-client-go/releases)
- [Changelog](https://github.com/influxdata/influxdb-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/influxdata/influxdb-client-go/compare/v2.13.0...v2.14.0)

---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-13 10:42:18 -05:00
Alexandre Gaudreault 3c15eb1454
fix: replicaSet not scaled down due to incorrect annotations (#3762) (#3784)
dco

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>
2024-08-12 12:02:01 -05:00
Kostis (Codefresh) f6ce5ce003
docs: remove obsolete roadmap page (#3783)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2024-08-12 15:24:31 +00:00
Kevin Ji 6b2ee92915
fix(metricprovider): reuse http.Transport for http.Client (#3780)
The current code creates a new http.Transport for each http.Client that is
created, which leads to a leak in TCP connections due to keep-alive.

Instead, reuse the same http.Transport between requests. According to the
http.Transport docs, this is safe for concurrent use.

Signed-off-by: Kevin Ji <1146876+kevinji@users.noreply.github.com>
2024-08-12 03:10:32 +02:00
Andy Reitz 8f74229d59
docs: Update ephemeral-metadata.md with a small fix (#3782)
Update ephemeral-metadata.md

A small grammatical fix.

Signed-off-by: Andy Reitz <ajr9@po.cwru.edu>
2024-08-12 03:08:37 +02:00
Kevin Ji 54cef88794
chore: capitalize AS in Dockerfile (#3781)
Signed-off-by: Kevin Ji <1146876+kevinji@users.noreply.github.com>
2024-08-12 03:08:13 +02:00
dependabot[bot] 825a7caf88
chore(deps): bump docker/build-push-action from 6.5.0 to 6.6.1 (#3776)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.5.0 to 6.6.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](5176d81f87...16ebe778df)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-08 10:08:14 -05:00
dependabot[bot] b448b76faf
chore(deps): bump sigstore/cosign-installer from 3.5.0 to 3.6.0 (#3777)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](59acb6260d...4959ce089c)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-08 08:59:01 -05:00
Alexandre Gaudreault 74c1a947ab
feat(controller): add canary steps plugin (#3521)
* making code for step plugin

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* codegen

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* unit tests

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* rpc tests

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* add rpc plugin tests

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* better message

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* add order test

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* implement terminate

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* Terminate tests

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* aborted logic + some unit test

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* unit test

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* abort test

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* load plugin

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* more tests

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* dont use newStatus

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* codegen preserve fields

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* some test before full promote problem

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* fix full promotion

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* fix plugins

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* codegen

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* add disabled rollout

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* codegen

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* fix duration cast

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* refactor to use context object

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* adding debug logs.

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* need to adjust the backoff on each reconcile

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* fix e2e

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* unit test

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* fix abort and promote logic

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* fix aborted rollout do not retry

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* add event

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* change enabled to status

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* unit tests

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* more test

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* cleanup

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* add docs

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* docs

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* makefile for e2e

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* disable e2e when not configured

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* Add some UI for the extension

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* codegen

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-08-08 08:58:42 -05:00
Hidetake Iwata 48131ebedc
fix: Support kustomize v5 labels transformer. Fixes #3105 (#3775)
* feat: add rollout-transform-2023-10-09.yaml which has been adapted for kustomize v5

Signed-off-by: Jethro Lee <jethro.lee@a-bly.com>

* Rename to rollout-transform-kustomize-v5.yaml

Signed-off-by: Hidetake Iwata <int128@gmail.com>

* Add link to doc

Signed-off-by: Hidetake Iwata <int128@gmail.com>

---------

Signed-off-by: Jethro Lee <jethro.lee@a-bly.com>
Signed-off-by: Hidetake Iwata <int128@gmail.com>
Co-authored-by: Jethro Lee <jethro.lee@a-bly.com>
2024-08-07 11:29:45 -05:00
benminter-treatwell 827ce595c8
fix(controller): use the stableRS from the rollout context rather tha… (#3664)
* fix(controller): use the stableRS from the rollout context rather than inferring it from the active selector, to deal with the edge case where the stableRS != activeRS during analysis templates

Signed-off-by: ben.minter <ben.minter@treatwell.com>

* fix(controller): update tests which were relying on this bug(?)

Signed-off-by: ben.minter <ben.minter@treatwell.com>

* fix(controller): add clarity to comment in the case there is no stableRS

Signed-off-by: ben.minter <ben.minter@treatwell.com>

* fix(controller): add a test to assert that the stablers is not scaled by the reconiliation on start, by checking the log

Signed-off-by: ben.minter <ben.minter@treatwell.com>

---------

Signed-off-by: ben.minter <ben.minter@treatwell.com>
2024-08-06 10:36:00 -05:00
Aleksander Korzynski 0ca5932701
docs: add Priceline to USERS.md (#3764)
Signed-off-by: Aleksander Korzynski <89802643+akorzy-pl@users.noreply.github.com>
2024-08-06 09:57:18 -05:00
dependabot[bot] cf469839c2
chore(deps): bump golang.org/x/oauth2 from 0.21.0 to 0.22.0 (#3766)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.21.0 to 0.22.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.21.0...v0.22.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-06 09:57:01 -05:00
John Wood f2c737c986
chore: Add Cloudflare to users (#3768)
Add Cloudflare to users

Signed-off-by: John Wood <jmw.home@gmail.com>
2024-08-06 09:56:05 -05:00
Bruno Aumiller Tarijon 708db68ed1
fix(controller): Get the right resourceName for traefik.io.Fixes #3615 (#3759)
Signed-off-by: BrunoTarijon <btarijon@gmail.com>
2024-08-01 09:03:33 -05:00
Martyn Dale 6c873a95ec
fix(dashboard): Update pod status logic to support native sidecars. Fixes #3366 (#3639)
* Update pod status logic to support native sidecars

Signed-off-by: Martyn Dale <mdale@verticalscope.com>

* Fix lint issues

Signed-off-by: Martyn Dale <mdale@verticalscope.com>

---------

Signed-off-by: Martyn Dale <mdale@verticalscope.com>
2024-07-31 09:11:56 -05:00
Kostis (Codefresh) 643d684f51
docs: added clarifications for short releases (#3753)
* docs: added clarifications for short releases

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* docs: clarify current Argo Rollout behavior

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* docs: also clarify multiple versions

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

---------

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>
2024-07-30 20:42:26 -05:00
dependabot[bot] 65fc9ef476
chore(deps): bump docker/setup-buildx-action from 3.5.0 to 3.6.1 (#3755)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.5.0 to 3.6.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](aa33708b10...988b5a0280)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-30 09:33:52 -05:00
Zach Aller 3024c2a6fb
chore: use codecov config and only send merged coverage file (#3751)
* make sure config is used and only send merged coverage

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* checkout repo to get codecov config

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* use folder not file

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* disable search

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* switch merged output format

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* stop controller before upload

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* stop controller

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* stop controller

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* only stop on latest

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* print controller pids

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix erro

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add ls

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* kill correct process

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add proper cover for unit to ues with merge

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* upload directory now

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-07-29 14:59:33 -05:00
dependabot[bot] e638c88d40
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.26 to 1.27.27 (#3732)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.26 to 1.27.27.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.26...config/v1.27.27)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-25 17:24:21 +00:00
Zach Aller 638ca1b562
fix: separate e2e and unit test reporting uploads (#3747)
* seperate test reporting

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix file name path

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-07-25 09:31:43 -05:00
cyrilico 872f2aca56
feat(controller): Allow specifying full annotations for nginx canary ingresses. (#3671)
* refactor according to suggestions

Signed-off-by: cyrilico <19289022+cyrilico@users.noreply.github.com>

* codegen

Signed-off-by: cyrilico <19289022+cyrilico@users.noreply.github.com>

* missing codegen

Signed-off-by: cyrilico <19289022+cyrilico@users.noreply.github.com>

* Update specification.md

Signed-off-by: cyrilico <19289022+cyrilico@users.noreply.github.com>

* further clarify when to use new field

Signed-off-by: cyrilico <19289022+cyrilico@users.noreply.github.com>

---------

Signed-off-by: cyrilico <19289022+cyrilico@users.noreply.github.com>
2024-07-25 08:51:27 -05:00
Zach Aller d3d630d60f
fix: add secrets so we can download across workflows (#3746)
add secrets so we can download across workflows

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-07-24 18:45:30 -05:00
Zach Aller 9884b2a4c4
fix: e2e test results processing change key name to run-id (#3744)
fix key name to run-id

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-07-24 14:43:27 -05:00
dependabot[bot] f96eaca4ef
chore(deps): bump softprops/action-gh-release from 2.0.6 to 2.0.8 (#3733)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.6 to 2.0.8.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](a74c6b72af...c062e08bd5)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-24 19:10:20 +00:00
Zach Aller c727a3c2b1
chore: code coverage for e2e (#3740)
* first pass at coverage for e2e

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change folder names

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* only upload latest e2e results

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change name of step

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix matrix name

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* rename files

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add directory

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* use correct upload name

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* move event file

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* bad move of event_file

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix uncomment

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* only run on testing workflow

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove events from go workflow

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* use new download metho

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove specific file

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change workflow name

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove double upload

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-07-24 12:48:06 -05:00
dependabot[bot] 5dbd7a8efc
chore(deps): bump docker/setup-qemu-action from 3.1.0 to 3.2.0 (#3736)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](5927c834f5...49b3bc8e6b)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-23 15:28:07 +00:00
dependabot[bot] 63c0eecf55
chore(deps): bump docker/build-push-action from 6.4.0 to 6.5.0 (#3737)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.4.0 to 6.5.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](a254f8ca60...5176d81f87)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-23 09:45:40 -05:00
dependabot[bot] 9a230b37f8
chore(deps): bump docker/setup-buildx-action from 3.4.0 to 3.5.0 (#3738)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](4fd812986e...aa33708b10)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-23 09:45:26 -05:00
dependabot[bot] 1189944e34
chore(deps): bump docker/login-action from 3.2.0 to 3.3.0 (#3739)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](0d4c9c5ea7...9780b0c442)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-23 09:45:11 -05:00
Alex Eftimie d962435606
fix(analysis): explicitly set datadog aggregator to last only on v2 (#3730)
* Datadog: explicitly set aggregator to last

the field is required by API and we currently leave it empty string

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* add unit tests

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

---------

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>
2024-07-18 09:20:50 -05:00
dependabot[bot] e4c374d9d7
chore(deps): bump docker/build-push-action from 6.3.0 to 6.4.0 (#3723)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](1a162644f9...a254f8ca60)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-16 15:44:52 -05:00
T Nguyen fdcb0d8657
docs: correct the case that autoPromotionSeconds feature is ignored (#2388)
* chore(deps): bump actions/upload-artifact from 2 to 3 (#1973)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: toann <toann@axon.com>

* chore: sign container images and checksum assets (#2334)

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
Signed-off-by: toann <toann@axon.com>

* chore(deps): upgrade ui deps to fix high security cve's (#2345)

* ui: upgrade deps to fix high security cve's

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Signed-off-by: toann <toann@axon.com>

* chore(deps): bump imjasonh/setup-crane from 0.1 to 0.2 (#2387)

Bumps [imjasonh/setup-crane](https://github.com/imjasonh/setup-crane) from 0.1 to 0.2.
- [Release notes](https://github.com/imjasonh/setup-crane/releases)
- [Commits](https://github.com/imjasonh/setup-crane/compare/v0.1...v0.2)

---
updated-dependencies:
- dependency-name: imjasonh/setup-crane
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: toann <toann@axon.com>

* docs: Fix the case that autoPromotionSeconds feature is ignored
Signed-off-by: Toan Nguyen <toann241196@gmail.com>

Signed-off-by: toann <toann@axon.com>

* chore(deps): bump dependabot/fetch-metadata from 1.3.4 to 1.3.5 (#2390)

Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/dependabot/fetch-metadata/releases)
- [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.3.4...v1.3.5)

---
updated-dependencies:
- dependency-name: dependabot/fetch-metadata
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: toann <toann@axon.com>

* Update docs/features/bluegreen.md

Co-authored-by: Rohit Agrawal <rohit.agrawal@databricks.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: toann <toann@axon.com>
Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Marquis <34fathombelow@protonmail.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: toann <toann@axon.com>
Co-authored-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2024-07-11 16:13:57 -05:00
Orlando Valdez d89abb29f8
feat(analysis): Returns the resolved query as metadata in the New Relic provider (#3715)
* Adds newrelic resolved query to metadata

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Fix comment

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Updates tests

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

* Update docs

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>

---------

Signed-off-by: Orlando Valdez <orlando.valdez@creditkarma.com>
2024-07-11 15:36:09 -05:00
dependabot[bot] 3d296535a8
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.24 to 1.27.26 (#3717)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.24 to 1.27.26.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.24...config/v1.27.26)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-11 14:23:32 -05:00
dependabot[bot] fdfc75ef4e
chore(deps): bump actions/setup-go from 5.0.1 to 5.0.2 (#3716)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5.0.1...v5.0.2)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-11 10:41:58 -05:00
dependabot[bot] 813b94c46d
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.40.1 to 1.40.3 (#3719)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.40.1 to 1.40.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/rds/v1.40.3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.40.1...service/rds/v1.40.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-11 10:41:36 -05:00
Matt Kelly 764f530049
docs: copy omission in rollout docs (#3690)
Fix copy omission

Looks like this sentence is incomplete. Might I suggest this change to make it read more naturally?
2024-07-10 08:27:13 -05:00
dependabot[bot] c366c5ac77
chore(deps): bump docker/setup-qemu-action from 3.0.0 to 3.1.0 (#3696)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](68827325e0...5927c834f5)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 08:26:13 -05:00
dependabot[bot] 2fad35394c
chore(deps): bump docker/build-push-action from 6.2.0 to 6.3.0 (#3697)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](15560696de...1a162644f9)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 08:25:49 -05:00
dependabot[bot] 005ff27d2a
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.23 to 1.27.24 (#3698)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.23 to 1.27.24.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.23...config/v1.27.24)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 08:25:29 -05:00
Matthew Clarke 3e4ea7429d
feat(metricprovider): add prometheus range query support (#3704)
* feat: add prometheus range query support

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* fix: code-gen

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* fix: handle matrix results from prometheus

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* refactor: remove duplicated code

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* feat: configurable step

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* fix: codegen

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* test: more tests

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* docs: range query docs

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* refactor: expr for prometheus range query start/end

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* fix: lint issue

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* docs: missing codegen

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

* fix: PR Fixes

Signed-off-by: Matthew Clarke <mclarke@spotify.com>

---------

Signed-off-by: Matthew Clarke <mclarke@spotify.com>
2024-07-10 08:25:00 -05:00
dependabot[bot] 68f7b41f72
chore(deps): bump docker/setup-buildx-action from 3.3.0 to 3.4.0 (#3705)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](d70bba72b1...4fd812986e)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-08 10:43:41 -05:00
dependabot[bot] 590206b9bc
chore(deps): bump google.golang.org/grpc from 1.64.0 to 1.65.0 (#3694)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.64.0 to 1.65.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.64.0...v1.65.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-03 11:22:03 -05:00
dependabot[bot] aae86f7604
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.22 to 1.27.23 (#3695)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.22 to 1.27.23.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.22...config/v1.27.23)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-03 11:21:46 -05:00
Enrique Tejeda b99767494a
chore: add example for updating all container images in set command (#3667)
Signed-off-by: EnriqueTejeda <quique.tejeda.68@gmail.com>
2024-07-02 10:44:46 -05:00
dependabot[bot] 23436a28c5
chore(deps): bump github.com/aws/smithy-go from 1.20.2 to 1.20.3 (#3685)
Bumps [github.com/aws/smithy-go](https://github.com/aws/smithy-go) from 1.20.2 to 1.20.3.
- [Release notes](https://github.com/aws/smithy-go/releases)
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/smithy-go/compare/v1.20.2...v1.20.3)

---
updated-dependencies:
- dependency-name: github.com/aws/smithy-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 10:40:42 -05:00
dependabot[bot] eb1d8b81d9
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.38.7 to 1.40.1 (#3687)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.38.7 to 1.40.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/kendra/v1.38.7...service/s3/v1.40.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 10:40:22 -05:00
dependabot[bot] 04f8da1d93
chore(deps): bump softprops/action-gh-release from 2.0.5 to 2.0.6 (#3656)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.5 to 2.0.6.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](69320dbe05...a74c6b72af)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-27 11:37:49 -05:00
Psukhe 243ea91767
fix(analysis): Take RollbackWindow into account when Reconciling Analysis Runs. Fixes #3669 (#3670)
* Ensure that BackgroundAnalysisRun does not run when rolling back within RollbackWindow

Signed-off-by: Alex Dunn <adunn@sofi.org>

* Fix linting

Signed-off-by: Alex Dunn <adunn@sofi.org>

---------

Signed-off-by: Alex Dunn <adunn@sofi.org>
2024-06-27 11:37:18 -05:00
Enrique Tejeda f21956c7f1
fix: add update verb to ClusterRole permissions for scaleDown feature. Fixes #3672 (#3675)
fix: add update verb to ClusterRole permissions for scaleDown

Signed-off-by: EnriqueTejeda <quique.tejeda.68@gmail.com>
2024-06-27 11:27:59 -05:00
dependabot[bot] 5996471496
chore(deps): bump docker/build-push-action from 6.1.0 to 6.2.0 (#3676)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](31159d49c0...15560696de)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-27 11:23:48 -05:00
dependabot[bot] f1d4dd2010
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.19 to 1.27.22 (#3680)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.19 to 1.27.22.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.19...config/v1.27.22)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-27 11:21:32 -05:00
github-actions[bot] 0c716e2e60
docs: Update Changelog (#3666)
* update changelog

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-06-25 02:13:57 +00:00
dependabot[bot] b5d0818c0f
chore(deps): bump docker/build-push-action from 6.0.2 to 6.1.0 (#3662)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.0.2 to 6.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](f6010ea701...31159d49c0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 20:40:56 -05:00
yyzxw c43f4fb340
fix: docs site version selector broken (#3590)
Signed-off-by: xiaowu.zhu <xiaowu.zhu@daocloud.io>
Signed-off-by: root <root@daocloud.io>
2024-06-21 12:30:01 -05:00
dependabot[bot] 72f3dabb01
chore(deps): bump docker/build-push-action from 6.0.0 to 6.0.2 (#3659)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.0.0 to 6.0.2.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](c382f710d3...f6010ea701)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-21 10:50:13 -05:00
Zach Aller f2b155d085
chore: don't fail code-cov on failure (#3661)
don't fail on failure

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-06-21 15:44:18 +00:00
dependabot[bot] 4f1edbe933
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.18 to 1.27.19 (#3646)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.18 to 1.27.19.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.18...config/v1.27.19)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 14:40:11 +00:00
dependabot[bot] 50baf74dad
chore(deps): bump docker/build-push-action from 5.4.0 to 6.0.0 (#3644)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.4.0 to 6.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](ca052bb54a...c382f710d3)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:07:13 -05:00
dependabot[bot] 5a6ca83afc
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.38.6 to 1.38.7 (#3647)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.38.6 to 1.38.7.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/kendra/v1.38.6...service/kendra/v1.38.7)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:06:21 -05:00
Zach Aller d1ebbe958c
fix: don't default datadog aggregator (#3643)
* fix: don't default datadog aggregator

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* codegen

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix: don't default datadog aggregator

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-06-17 11:09:11 -05:00
yyzxw b83ef70ff4
chore: fix and add more cli usage case (#3592)
Signed-off-by: xiaowu.zhu <xiaowu.zhu@daocloud.io>
2024-06-17 09:25:37 -05:00
dependabot[bot] 112dd4fad9
chore(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 (#3640)
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-17 09:23:27 -05:00
Tommy Chen 7188d999fb
fix: Add volume for plugin and tmp folder (#3546)
Signed-off-by: Tommy Chen <tommy351@gmail.com>
2024-06-17 09:14:28 -05:00
dependabot[bot] 42cef17568
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.38.0 to 1.38.6 (#3619)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.38.0 to 1.38.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.38.0...service/kendra/v1.38.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-14 16:36:33 +00:00
dependabot[bot] 84ef9f8cc1
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.16 to 1.27.18 (#3625)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.16 to 1.27.18.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.16...config/v1.27.18)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-14 11:03:37 -05:00
dependabot[bot] 8f32113be6
chore(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 (#3633)
Bumps google.golang.org/protobuf from 1.34.1 to 1.34.2.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-14 11:03:21 -05:00
dependabot[bot] 11089c91d3
chore(deps): bump codecov/codecov-action from 4.4.1 to 4.5.0 (#3634)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.4.1...v4.5.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-14 11:03:05 -05:00
github-actions[bot] a2c7dbd029
docs: Update Changelog (#3632)
* update changelog

* Update CHANGELOG.md

---------

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-06-13 21:12:30 +00:00
dependabot[bot] 8bf1b5e392
chore(deps): bump docker/build-push-action from 5.3.0 to 5.4.0 (#3624)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](2cdde995de...ca052bb54a)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-13 19:45:06 +00:00
dependabot[bot] 0d3ed79079
chore(deps): bump golang.org/x/oauth2 from 0.20.0 to 0.21.0 (#3631)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.20.0 to 0.21.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.20.0...v0.21.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-13 14:28:36 -05:00
Joshua Mathew f656735765
fix: protocol missing in ambassador canary mapping creation. Fixes #3593 (#3603)
fix protocol missing in ambassador canary mapping creation

Signed-off-by: Joshua Mathew <umjoshua@gmail.com>
2024-06-12 15:22:13 -05:00
dependabot[bot] 1d5c9b46e6
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.31.1 to 1.31.3 (#3620)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.31.1 to 1.31.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.31.1...service/s3/v1.31.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-12 15:18:29 -05:00
May Zhang 7df3d17ac4
fix: when Rollout has pingpong and stable/canary service defined, only alb traffic management uses pingpong. (#3628)
* fix: when Rollout has pingpong and stable/canary service defined, GetStableAndCanaryServices returns based on isPingpongPreferred. Only when it is ALB controller, then isPringpongPreferred is true.

Signed-off-by: mayz985 <may_zhang@intuit.com>

* fix lint error

Signed-off-by: mayz985 <may_zhang@intuit.com>

* added e2e

Signed-off-by: mayz985 <may_zhang@intuit.com>

---------

Signed-off-by: mayz985 <may_zhang@intuit.com>
2024-06-12 15:18:02 -05:00
Zach Aller e20bcde8f3
fix: verify the weight of the alb at the end of the rollout (#3627)
* fix: verify the weight of the alb at the end of the rollout when we auto set max weight

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add unit test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* refactor add unit test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* Trigger Build

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* Trigger Build

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* block reconcile

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* rename test and cleanup un-need logic check

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-06-12 12:11:22 -05:00
Zach Aller 32d50b78d3
chore: add codecov token (#3623)
* add codecov token

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fail if we do not upload

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-06-10 16:32:42 +00:00
dependabot[bot] e807d391eb
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.27.0 to 1.27.2 (#3621)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.27.0 to 1.27.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.27.0...v1.27.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 06:52:04 -07:00
Zach Aller ec18d99102
fix: rs conflict with fallback to patch (#3559)
* fix: fallback to patch on scale conflict

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

fix: switch to retry logic

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

retry experiments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

remove TODO

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

remove accidental add

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

remove accidental add

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

add retry to setting revision

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

chore(deps): bump slsa-framework/slsa-github-generator from 1.10.0 to 2.0.0 (#3537)

chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 1.10.0 to 2.0.0.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.10.0...v2.0.0)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

chore(deps): bump sigstore/cosign-installer from 3.4.0 to 3.5.0 (#3522)

Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](e1523de757...59acb6260d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

chore(deps): bump golangci/golangci-lint-action from 4 to 5 (#3540)

Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 4 to 5.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

docs: provide recommendation for strategies (#3531)

* docs: provide recommendation for strategies

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* docs: traffic manager clarifications

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* docs: explain canary with/out traffic manager

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* docs: add 3 columns on the comparison table

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

---------

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

feat(dashboard): change the color of the current rollout step (#3526)

I feel that having the current (running) step in a orange color is misleading,
as orange usually means warning.

This commit changes the color to the `$argo-running-color`.

Signed-off-by: Alejandro López Sánchez <alejandro.lopez@factorial.co>

chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.37.0 to 1.38.0 (#3525)

chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.37.0 to 1.38.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.38.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.37.0...service/s3/v1.38.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

perform all of set revision actions on retry

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

fix variable

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

add retry counts to log

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

add retry counts to logs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

clean logs, always dump controller e2e logs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

lower timeout

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

bump timeout on e2e

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

retry on rollout conflict

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

don't reque on rs changes

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

reque rs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

bump qps for e2e

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

fix gen-crd

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

switch to patch

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

switch to patch

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

add log

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

move log lines

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

Trigger Build

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

fix one e2e test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

add test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

chore(deps): bump actions/setup-go from 5.0.0 to 5.0.1 (#3552)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

chore(deps): bump codecov/codecov-action from 4.3.0 to 4.3.1 (#3550)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.3.0...v4.3.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

chore(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 (#3548)

Bumps google.golang.org/protobuf from 1.33.0 to 1.34.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

refactor

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

add test for updating rs revision

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

add retry for ephemeral metadata

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

clear some fields

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

add logs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

refactor into function

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

change log

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

switch rollout update to patch fallback

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

siwtch ephemeral metadata sync to shared function

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

siwtch merge type

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

don't update status

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

switch rollout update to not use patch

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

change log

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

switch to small patch

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

some cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

remove not found rollout removal

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

working setup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

fix test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

small cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* typo

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup commented out code

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* Trigger Build

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* only patch rollouts manged fields

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix flaky test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix flaky test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* reduce patch size

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* get some logs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* improve tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* Trigger Build

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add env var to log diff

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove expirment rs patch

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* imporve logs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* use correct variable

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change env var

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix flaky e2e

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix flaky e2e

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix flaky e2e

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove not found rollouts

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* update replica count

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* refactor cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* keep track of UpdatedReplicas on sync

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* some hpa tests and log changes

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove update to UpdatedReplicas

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add more test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* undo change

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add comment to flaky tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup Makefile

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* use labels

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove make file change

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add label to test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* review changes

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change to TODO

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add extra logging for tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* Trigger Build

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add ignore to codecov

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* we always generate patch because we are comparing against emtpy obj

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-06-07 11:53:09 -07:00
Keith Chong 276a66dd12
fix: Update loader-utils to 2.0.4 (#3601)
Signed-off-by: Keith Chong <kykchong@redhat.com>
2024-06-05 10:48:33 -05:00
dependabot[bot] 2c192007df
chore(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#3604)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](e92390c5fb...0d4c9c5ea7)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 17:49:15 +00:00
dependabot[bot] 8ee081564f
chore(deps): bump github.com/hashicorp/go-plugin from 1.6.0 to 1.6.1 (#3606)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.6.0...v1.6.1)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 12:11:43 -05:00
dependabot[bot] 70817c0839
chore(deps): bump google.golang.org/grpc from 1.63.2 to 1.64.0 (#3607)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.63.2 to 1.64.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.63.2...v1.64.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 12:11:16 -05:00
dependabot[bot] 48de5b20bc
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.30.5 to 1.31.1 (#3608)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.30.5 to 1.31.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.31.1/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.5...service/s3/v1.31.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 12:10:41 -05:00
dependabot[bot] 6329a7adfb
chore(deps): bump golang.org/x/oauth2 from 0.19.0 to 0.20.0 (#3554)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.19.0 to 0.20.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.19.0...v0.20.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-30 21:10:35 +00:00
dependabot[bot] 36e02c0c95
chore(deps): bump golangci/golangci-lint-action from 5 to 6 (#3556)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5 to 6.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-30 14:10:04 -07:00
dependabot[bot] 283e5bfc71
chore(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1 (#3557)
Bumps google.golang.org/protobuf from 1.34.0 to 1.34.1.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-30 14:09:45 -07:00
dependabot[bot] 1be50a03c9
chore(deps): bump softprops/action-gh-release from 2.0.4 to 2.0.5 (#3561)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](9d7c94cfd0...69320dbe05)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-30 14:09:22 -07:00
dependabot[bot] 4894e4531d
chore(deps): bump codecov/codecov-action from 4.3.1 to 4.4.1 (#3588)
---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-30 14:09:05 -07:00
dependabot[bot] dee5f3bd2e
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.11 to 1.27.16 (#3597)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.11 to 1.27.16.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.11...config/v1.27.16)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-30 14:08:47 -07:00
Remington Breeze 2e7cf6932a
chore: upgrade react-scripts (#3584) 2024-05-21 12:05:50 -06:00
dependabot[bot] 125fc3dfba
chore(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 (#3548)
Bumps google.golang.org/protobuf from 1.33.0 to 1.34.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-03 13:50:11 -05:00
dependabot[bot] 572f1f5d1a
chore(deps): bump codecov/codecov-action from 4.3.0 to 4.3.1 (#3550)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.3.0...v4.3.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-03 13:49:55 -05:00
dependabot[bot] 76e95cdb4d
chore(deps): bump actions/setup-go from 5.0.0 to 5.0.1 (#3552)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-03 13:49:29 -05:00
dependabot[bot] 4b0289bf4d
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.37.0 to 1.38.0 (#3525)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.37.0 to 1.38.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.38.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.37.0...service/s3/v1.38.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 09:55:41 -05:00
Alejandro López 9f0041922c
feat(dashboard): change the color of the current rollout step (#3526)
I feel that having the current (running) step in a orange color is misleading,
as orange usually means warning.

This commit changes the color to the `$argo-running-color`.

Signed-off-by: Alejandro López Sánchez <alejandro.lopez@factorial.co>
2024-04-29 09:55:20 -05:00
Kostis (Codefresh) 63fd6e300e
docs: provide recommendation for strategies (#3531)
* docs: provide recommendation for strategies

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* docs: traffic manager clarifications

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* docs: explain canary with/out traffic manager

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

* docs: add 3 columns on the comparison table

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>

---------

Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>
2024-04-29 09:54:18 -05:00
dependabot[bot] 2198fcce46
chore(deps): bump golangci/golangci-lint-action from 4 to 5 (#3540)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 4 to 5.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 09:48:50 -05:00
dependabot[bot] e63c221dd9
chore(deps): bump sigstore/cosign-installer from 3.4.0 to 3.5.0 (#3522)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](e1523de757...59acb6260d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-23 19:47:07 +02:00
dependabot[bot] e8ab42be51
chore(deps): bump slsa-framework/slsa-github-generator from 1.10.0 to 2.0.0 (#3537)
chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 1.10.0 to 2.0.0.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.10.0...v2.0.0)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-23 19:45:30 +02:00
OpenGuidou 1856c3c396
docs: Add Amadeus to Users.md (#3527)
Signed-off-by: Guillaume Doussin <guillaume.doussin@gmail.com>
2024-04-18 10:09:55 -05:00
dhawani e90a60189e
fix(controller): Corrects the logic of comparing sha256 has. Fixes #3519 (#3520)
Fixed sha256 algo

Signed-off-by: dhawani <vishal.dhawani@scalekit.com>
Signed-off-by: dhawani <vishal.dhawani@gmail.com>
Co-authored-by: dhawani <vishal.dhawani@scalekit.com>
2024-04-10 08:36:02 -05:00
dependabot[bot] 451e27fd8e
chore(deps): bump codecov/codecov-action from 4.2.0 to 4.3.0 (#3517)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.2.0...v4.3.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-10 03:36:31 +02:00
Alexandre Gaudreault f6f026d065
chore(deps): bump go version to 1.22 (#3516)
* bump go version to 1.22

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* fix deps version

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* codegen without manifest

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* manifest codegen

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* updates for CI

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* ignore mocks for codecov

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

---------

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>
2024-04-09 13:05:54 -05:00
dependabot[bot] 2b7dd8d2e4
chore(deps): bump google.golang.org/grpc from 1.63.0 to 1.63.2 (#3512)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.63.0 to 1.63.2.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.63.0...v1.63.2)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-09 09:57:00 -05:00
dependabot[bot] ed62ee8eae
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.10 to 1.27.11 (#3510)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.10 to 1.27.11.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.10...config/v1.27.11)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-09 09:56:40 -05:00
Benjamin Muschko e356a60a89
fix: Change indentation to properly render Markdown - fixes #3509 (#3511)
Fix indentation to properly render Markdown

Signed-off-by: Benjamin Muschko <benjamin.muschko@gmail.com>
2024-04-09 09:56:20 -05:00
dependabot[bot] cd6f5b6a35
chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 (#3513)
Bumps [peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) from 3 to 4.
- [Release notes](https://github.com/peaceiris/actions-gh-pages/releases)
- [Changelog](https://github.com/peaceiris/actions-gh-pages/blob/main/CHANGELOG.md)
- [Commits](https://github.com/peaceiris/actions-gh-pages/compare/v3...v4)

---
updated-dependencies:
- dependency-name: peaceiris/actions-gh-pages
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-09 09:55:51 -05:00
dependabot[bot] 4e011b6b9e
chore(deps): bump docker/setup-buildx-action from 3.2.0 to 3.3.0 (#3514)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](2b51285047...d70bba72b1)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-09 09:55:31 -05:00
OpenGuidou 996252b4f6
docs: Add technique for ConfigMap change detection in Rollout (#3515)
Signed-off-by: Guillaume Doussin <guillaume.doussin@gmail.com>
2024-04-09 09:55:07 -05:00
dependabot[bot] 4cf5162553
chore(deps): bump google.golang.org/grpc from 1.62.1 to 1.63.0 (#3497)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.62.1 to 1.63.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.62.1...v1.63.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 19:31:42 +00:00
dependabot[bot] 5a1928a33e
chore(deps): bump github.com/prometheus/client_model from 0.6.0 to 0.6.1 (#3499)
Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.6.0 to 0.6.1.
- [Release notes](https://github.com/prometheus/client_model/releases)
- [Commits](https://github.com/prometheus/client_model/compare/v0.6.0...v0.6.1)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_model
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 13:55:49 -05:00
dependabot[bot] fe6a65dd9e
chore(deps): bump golang.org/x/oauth2 from 0.18.0 to 0.19.0 (#3506)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.18.0 to 0.19.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.18.0...v0.19.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 13:54:42 -05:00
dependabot[bot] 6b05baf177
chore(deps): bump codecov/codecov-action from 4.1.1 to 4.2.0 (#3500)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.1.1 to 4.2.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.1.1...v4.2.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 13:54:14 -05:00
github-actions[bot] c4a7583199
docs: Update Changelog (#3507)
* update changelog

* Update CHANGELOG.md

---------

Co-authored-by: zachaller <201390+zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-04-05 18:53:48 +00:00
Zach Aller 02d7e4f568
chore: remove some k8s e2e test versions (#3495)
* chore: bump k8s versions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: remove a few old e2e k8s versions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-04-03 15:16:36 -05:00
dependabot[bot] 07c84c630d
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.30.4 to 1.30.5 (#3491)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.30.4 to 1.30.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.4...service/s3/v1.30.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-03 05:03:31 +02:00
dependabot[bot] 91b0a500bb
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.9 to 1.27.10 (#3492)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.9 to 1.27.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.9...config/v1.27.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-03 01:49:27 +00:00
dependabot[bot] 34c8a91a7b
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.36.3 to 1.37.0 (#3489)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.36.3 to 1.37.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.37.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ssm/v1.36.3...service/s3/v1.37.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-02 20:15:46 -05:00
dependabot[bot] d35ad952b9
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.26.0 to 1.26.1 (#3490)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.26.0 to 1.26.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.26.0...v1.26.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-02 18:24:31 -05:00
Zach Aller 2dc71e3cf2
chore: bump k8s versions to 1.29 (#3494)
* chore: bump k8s versions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: bump k8s versions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: bump k8s versions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: bump k8s versions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: bump k8s versions - cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* bump time to pass on new and old versions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-04-03 00:34:44 +02:00
Chetan Banavikalmutt 55bac14fee
fix: set formatter for klog logger (#3493)
Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com>
2024-04-02 11:47:25 -05:00
dependabot[bot] a13d033524
chore(deps): bump github.com/prometheus/common from 0.42.0 to 0.51.1 (#3468)
* chore(deps): bump github.com/prometheus/common from 0.42.0 to 0.51.1

Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.42.0 to 0.51.1.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.42.0...v0.51.1)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-04-01 23:30:28 +00:00
dependabot[bot] 8e3eefae56
chore(deps): bump github.com/aws/smithy-go from 1.20.1 to 1.20.2 (#3488)
Bumps [github.com/aws/smithy-go](https://github.com/aws/smithy-go) from 1.20.1 to 1.20.2.
- [Release notes](https://github.com/aws/smithy-go/releases)
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/smithy-go/compare/v1.20.1...v1.20.2)

---
updated-dependencies:
- dependency-name: github.com/aws/smithy-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 17:04:59 -05:00
dependabot[bot] 6a003794ee
chore(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#3429)
* chore(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0

Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0

Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* manual bump: https://github.com/protocolbuffers/protobuf/issues/16163

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-04-01 17:04:35 -05:00
dependabot[bot] d2826cd15e
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.5 to 1.27.9 (#3469)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.5 to 1.27.9.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.5...config/v1.27.9)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-29 15:23:35 -05:00
OpenGuidou f5793e40fa
feat: Reference AnalysisTemplates inside an AnalysisTemplate (#3353)
Signed-off-by: Guillaume Doussin <guillaume.doussin@gmail.com>
2024-03-29 15:23:16 -05:00
William Van Hevelingen ea398fc950
chore(deps): update golang to 1.21 (#3482)
Signed-off-by: william.vanhevelingen <william.vanhevelingen@acquia.com>
2024-03-29 19:40:50 +00:00
dependabot[bot] ebe2816b7d
chore(deps): bump codecov/codecov-action from 4.1.0 to 4.1.1 (#3476)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-29 14:27:01 -05:00
Alejandro López 190c42aa7e
feat(dashboard): improve pods visibility (#3483)
This commit adds two improvements to the Pods view:
* Show spinner (pending status) while the pod is not ready (like ArgoCD UI does)
* Show the `ready` property on the tooltip

Signed-off-by: Alejandro López Sánchez <alejandro.lopez@factorial.co>
2024-03-29 14:04:21 -05:00
Chetan Banavikalmutt 47f579c5ee
chore: fix lint errors reported by golangci-lint (#3458)
fix: lint errors reported by golangci-lint

Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com>
2024-03-29 13:59:50 -05:00
Kostis (Codefresh) cae52ac4ad
docs: more best practices (#3484)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2024-03-29 11:59:29 -05:00
Jonathan West 149ff1e7c4
chore: fix unit test data races (#3478) (#3479)
chore: fix unit test data races

Signed-off-by: Jonathan West <jonwest@redhat.com>
2024-03-28 14:13:44 -05:00
shubhajyoti-bagchi-groww 4d6e12b17c
chore: added organization to users.md (#3481)
Added organisation to users.md

Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>
2024-03-28 17:44:28 +00:00
Etien Rožnik 86a2df6bce
feat: expose secrets for notification templates (#3455) (#3466)
* feat: expose secrets for notification templates

Signed-off-by: Etien Roznik <12816736+eroznik@users.noreply.github.com>

* feat: expose secrets for notification templates

Signed-off-by: Etien Roznik <12816736+eroznik@users.noreply.github.com>

---------

Signed-off-by: Etien Roznik <12816736+eroznik@users.noreply.github.com>
2024-03-28 10:10:27 -05:00
Dimitri John Ledkov 633819b833
chore: set webpack hashFunction to modern sha256, remove legacy-provider. Fixes #2609 (#3475)
Reference from https://stackoverflow.com/a/74999688

Fixes https://github.com/argoproj/argo-rollouts/issues/2609

Signed-off-by: Dimitri John Ledkov <dimitri.ledkov@chainguard.dev>
2024-03-27 08:39:04 -05:00
Zach Aller d108c59c21
feat: ping pong support for istio (#3371)
* feat: wip ping pong support for istio

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* feat: wip ping pong validation fixes

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add istio ping pong e2e

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add istio ping pong e2e

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* clean up comments

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add ping pong and destRule both configred e2e test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup not needed test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add docs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add new test instead of piggy backing of an old one

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change test name

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-03-26 18:44:52 +00:00
Chetan Banavikalmutt 2ff3c8ff8b
feat: display init container images on the rollout dashboard (#3473)
Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com>
2024-03-26 11:04:57 -05:00
Liming Liu b42741572b
fix: fix the issue that when max weight is 100000000, and the replicas> 20, the trafficWeightToReplicas will return negative value. (#3474)
fix: when max weight is 100000000, the replicas can be negative.

Signed-off-by: Liming Liu <andyliuliming@outlook.com>
2024-03-26 15:38:41 +00:00
shubhajyoti-bagchi-groww 4b1cc3b579
fix(controller): prevent negative vsvc weights on a replica scaledown following a canary abort for istio trafficrouting (#3467)
* chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.36.1 to 1.36.3 (#3452)

chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.36.1 to 1.36.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ec2/v1.36.1...service/ssm/v1.36.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* controller: Fixed negative canary weight bug for istio trafficrouting

Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* Added e2e test to validate the fix

Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* Removed local changes

Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* linted as per golangci-lint run

Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* docs: typo in BlueGreen (#3463)

Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* chore(deps): bump slsa-framework/slsa-github-generator from 1.9.1 to 1.10.0 (#3462)

chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.9.1...v1.10.0)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.30.3 to 1.30.4 (#3461)

chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.30.3 to 1.30.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.3...service/s3/v1.30.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* Removed sleep and waited for 1 replicas

Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

* Moved up canary weight test to match PR title

Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: shubhajyoti-bagchi-groww <shubhajyoti.bagchi@groww.in>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thanapat Chotipun <66824385+PatrickChoDev@users.noreply.github.com>
2024-03-26 09:02:52 -05:00
dependabot[bot] 3bd955a954
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.30.3 to 1.30.4 (#3461)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.30.3 to 1.30.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.3...service/s3/v1.30.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 00:41:49 +01:00
dependabot[bot] 31036b84cb
chore(deps): bump slsa-framework/slsa-github-generator from 1.9.1 to 1.10.0 (#3462)
chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.9.1...v1.10.0)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-22 20:14:07 +01:00
Thanapat Chotipun d8fecb507d
docs: typo in BlueGreen (#3463) 2024-03-22 20:13:47 +01:00
dependabot[bot] 29ff10a728
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.36.1 to 1.36.3 (#3452)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.36.1 to 1.36.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ec2/v1.36.1...service/ssm/v1.36.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 03:54:50 -05:00
dependabot[bot] 6c641beec5
chore(deps): bump slsa-framework/slsa-github-generator from 1.9.0 to 1.9.1 (#3456)
chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 1.9.0 to 1.9.1.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.9.0...v1.9.1)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 04:08:40 +01:00
Soumya Ghosh Dastidar 0f52c932e4
fix: job metrics owner ref when using custom job kubeconfig/ns (#3425)
* fix: job metrcis owner ref when using custom job kubeconfig/ns

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>

* fix: job metrcis owner ref when using custom job kubeconfig/ns

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>

* revert: go mod change

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>

---------

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-03-15 10:05:02 -05:00
dependabot[bot] 383f719e6d
chore(deps): bump docker/build-push-action from 5.2.0 to 5.3.0 (#3448)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](af5a7ed5ba...2cdde995de)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-15 13:41:50 +00:00
AS 5018705fde
feat: add Analysis run to rollout notifications (#3296)
* add analysisRun to the rollout notification

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* add analysisRun to the rollout notification

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* add analysisRun to the rollout notification

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* add analysisRun to the rollout notification

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* small changes

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-03-15 08:40:06 -05:00
dependabot[bot] 8191ad86e7
chore(deps): bump docker/login-action from 3.0.0 to 3.1.0 (#3443)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](343f7c4344...e92390c5fb)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-15 08:34:15 -05:00
dependabot[bot] eede5df165
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.30.1 to 1.30.3 (#3447)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.30.1 to 1.30.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.1...service/s3/v1.30.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-15 08:33:56 -05:00
dependabot[bot] be8487f0bf
chore(deps): bump docker/setup-buildx-action from 3.1.0 to 3.2.0 (#3449)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](0d103c3126...2b51285047)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-15 08:32:55 -05:00
kevinqian-db 5f6142c190
fix(controller): treat spec.canary.analysis.template empty list as spec.canary.analysis not set (#3446)
Treat spec.canary.analysis.template empty list as spec.canary.analysis not set

Signed-off-by: Kevin Qian <kevin.qian@databricks.com>
2024-03-15 08:32:32 -05:00
dependabot[bot] d510545bf5
chore(deps): bump golang.org/x/oauth2 from 0.17.0 to 0.18.0 (#3422)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.17.0 to 0.18.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.17.0...v0.18.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 17:28:22 -05:00
dependabot[bot] 7012ed7d31
chore(deps): bump softprops/action-gh-release from 2.0.3 to 2.0.4 (#3442)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](3198ee18f8...9d7c94cfd0)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 09:15:08 -05:00
dependabot[bot] 46f14278ee
chore(deps): bump softprops/action-gh-release from 2.0.2 to 2.0.3 (#3440)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](d99959edae...3198ee18f8)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 12:29:35 -05:00
dependabot[bot] c6ba82cca2
chore(deps): bump softprops/action-gh-release from 1 to 2 (#3438)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](de2c0eb89a...d99959edae)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 17:14:47 -05:00
dependabot[bot] 0cfdf342dd
chore(deps): bump docker/build-push-action from 5.1.0 to 5.2.0 (#3439)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](4a13e500e5...af5a7ed5ba)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 11:00:02 -05:00
Carlos Sanchez a9a519221a
docs: minor readability on migration (#3427)
the ordered list was 1-2-3-1
fixed the indentation

Signed-off-by: Carlos Sanchez <carlos@apache.org>
2024-03-08 14:04:54 -06:00
Yohan Belval e18495782e
fix(controller): don't timeout rollout when still waiting for scale down delay (#3417)
Signed-off-by: Yohan Belval <ybelval@turo.com>
2024-03-06 09:01:12 -06:00
Craig Newton ad0b7fe6ee
chore: fix PodSecurity warning (#3424)
Signed-off-by: Craig Newton <newtondev@gmail.com>
2024-03-06 08:56:06 -06:00
dependabot[bot] 305ad13909
chore(deps): bump google.golang.org/grpc from 1.62.0 to 1.62.1 (#3426)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.62.0 to 1.62.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.62.0...v1.62.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-06 08:54:00 -06:00
Liming Liu 017537b219
feat: add the max traffic weight support for the traffic routing (nginx/plugins). (#3215)
* add support for the traffic weight > 100.

Signed-off-by: Liming Liu <andyliuliming@outlook.com>

* unit test for the max weight ingress.

Signed-off-by: Liming Liu <andyliuliming@outlook.com>

* unit test for the max weight in canary rollout.

Signed-off-by: Liming Liu <andyliuliming@outlook.com>

* add docs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add docs

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Liming Liu <andyliuliming@outlook.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2024-03-06 02:21:48 +00:00
dependabot[bot] 9de465f094
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.4 to 1.27.5 (#3421)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.4 to 1.27.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.4...config/v1.27.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 08:27:27 -06:00
dependabot[bot] fd4079625b
chore(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#3419)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 16:18:21 -06:00
dependabot[bot] 2e00cd5230
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.27.0 to 1.27.4 (#3410)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.0 to 1.27.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.0...config/v1.27.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-02 09:33:19 -06:00
dependabot[bot] 04ff63b370
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.27.0 to 1.30.1 (#3399)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.27.0 to 1.30.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.0...service/s3/v1.30.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 16:48:19 +00:00
dependabot[bot] 4a114cec98
chore(deps): bump google.golang.org/grpc from 1.61.0 to 1.62.0 (#3404)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.61.0 to 1.62.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.61.0...v1.62.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 10:15:49 -06:00
dependabot[bot] 57097b14f8
chore(deps): bump docker/setup-buildx-action from 3.0.0 to 3.1.0 (#3406)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](f95db51fdd...0d103c3126)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 10:15:23 -06:00
Soumya Ghosh Dastidar dc6da7dc63
feat: allow analysis run to use separate kubeconfig for jobs (#3350)
* feat: allows analysis run to use separate kubeconfig for jobs

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>

* fix: tests

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>

* refactor: rename env var names

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>

---------

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>
2024-02-28 01:20:43 -06:00
dependabot[bot] 1c2f80d9e5
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.33.0 to 1.36.1 (#3400)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.33.0 to 1.36.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.33.0...service/ec2/v1.36.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-27 18:10:26 +00:00
dependabot[bot] 5843fe34aa
chore(deps): bump codecov/codecov-action from 4.0.1 to 4.1.0 (#3403)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.0.1...v4.1.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-27 17:44:41 +00:00
Michael Wilkerson f89b3d415b
docs: added Consul plugin support to website (#3362)
* added Consul plugin support to website

Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>

* addressed comments

Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>

---------

Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>
2024-02-27 11:43:36 -06:00
Chetan Banavikalmutt e547e57df3
fix: include the correct response error in the plugin init error message (#3388)
fix: include the response error in the plugin init error message

Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com>
2024-02-27 11:39:08 -06:00
Andre Marcelo-Tanner d06cc34679
chore: Update notifications engine to 7a06976 (#3384)
* Run: go get github.com/argoproj/notifications-engine@7a069766e95476e1074eeed6145085160e2fec63

Updating and fetch latest notifications-engine dependencies

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>

* Run: go get github.com/argoproj/notifications-engine/pkg/services@v0.4.1-0.20240219110818-7a069766e954

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>

* Replace telegram-bot-api and run go mod tidy

- Update go.mod: github.com/go-telegram-bot-api/telegram-bot-api/v5 => github.com/OvyFlash/telegram-bot-api/v5 v5.0.0-20240108230938-63e5c59035bf
  - Ref: https://github.com/argoproj/notifications-engine/pull/265
- Could also be done via go replace --edit
- go mod tidy also ran

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>

* Add strReplaceDocFiles to update strings from default docs

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>

* Run: make docs

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>

* replace <config-map-name> with argo-rollouts-notification-configmap and also replace secret with argocd-notifications-secret

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>

* add Ada company to USERS.md

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>

* chore: update contributing docs with notifications engine section

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>

---------

Signed-off-by: Andre Marcelo-Tanner <drechin@gmail.com>
2024-02-27 11:35:58 -06:00
dependabot[bot] 1099f88252
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.26.6 to 1.27.0 (#3368)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.6 to 1.27.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.6...config/v1.27.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 22:25:08 -06:00
John Pitman 50b2885680
docs: Update shell autocompletion instructions (#3377)
Update shell autocompletion instructions

Signed-off-by: John Pitman <jpitman@redhat.com>
2024-02-16 15:53:46 -06:00
OpenGuidou fcb88f07b8
feat: Support AnalysisRunMetadata and Dryrun for experiments via Rollout (#3213)
Signed-off-by: Guillaume Doussin <guillaume.doussin@gmail.com>
2024-02-16 00:12:20 -06:00
Alexandre Gaudreault 36c8009cfc
test: add unit tests for maxSurge=0, replicas=1 (#3375)
* tests: add unit tests for maxSurge=0, replicas=1

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* update doc

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

* update test name

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>

---------

Signed-off-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>
2024-02-15 15:34:09 -06:00
github-actions[bot] 47deb7a52a
docs: Update Changelog (#3365)
* update changelog

* re-gen changelog

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2024-02-13 18:50:11 +00:00
Divyansh Saxena dced99b499
fix: append weighted destination only when weight is mentioned (#2734)
fix: append weighted destination only when weight is mentioned in experiment template

Signed-off-by: divyansh375 <divyanshsaxena98@gmail.com>
Co-authored-by: divyansh375 <divyanshsaxe@adobe.com>
2024-02-13 09:54:52 -06:00
Ilia Lazebnik cf1ab9fab4
feat: allow setting traefik versions (#3348)
* add setting traefik version

Signed-off-by: drfaust92 <ilia.lazebnik@gmail.com>

* add new traefik api to manifests

Signed-off-by: drfaust92 <ilia.lazebnik@gmail.com>

---------

Signed-off-by: drfaust92 <ilia.lazebnik@gmail.com>
2024-02-13 09:19:23 -06:00
dependabot[bot] 37af081278
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.32.2 to 1.33.0 (#3363)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.32.2 to 1.33.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.33.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ec2/v1.32.2...service/s3/v1.33.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-13 09:15:44 -06:00
AS db5e3b2a8f
fix: stuck rollout when 2nd deployment happens before 1st finishes (#3354)
fix: stuck rollout when rollout is paused



fix: stuck rollout when rollout is paused



fix: stuck rollout when rollout is paused



fix: stuck rollout when rollout is paused



fix: stuck rollout when rollout is paused



fix: stuck rollout when rollout is paused



fix: stuck rollout when rollout is paused



fix: stuck rollout when rollout is paused



fix: stuck rollout when rollout is paused

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>
Co-authored-by: asingh51 <ashutosh_singh@intuit.com>
2024-02-12 20:46:00 +00:00
Michael Wilkerson 724d53db8b
chore: Add exception to `requireCanaryStableServices` to disable validation when using the `hashicorp/consul` plugin (#3339)
* add exception to `requireCanaryStableServices` to disable validation when using the `hashicorp/consul` plugin

Co-authored-by: Ashwin Venkatesh <ashwin.what@gmail.com>
Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>

* added HashiCorp to USERS.md

Co-authored-by: Ashwin Venkatesh <ashwin.what@gmail.com>
Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>

* modified requireCanaryStableServices to reverse logic
- added test cases for exceptions to requiring checks for Canary/Stable services
- added test cases for verifying errors when Canary/Stable services are missing

Co-authored-by: Ashwin Venkatesh <ashwin.what@gmail.com>
Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>

* addressed comments and added more test cases

Co-authored-by: Ashwin Venkatesh <ashwin.what@gmail.com>
Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>

* modified requireCanaryStableServices to reverse logic
- added test cases for exceptions to requiring checks for Canary/Stable services
- added test cases for verifying errors when Canary/Stable services are missing

Co-authored-by: Ashwin Venkatesh <ashwin.what@gmail.com>
Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>

---------

Signed-off-by: Michael Wilkerson <mwilkerson@hashicorp.com>
Co-authored-by: Ashwin Venkatesh <ashwin.what@gmail.com>
2024-02-12 14:41:59 -06:00
dependabot[bot] bf53f08415
chore(deps): bump golang.org/x/oauth2 from 0.16.0 to 0.17.0 (#3357)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.16.0 to 0.17.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.16.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-12 10:03:32 -06:00
dependabot[bot] e24474d07a
chore(deps): bump golangci/golangci-lint-action from 3 to 4 (#3359)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3 to 4.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-12 10:03:14 -06:00
dependabot[bot] f3053426d0
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.26.7 to 1.27.0 (#3341)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.26.7 to 1.27.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.27.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.7...service/s3/v1.27.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-05 21:11:15 -06:00
dependabot[bot] 6c3f065f23
chore(deps): bump peter-evans/create-pull-request from 5 to 6 (#3342)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-05 21:10:55 -06:00
dependabot[bot] 92ae7bd199
chore(deps): bump sigstore/cosign-installer from 3.3.0 to 3.4.0 (#3343)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](9614fae9e5...e1523de757)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-05 21:10:38 -06:00
Zach Aller f1657638dd
fix: do not require pod readiness when switching desired service selector on abort (#3338)
* do not switch service selectors back when using alb due to race between two controllers with pod readiness gates

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* update tests for alb

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* lets not check for readiness instead

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* clean up notes

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix /

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-02-05 13:59:33 -06:00
Kostis (Codefresh) 6efb3cc02f
docs: Guides for popular use-cases (#3346)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2024-02-03 18:43:06 +00:00
Soumya Ghosh Dastidar 7258fe7579
feat: support ability to run only the analysis controller (#3336)
* feat: allow running only analysis controller

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>

* refactor: resolve review comments

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>

---------

Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>
2024-02-03 12:33:17 -06:00
dependabot[bot] a1c0801371
chore(deps): bump codecov/codecov-action from 3.1.5 to 4.0.1 (#3347)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.5 to 4.0.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.5...v4.0.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-02 13:52:27 -06:00
dependabot[bot] 8405f2e75c
chore(deps): bump github.com/evanphx/json-patch/v5 from 5.8.1 to 5.9.0 (#3335)
Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.8.1 to 5.9.0.
- [Release notes](https://github.com/evanphx/json-patch/releases)
- [Commits](https://github.com/evanphx/json-patch/compare/v5.8.1...v5.9.0)

---
updated-dependencies:
- dependency-name: github.com/evanphx/json-patch/v5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-30 16:38:15 -06:00
kevinqian-db c492b06ea0
feat(analysis): add ttlStrategy on AnalysisRun for garbage collecting stale AnalysisRun automatically (#3324)
* Add ttlStrategy on AnalysisRun

Signed-off-by: Kevin Qian <kevin.qian@databricks.com>

* Unit test coverage

Signed-off-by: Kevin Qian <kevin.qian@databricks.com>

* Unit test 2

Signed-off-by: Kevin Qian <kevin.qian@databricks.com>

* Regen go proto def

Signed-off-by: Kevin Qian <kevin.qian@databricks.com>

* Doc available from 1.6 -> 1.7

Signed-off-by: Kevin Qian <kevin.qian@databricks.com>

* TtlStrategy -> TTLStrategy

Signed-off-by: Kevin Qian <kevin.qian@databricks.com>

---------

Signed-off-by: Kevin Qian <kevin.qian@databricks.com>
2024-01-29 21:37:10 -06:00
Aikawa 5e5314bb1e
chore: change controller's deploy strategy to RollingUpdate due to leader election (#3334)
chore: change deploy strategy due to controller's leader election

Signed-off-by: yu-croco <yu.croco@gmail.com>
2024-01-27 22:16:28 -06:00
dependabot[bot] 723f7a9b0e
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.26.5 to 1.26.6 (#3322)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.5 to 1.26.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.5...config/v1.26.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-26 13:08:23 -06:00
dependabot[bot] 7e0b4e8d34
chore(deps): bump github.com/evanphx/json-patch/v5 from 5.8.0 to 5.8.1 (#3312)
Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.8.0 to 5.8.1.
- [Release notes](https://github.com/evanphx/json-patch/releases)
- [Commits](https://github.com/evanphx/json-patch/compare/v5.8.0...v5.8.1)

---
updated-dependencies:
- dependency-name: github.com/evanphx/json-patch/v5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-26 13:07:58 -06:00
dependabot[bot] 8e465d9233
chore(deps): bump codecov/codecov-action from 3.1.4 to 3.1.5 (#3330)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.4...v3.1.5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-26 12:58:32 -06:00
github-actions[bot] c536b87102
docs: Update Changelog (#3328)
update changelog

Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2024-01-26 12:58:08 -06:00
Nauris Sadovskis ae3a53a2de
feat: Add support for aggregator type in DataDog metric provider (#3293)
* Add ability to select metric aggregator

Signed-off-by: Nauris <nauris.sadovskis@wave.com>

* Add check and tests

Signed-off-by: Nauris <nauris.sadovskis@wave.com>

* extra codegen

Signed-off-by: Nauris <nauris.sadovskis@wave.com>

* aggregator: switch to using enum

Signed-off-by: Nauris <nauris.sadovskis@wave.com>

* aggregator: add test for validating enum values

Signed-off-by: Nauris <nauris.sadovskis@wave.com>

* aggregator: add test for default value

Signed-off-by: Nauris <nauris.sadovskis@wave.com>

* docs: add a section on overriding default aggregator

Signed-off-by: Nauris <nauris.sadovskis@wave.com>

* Update docs/analysis/datadog.md

Co-authored-by: mitchell amihod <mitchell@amihod.com>
Signed-off-by: Nauris <nauris.sadovskis@wave.com>

---------

Signed-off-by: Nauris <nauris.sadovskis@wave.com>
Co-authored-by: mitchell amihod <mitchell@amihod.com>
2024-01-26 12:12:40 -06:00
Zach Aller a07417ac6c
chore: bump notification engine lib (#3327)
* chore: bump notification engine lib

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: bump notification engine lib

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-01-25 19:39:10 +00:00
Zach Aller 1a332e340a
chore: add logging context around replicaset updates (#3326)
* chore: add more logging

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: remove accidental files

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-01-25 10:09:09 -06:00
Zach Aller 6dd961a479
fix: log rs name when update fails (#3318)
fix logging rs name when update fails

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-01-25 09:48:17 -06:00
dependabot[bot] d77d189308
chore(deps): bump google.golang.org/grpc from 1.60.1 to 1.61.0 (#3325)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.60.1 to 1.61.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.60.1...v1.61.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-24 21:59:22 -06:00
Zach Aller 07355a0720
fix: keep rs inormer updated upon updating labels and annotations (#3321)
* fix: keep rs inormer updated upon updating labels and annotations

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* give error some context

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-01-24 15:43:13 -06:00
dependabot[bot] 31fe59bc08
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.26.4 to 1.26.5 (#3319)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.4 to 1.26.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.4...config/v1.26.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-22 09:16:31 -06:00
dependabot[bot] c688dd89a7
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.26.3 to 1.26.4 (#3313)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.3 to 1.26.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.3...config/v1.26.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-18 10:00:55 -06:00
dependabot[bot] db0c8d4a87
chore(deps): bump actions/cache from 3 to 4 (#3315)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-18 10:00:37 -06:00
Regina Scott d9f985310f
chore: update follow-redirects to 1.15.5 (#3314)
update follow-redirects to 1.15.5

Signed-off-by: Regina Scott <rescott@redhat.com>
2024-01-17 09:40:31 -06:00
dependabot[bot] 180b4bffcd
chore(deps): bump github.com/evanphx/json-patch/v5 from 5.7.0 to 5.8.0 (#3309)
Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/evanphx/json-patch/releases)
- [Commits](https://github.com/evanphx/json-patch/compare/v5.7.0...v5.8.0)

---
updated-dependencies:
- dependency-name: github.com/evanphx/json-patch/v5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-14 20:28:41 -06:00
Leegin bc992a3fe0
docs: Fixed the key for headers in prometheus based argo analysis (#3306)
Signed-off-by: Leegin <114397475+Leegin-darknight@users.noreply.github.com>
2024-01-11 14:19:21 -05:00
dependabot[bot] 99ae20c0ff
chore(deps): bump golang.org/x/oauth2 from 0.15.0 to 0.16.0 (#3294)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.15.0 to 0.16.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.15.0...v0.16.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 11:20:39 -06:00
dependabot[bot] feda353e2e
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.32.1 to 1.32.2 (#3288)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.32.1 to 1.32.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ec2/v1.32.1...service/ec2/v1.32.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-05 17:55:11 +00:00
dependabot[bot] d02a05f1f1
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.26.2 to 1.26.3 (#3289)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.2 to 1.26.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.2...config/v1.26.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-05 17:21:00 +00:00
dependabot[bot] 39732ce7c8
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.26.6 to 1.26.7 (#3290)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.26.6 to 1.26.7.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.6...service/s3/v1.26.7)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-05 10:49:35 -06:00
dependabot[bot] c5ef3dc699
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.24.0 to 1.24.1 (#3291)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.24.0 to 1.24.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.24.0...v1.24.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-05 10:49:18 -06:00
Zach Aller 0fab0f2afb
chore: remove year from codegen license (#3282)
* chore: run codegen in 2024

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: remove year from codegen

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* chore: remove year from codegen

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2024-01-02 18:08:04 +00:00
Zach Aller 192009a272
fix: updates to replicas and pod template at the same time causes rollout to get stuck (#3272)
* fix: fix the rollout stuck when pod/replicas changed together or canary strategy.

Signed-off-by: Liming Liu <andyliuliming@outlook.com>

* add one unit test case for empty canary service.

Signed-off-by: Liming Liu <andyliuliming@outlook.com>

* use rollout status to get the replicaset hash instead of service

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Liming Liu <andyliuliming@outlook.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Liming Liu <andyliuliming@outlook.com>
2024-01-02 09:59:54 -06:00
dependabot[bot] ede86a886f
chore(deps): bump google.golang.org/protobuf from 1.31.0 to 1.32.0 (#3273)
Bumps google.golang.org/protobuf from 1.31.0 to 1.32.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-27 12:02:49 -06:00
dependabot[bot] 7a68832aa0
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.26.1 to 1.26.2 (#3268)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.1 to 1.26.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.1...config/v1.26.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-21 10:20:12 -06:00
dependabot[bot] 0b00594447
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.26.5 to 1.26.6 (#3269)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.26.5 to 1.26.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.5...service/s3/v1.26.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-21 10:19:56 -06:00
dependabot[bot] c6c16d7c58
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.32.0 to 1.32.1 (#3270)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.32.0 to 1.32.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.32.0...service/ec2/v1.32.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-21 09:19:24 -06:00
dependabot[bot] 1ecd39461a
chore(deps): bump google.golang.org/grpc from 1.60.0 to 1.60.1 (#3260)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.60.0 to 1.60.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.60.0...v1.60.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 16:22:16 +00:00
dependabot[bot] 3f0bb808ad
chore(deps): bump github/codeql-action from 2 to 3 (#3252)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 10:14:37 -06:00
dependabot[bot] b8a179fb12
chore(deps): bump actions/upload-artifact from 3 to 4 (#3255)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 10:14:06 -06:00
Kostis (Codefresh) cac9455113
docs: mention archival of the SMI spec (#3263)
Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>
2023-12-20 10:13:03 -06:00
emily-blixt-ck 0eff316b85
feat: add analysis modal (#3174)
* reset branch

Signed-off-by: Emily <emily.blixt@creditkarma.com>

* update tsconfig and moment imports

Signed-off-by: Emily <emily.blixt@creditkarma.com>

* rename component for clarity

Signed-off-by: Emily <emily.blixt@creditkarma.com>

* fix moment imports

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* bring in ticker from argo-ui

Signed-off-by: Emily <emily.blixt@creditkarma.com>

---------

Signed-off-by: Emily <emily.blixt@creditkarma.com>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2023-12-18 08:54:12 -06:00
github-actions[bot] 3a257e3740
docs: Update Changelog (#3244)
* update changelog

* Update CHANGELOG.md

---------

Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-12-12 10:45:41 -06:00
dependabot[bot] e71a42c665
chore(deps): bump sigstore/cosign-installer from 3.2.0 to 3.3.0 (#3245)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](1fc5bd396d...9614fae9e5)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:43:37 -06:00
dependabot[bot] 98f0e3a700
chore(deps): bump google.golang.org/grpc from 1.59.0 to 1.60.0 (#3246)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.59.0 to 1.60.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.59.0...v1.60.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:43:11 -06:00
dependabot[bot] 22afc4bc23
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.26.0 to 1.26.1 (#3241)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.26.0 to 1.26.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.26.0...config/v1.26.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-11 15:20:26 +00:00
dependabot[bot] 88cc9d2a0a
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.26.4 to 1.26.5 (#3240)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.26.4 to 1.26.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.26.5/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.4...service/s3/v1.26.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-11 14:46:58 +00:00
Oleksandr Saulyak 0300af1a50
fix: canary step analysis run wasn't terminated as keep running after promote action being called. Fixes #3220 (#3221)
* fix: canary step analysis run wasn't terminated as keep running after promote action being called

Signed-off-by: oleksandr-codefresh <oleksandr.saulyak@codefresh.io>

* fix unit test: added test case for canary step analysis run wasn't terminated as keep running after promote action being called

Signed-off-by: oleksandr-codefresh <oleksandr.saulyak@codefresh.io>

---------

Signed-off-by: oleksandr-codefresh <oleksandr.saulyak@codefresh.io>
Co-authored-by: pasha-codefresh <pavel@codefresh.io>
2023-12-11 08:25:15 -06:00
dependabot[bot] 31d19dd2d7
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.31.4 to 1.32.0 (#3239)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.31.4 to 1.32.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.32.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/athena/v1.31.4...service/s3/v1.32.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-11 07:51:44 -06:00
dependabot[bot] 54d83d676b
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.25.12 to 1.26.0 (#3236)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.25.12 to 1.26.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.12...config/v1.26.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-08 16:45:09 +00:00
Liming Liu 8d20ab74ea
chore: leave the validation of setHeaderRoute to the plugin when plugins is not empty. (#2898)
chore: leave the validation of setHeaderRoute to the plugin if plugins not empty.

Signed-off-by: Liming Liu <andyliuliming@outlook.com>
Co-authored-by: Ubuntu <andliu@devbox.5xpt1tfa54mehhcinhsnwwrpve.ix.internal.cloudapp.net>
2023-12-08 10:26:21 -06:00
dependabot[bot] 147b74a15c
chore(deps): bump github.com/influxdata/influxdb-client-go/v2 from 2.12.4 to 2.13.0 (#3217)
chore(deps): bump github.com/influxdata/influxdb-client-go/v2

Bumps [github.com/influxdata/influxdb-client-go/v2](https://github.com/influxdata/influxdb-client-go) from 2.12.4 to 2.13.0.
- [Release notes](https://github.com/influxdata/influxdb-client-go/releases)
- [Changelog](https://github.com/influxdata/influxdb-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/influxdata/influxdb-client-go/compare/v2.12.4...v2.13.0)

---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-08 10:20:48 -06:00
dependabot[bot] 5cbd128e8d
chore(deps): bump actions/stale from 8 to 9 (#3232)
Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-08 10:11:03 -06:00
dependabot[bot] d0faf585d3
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.31.3 to 1.31.4 (#3235)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.31.3 to 1.31.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.31.3...service/athena/v1.31.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-08 16:09:48 +00:00
dependabot[bot] 3a63141261
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.26.3 to 1.26.4 (#3234)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.26.3 to 1.26.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.3...service/s3/v1.26.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-08 09:34:36 -06:00
Zach Aller eeb2719479
fix: make sure we use the updated rs when we write back to informer (#3237)
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2023-12-08 09:26:08 -06:00
Zach Aller 1305129da1
fix: conflict on updates to replicaset revision (#3216)
* fix: possibly fix conflict on updates to revision

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* wip

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix one test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix tests

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change order

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change order to match reality

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add comments on exptected actions

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2023-12-07 16:58:50 -06:00
dependabot[bot] 5bcacd9a65
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.25.11 to 1.25.12 (#3230)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.25.11 to 1.25.12.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.11...config/v1.25.12)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-07 15:22:08 +00:00
dependabot[bot] 2723b7d601
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.31.2 to 1.31.3 (#3226)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.31.2 to 1.31.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.31.2...service/s3/v1.31.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-07 08:49:27 -06:00
dependabot[bot] 4c7a99b2da
chore(deps): bump actions/setup-python from 4 to 5 (#3227)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-07 08:37:44 -06:00
dependabot[bot] a3a449c9e4
chore(deps): bump actions/setup-go from 4.1.0 to 5.0.0 (#3228)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.1.0 to 5.0.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4.1.0...v5.0.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-06 23:12:14 -06:00
dependabot[bot] 003af7b4f3
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.26.2 to 1.26.3 (#3229)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.26.2 to 1.26.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.2...service/s3/v1.26.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-06 23:11:21 -06:00
dlorenc d378ce76b6
chore(deps): Bump k8s dependencies to v1.26.11 (#3211)
* Bump k8s dependencies to v1.26.0.

This addresses a few CVEs, but was slightly challenging because of some Kubernetes API changes.

In particular, the Ingress type signatures changed. This required some surgery on a function that
wrapped the extensionsv1beta1 Ingress and v1 Ingress types, attempting to provide some compatibility.

The API changes were kind of tough to deal with, but fortunately the only field required by anything else
in this project was the Hostname field, so I changed the function to just normalize the hostnames into
a slice.

Signed-off-by: Dan Lorenc <dlorenc@chainguard.dev>

* Update codegen.

Signed-off-by: Dan Lorenc <dlorenc@chainguard.dev>

* bump the replace deps, and re-run codegen

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* bump to 0.26.11 and possible fix for new crd properties

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* remove local changes

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* switch alb test off of extensions and on to v1

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Dan Lorenc <dlorenc@chainguard.dev>
Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2023-12-06 10:14:30 -06:00
Mayursinh Sarvaiya 23b5302e68
chore(deps): bump argo-ui and fix browser console errors (#3212)
* feat: update argo-ui package

Signed-off-by: Mayursinh Sarvaiya <marvinduff97@gmail.com>

* chore: revert back moment package import

> allow allowSyntheticDefaultImports

Signed-off-by: Mayursinh Sarvaiya <marvinduff97@gmail.com>

* fix: browser console errors

Signed-off-by: Mayursinh Sarvaiya <marvinduff97@gmail.com>

---------

Signed-off-by: Mayursinh Sarvaiya <marvinduff97@gmail.com>
2023-12-05 11:04:14 -08:00
dependabot[bot] d892380842
chore(deps): bump docker/build-push-action from 5.0.0 to 5.1.0 (#3178)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](0565240e2d...4a13e500e5)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-05 11:07:15 -06:00
balasoiuroxana 0ec851942a
feat: automatically scale down Deployment after migrating to Rollout (#3111)
Automatically scale down Deployment after migrating to Rollout

Signed-off-by: balasoiu <balasoiu@adobe.com>
Co-authored-by: balasoiu <balasoiu@adobe.com>
2023-12-05 09:42:14 -06:00
github-actions[bot] 3ec0eccfda
docs: Update Changelog (#3214)
update changelog

Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-12-05 15:11:31 +00:00
Linus Ekman 3b60991f07
build(deps): always resolve momentjs version 2.29.4 (#3182)
Before this change both version 2.29.1 and version 2.29.4 of momentjs
were brougth in. The bump from v2.29.1 -> v2.29.4 remediates two CVEs:
CVE-2022-24785 [1] and CVE-2022-31129 [2]. The most notable change comes
with the bump from v2.29.1 -> v2.29.2 which introduces a breaking change
to remediate CVE-2022-24785: Forward slash and backward slash is no
longer allowed in locale names. Locales containing either of those
characters will not be loaded from the filesystem any longer [3]. Other
than that it looks like there's only patch fixes which can be seen in
the full changelog [4].

[1] https://github.com/moment/moment/security/advisories/GHSA-8hfj-j24r-96c4
[2] https://github.com/moment/moment/security/advisories/GHSA-wc69-rhjr-hc9g
[3] https://gist.github.com/ichernev/1904b564f6679d9aac1ae08ce13bc45c
[4] 536ad0c348/CHANGELOG.md

Signed-off-by: Linus Ekman <linusekman01@gmail.com>
2023-12-04 10:06:32 -06:00
dependabot[bot] d86c6cea04
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.25.10 to 1.25.11 (#3206)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.25.10 to 1.25.11.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.10...config/v1.25.11)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 15:43:29 +00:00
Zach Aller c067a6942f
fix: rollouts getting stuck due to bad rs informer updates (#3200)
* fix: for rollouts getting stuck due to bad rs informer updates

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* fix error msg

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change logic

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* error fmt

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* change if logic

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* add test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* cleanup test

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

* do not double call

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Zach Aller <zachaller@users.noreply.github.com>
2023-12-04 09:32:53 -06:00
dependabot[bot] 7bdfca435d
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.26.1 to 1.26.2 (#3207)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.26.1 to 1.26.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.1...service/s3/v1.26.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 15:09:14 +00:00
dependabot[bot] 4b73347e0b
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.31.1 to 1.31.2 (#3208)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.31.1 to 1.31.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.31.2/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.31.1...service/s3/v1.31.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 08:32:18 -06:00
Andre Marcelo-Tanner 1600e27e6f
docs(deps): Specify minimum kustomize version (#3199)
* Tests require atleast kustomize v4.5.5, install v5.2.1 if we are using a different version of kustomize

Signed-off-by: Andre Marcelo-Tanner <andre@ada.support>

* revert version upgrade and just rely on docs

Signed-off-by: Andre Marcelo-Tanner <andre@ada.support>

---------

Signed-off-by: Andre Marcelo-Tanner <andre@ada.support>
2023-12-02 19:16:01 -06:00
dependabot[bot] 3d412ed1c9
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.30.5 to 1.31.1 (#3201)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.30.5 to 1.31.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.31.1/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.5...service/s3/v1.31.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 15:59:04 +00:00
dependabot[bot] 2270a507be
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.25.2 to 1.26.1 (#3203)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.25.2 to 1.26.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.2...service/s3/v1.26.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 15:22:28 +00:00
dependabot[bot] 839d727bf3
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.25.8 to 1.25.10 (#3204)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.25.8 to 1.25.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.8...config/v1.25.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 08:48:25 -06:00
Philip Clark 8cae2846f9
feat: Rollouts UI List View Refresh (#3118)
* feat: Rollouts UI Refresh

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* add test for labels and annotations

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* simplify regex

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* make filters use OR logic

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* add keyboard listener

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* set default display mode to grid

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* set strategy column to left justify

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* add tooltips to view buttons

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* consider unknown status rollouts as needing attention

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* remove duplicate escape key listener

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* group status filters together

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* improve filter logic

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* remove debug logging

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* dont show help on escape

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* properly remove url search params when disabled

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* rename to RolloutGridWidget

Signed-off-by: Philip Clark <philip.clark@iterable.com>

* prevent help menu from loading while searching

Signed-off-by: Philip Clark <philip.clark@iterable.com>

---------

Signed-off-by: Philip Clark <philip.clark@iterable.com>
2023-11-30 10:41:45 -06:00
dependabot[bot] 33e0612cb6
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.25.5 to 1.25.8 (#3191)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.25.5 to 1.25.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.25.5...config/v1.25.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 17:24:07 +00:00
dependabot[bot] dbf8ccc58b
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.24.3 to 1.25.2 (#3192)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.24.3 to 1.25.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.24.3...config/v1.25.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 16:20:12 +00:00
dependabot[bot] 57d294e93e
chore(deps): bump golang.org/x/oauth2 from 0.13.0 to 0.15.0 (#3187)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.13.0 to 0.15.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.13.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 09:47:34 -06:00
dependabot[bot] fe702457e7
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.30.3 to 1.30.5 (#3193)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.30.3 to 1.30.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.3...service/s3/v1.30.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 09:46:15 -06:00
dependabot[bot] e440196430
chore(deps): bump github.com/antonmedv/expr from 1.15.4 to 1.15.5 (#3186)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.15.4 to 1.15.5.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.15.4...v1.15.5)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-27 11:52:09 -06:00
dependabot[bot] 9bccf0e5fe
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.30.1 to 1.30.3 (#3179)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.30.1 to 1.30.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.1...service/s3/v1.30.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-26 22:40:16 +00:00
dependabot[bot] c7746c41bc
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.24.0 to 1.24.3 (#3180)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.24.0 to 1.24.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/ecs/v1.24.3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.24.0...service/ecs/v1.24.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-26 16:06:07 -06:00
dependabot[bot] 1f7cb241fb
chore(deps): bump github.com/influxdata/influxdb-client-go/v2 from 2.12.3 to 2.12.4 (#3150)
chore(deps): bump github.com/influxdata/influxdb-client-go/v2

Bumps [github.com/influxdata/influxdb-client-go/v2](https://github.com/influxdata/influxdb-client-go) from 2.12.3 to 2.12.4.
- [Release notes](https://github.com/influxdata/influxdb-client-go/releases)
- [Changelog](https://github.com/influxdata/influxdb-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/influxdata/influxdb-client-go/compare/v2.12.3...v2.12.4)

---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-23 03:10:53 +00:00
dependabot[bot] 586dcbd123
chore(deps): bump github.com/antonmedv/expr from 1.15.3 to 1.15.4 (#3184)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-22 20:37:50 -06:00
dependabot[bot] be241c9143
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.23.0 to 1.25.5 (#3183)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.23.0 to 1.25.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.23.0...config/v1.25.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-22 10:27:40 -06:00
dependabot[bot] 87b7448fc0
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.30.0 to 1.30.1 (#3166)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.30.0 to 1.30.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.30.0...service/s3/v1.30.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-15 07:45:02 -06:00
dependabot[bot] 13ef11180c
chore(deps): bump github.com/hashicorp/go-plugin from 1.5.2 to 1.6.0 (#3167)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.5.2 to 1.6.0.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.5.2...v1.6.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-14 10:51:27 -06:00
Zubair Haque 39d21ae857
chore: add test for reconcileEphemeralMetadata() (#3163)
add test for reconcileEphemeralMetadata()

Signed-off-by: zhaque44 <haque.zubair@gmail.com>
2023-11-10 19:42:41 -06:00
dependabot[bot] d8f0aa42e3
chore(deps): bump github.com/bombsimon/logrusr/v4 from 4.0.0 to 4.1.0 (#3151)
Bumps [github.com/bombsimon/logrusr/v4](https://github.com/bombsimon/logrusr) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/bombsimon/logrusr/releases)
- [Commits](https://github.com/bombsimon/logrusr/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: github.com/bombsimon/logrusr/v4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 11:32:01 -06:00
dependabot[bot] f8d18a3387
chore(deps): bump github.com/spf13/cobra from 1.7.0 to 1.8.0 (#3152)
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 11:31:30 -06:00
dependabot[bot] 3e74cf5bf5
chore(deps): bump sigstore/cosign-installer from 3.1.2 to 3.2.0 (#3158)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.1.2 to 3.2.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](11086d2504...1fc5bd396d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 11:30:22 -06:00
dependabot[bot] 19236c6703
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.22.0 to 1.23.0 (#3161)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.22.0 to 1.23.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.22.0...config/v1.23.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 11:26:52 -06:00
Daniel Metz e4ac54cb47
docs: fix typo in smi.md (#3160)
smi.md: fix typo

Before: "Name of service that sends traffic only to the stable po ds"
After: "Name of service that sends traffic only to the stable pods"

Signed-off-by: Daniel Metz <dmetz@figma.com>
2023-11-09 22:20:20 -06:00
Michael Crenshaw 5b46e7af4f
chore: add OpenSSF Scorecard badge (#3154)
chore: add OpenSSF scorecard

Signed-off-by: CI <ci@argoproj.com>
Co-authored-by: CI <ci@argoproj.com>
2023-11-06 14:18:39 +00:00
dependabot[bot] 1c455de972
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.28.0 to 1.30.0 (#3144)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.28.0 to 1.30.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.30.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.28.0...service/s3/v1.30.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-03 12:46:22 -05:00
dependabot[bot] 0246228794
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.22.0 to 1.24.0 (#3143)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.22.0 to 1.24.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.24.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.22.0...service/s3/v1.24.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-03 14:38:57 +00:00
dependabot[bot] 0071d62270
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.20.0 to 1.22.0 (#3149)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.20.0 to 1.22.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.20.0...v1.22.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-03 08:52:46 -05:00
github-actions[bot] 5ec6e9ffc7
docs: Update Changelog (#3148)
update changelog

Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-11-03 08:49:10 -05:00
Zach Aller 0593d92a9a
fix: Revert "fix: istio destionationrule subsets enforcement (#3126)" (#3147)
Revert "fix: istio destionationrule subsets enforcement (#3126)"

This reverts commit 04e11195fb.

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-11-02 13:50:50 -04:00
Justin Marquis 6e89d76d2f
chore: upgrade cosign (#3139)
Signed-off-by: Justin Marquis <justin@akuity.io>
2023-11-01 20:09:06 +00:00
dependabot[bot] f0265daa39
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.19.1 to 1.20.0 (#3135)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.19.1 to 1.20.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.20.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.19.1...v1.20.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-01 15:08:21 +00:00
Dennis Nguyen 04e11195fb
fix: istio destionationrule subsets enforcement (#3126)
* istio destionationrule subsets enforcement

Signed-off-by: Dennis Nguyen <dnguyen@nextdoor.com>

* add users

Signed-off-by: Dennis Nguyen <dnguyen@nextdoor.com>

* add test case for failure cases

Signed-off-by: Dennis Nguyen <dnguyen@nextdoor.com>

---------

Signed-off-by: Dennis Nguyen <dnguyen@nextdoor.com>
2023-11-01 14:03:46 +00:00
dependabot[bot] e1b6d0545b
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.21.2 to 1.22.0 (#3136)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.21.2 to 1.22.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.21.2...v1.22.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-01 08:30:57 -05:00
dependabot[bot] 423be7b9ee
chore(deps): bump sigs.k8s.io/yaml from 1.3.0 to 1.4.0 (#3122)
Bumps [sigs.k8s.io/yaml](https://github.com/kubernetes-sigs/yaml) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/kubernetes-sigs/yaml/releases)
- [Changelog](https://github.com/kubernetes-sigs/yaml/blob/master/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/yaml/compare/v1.3.0...v1.4.0)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/yaml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-30 21:28:52 -05:00
Zach Aller c83bf648a2
fix: docs require build.os to be defined (#3133)
* fix read the docs build

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix read the docs build

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-10-30 22:23:34 +00:00
mitchell amihod 3e940a6e71
docs(analysis): Add note about availability of new datadog v2 functionality (#3131)
Add note about availability of new datadog v2 functionality

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2023-10-29 21:47:15 -05:00
dependabot[bot] 4471508054
chore(deps): bump google.golang.org/grpc from 1.58.3 to 1.59.0 (#3113)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.58.3 to 1.59.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.58.3...v1.59.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-28 09:00:01 -05:00
dependabot[bot] 53fbc57614
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.21.6 to 1.22.0 (#3127)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.21.6 to 1.22.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.22.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.21.6...service/s3/v1.22.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-28 08:57:26 -05:00
dependabot[bot] afdbfc6716
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.19.0 to 1.19.1 (#3123)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.19.0 to 1.19.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.19.1/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.19.0...v1.19.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-25 08:53:17 -05:00
dependabot[bot] 23c65e0fab
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.27.9 to 1.28.0 (#3124)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.27.9 to 1.28.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.28.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.27.9...service/s3/v1.28.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-25 07:51:54 -05:00
Jesse Suen 7f25955852
fix: rollback to stable with dynamicStableScale could overwhelm stable pods (#3077)
* fix: rollback to stable with dynamicStableScale could go under maxUnavailable

Signed-off-by: Jesse Suen <jesse@akuity.io>

* test: add unit tests

Signed-off-by: Jesse Suen <jesse@akuity.io>

* test: add e2e tests

Signed-off-by: Jesse Suen <jesse@akuity.io>

* refactor: move isReplicaSetReferenced to replicaset.go

Signed-off-by: Jesse Suen <jesse@akuity.io>

---------

Signed-off-by: Jesse Suen <jesse@akuity.io>
2023-10-23 12:51:57 +00:00
dependabot[bot] 047f2a2173
chore(deps): bump golang.org/x/oauth2 from 0.10.0 to 0.13.0 (#3107)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.10.0 to 0.13.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.10.0...v0.13.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 06:24:38 -05:00
Jason Meridth 9ecdeed7aa
docs: add CONTRIBUTING.md at root of repo, directing to docs/ (#3121)
Add a root CONTRIBUTING.md that directs to docs/CONTRIBUTING.md

# Details

- having a `CONTRIBUTING.md` at the root of the repo is a common convention
  - I looked at the root of the repo initially, didn't find it, then checked the website, but potential contributors may think it doesn't exist as a result

Shamelessly copied from https://github.com/argoproj/argo-workflows/pull/10969 (thank you @agilgur5)

Signed-off-by: jmeridth <jmeridth@gmail.com>
2023-10-23 06:23:23 -05:00
dependabot[bot] 439fa5249c
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.45 to 1.19.0 (#3109)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.45 to 1.19.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.19.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.45...v1.19.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-20 19:44:12 -07:00
dependabot[bot] 5597ae6548
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.44 to 1.18.45 (#3101)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.44 to 1.18.45.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.44...config/v1.18.45)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-16 01:08:48 -07:00
dependabot[bot] 9b2d607d1f
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.21.4 to 1.21.6 (#3100)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.21.4 to 1.21.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.21.4...service/efs/v1.21.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-14 02:25:09 +00:00
mitchell amihod ebf1a3ed24
fix(metricprovider): support Datadog v2 API Fixes #2813 (#2997)
* Add note in CONTRIBUTING.md that I would have found useful.

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Fix gen-openapi to be more portable - make sure it includes the GOPATH in the call.

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Update docs.

* Expand working with v2 information
* Contacted Datadog to get latest info re: v1 deprecation, api limits.
* Add tips about rate limits, using helm for templates
* Add more example templates

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Update Datadog Analysis Type

* Make Query omitempty since now possible it won't exist
* Add some descriptions
* Add new properties we need for v2

Queries: We can pass in key:query for queries
Formula: Makes formulas using the keys from queries

* Defaults!
Use annotations to declare defaults for some fields. This lets us remove some guard rails from the code itself

Interval: 5m - Move this from code to here
ApiVersion: v1 - Move this from code to here

* Enums!
Much like defaults, having enums lets us make assumptions about the incoming metric so we dont need as many guardrails.

ApiVersion: Enum to restrict to v1 or v2
Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Output of make codegen

Everything looks ok.

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Pass in metric to provider factory. Validate metric.

Validating the metric on initialization, rather than spread out throughout. You get earlier feedback if you have a bad metric defined. (Not perfect, but there's limitations with our annotation generator for the rules in the crd. eg: If we could use oneOf, we wouldn't need a lot of this validation)

We check all the mutually exclusive props.
The props where one requires another.
We don't have to check for defaults and set them anymore, since they are guaranteed by the crd.

rules:

- ensure we have only query OR queries
- restrict v1 to query only
- make sure you only provide a formula with queries
- make sure multiple queries are accompanied by a formula

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Remove DefaultApiVersion, remove impossible  AnalysisPhaseError

ApiVersion is guaranteed to have value, and the enum ensures its v1/v2 when user provided.

Updated v1 tests to reflect some of these new realities

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* extract urlBuilding from run

run was getting a bit long according to the checks

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Remove some unnecessary stuff for interval.

It is a straightline to initialize since default is set to 5m for incoming metrics where it is not set.

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Update createRequest

Split into createRequest v1/v2
v1 : pretty much unchanged. just extracted
v2: support for v2/query/scalar

We don't need all the timeseries. I did some testing fetching both scalar and timeseries, and they pretty much lined up.

Also confirmed with DD: From support ticket with DD: "...I have also tested the scalar api endpoint with the last aggregator as well as the timeseries api endpoint. They do indeed return the same values when retrieving the values via the api endpoints. Observing the time it takes to retrieve the values, they remain relatively the same..."

re: query + v2: Keep backwards compat. if we get in a query, we turn it into a queries object to pass on to requestv2 queries into the QueriesPayload.
Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Handle v2 scalar responses

* update the datadogResponseV2 for scalar values
* handle no results so it has parity with v1 - empty will now usually result in `[]` unless something goes very wrong on dd side

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* update v1 no data tests to better reflect reality

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* update v2 tests

* add some new test cases
* update mock server to handle queries / formulas validation
* update no data tests to reflect reality
* stop all values being the same. it makes it difficult to know find which test case failed. move meaning from comments into the metric name.
* stop using deprecated ioutil

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* re-codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-10-13 20:39:31 -05:00
Zach Aller 1d89c33b50
fix: codegen was missed (#3104)
fix: codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-10-13 18:49:54 +00:00
dependabot[bot] e04d3254f8
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.27.8 to 1.27.9 (#3102)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.27.8 to 1.27.9.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.27.8...service/s3/v1.27.9)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-13 10:12:44 -05:00
OpenGuidou a9a51f2851
feat: Support OAuth2 for prometheus and web providers (#3038)
Signed-off-by: Guillaume Doussin <guillaume.doussin@gmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-10-13 10:12:22 -05:00
dependabot[bot] 69c697c82e
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.21.1 to 1.21.2 (#3103)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.21.1 to 1.21.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.21.1...v1.21.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-13 08:56:13 -05:00
AS 6d58a42409
chore: add missing rollout fields (#3062)
* chores: add missing rollout fields

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* chores: add missing rollout fields

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* chores: add missing rollout fields

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* chores: add missing rollout fields

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

* chores: add missing rollout fields

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>

---------

Signed-off-by: ashutosh16 <11219262+ashutosh16@users.noreply.github.com>
2023-10-13 08:55:48 -05:00
dependabot[bot] db567aaf6f
chore(deps): bump google.golang.org/grpc from 1.58.2 to 1.58.3 (#3098)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.58.2 to 1.58.3.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.58.2...v1.58.3)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-12 14:00:41 -05:00
dependabot[bot] a3dfd56548
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.43 to 1.18.44 (#3099)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.43 to 1.18.44.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.43...config/v1.18.44)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-12 14:00:20 -05:00
Zach Aller 28d9502321
fix: keep rs informer updated (#3091)
* keep rs informer updated

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* correct bad log

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add error context

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-10-12 14:00:01 -05:00
Zach Aller 017d362781
fix: bump notification-engine to fix double send on self server notifications (#3095)
* bump notification-engine to fix double send on self server notifications

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-10-11 20:38:45 +00:00
PranitRout07 e788a01369
docs: Ensure image not present between incomplete sentence. (#3079)
* Update anti-affinity.md

* Update mkdocs.yml
2023-10-11 08:29:53 -05:00
dependabot[bot] c2285545de
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.21.0 to 1.21.1 (#3085)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.21.0 to 1.21.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.21.0...v1.21.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-11 08:28:59 -05:00
dependabot[bot] 8d6d4260b4
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.27.7 to 1.27.8 (#3086)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.27.7 to 1.27.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.27.7...service/s3/v1.27.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-11 08:28:40 -05:00
Zach Aller d8a6256699
fix: revert repo change to expr (#3094)
revert repo change to expr

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-10-11 09:04:30 -04:00
Yuan (Terry) Tang 8985fd8923
fix: Replace antonmedv/expr with expr-lang/expr (#3090)
Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
2023-10-09 16:56:48 -06:00
Zach Aller ba7c9a5a1b
fix: missing notification on error (#3076)
* fix: missing notification on error

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix tests

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* aggregate errors

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix bad stat counts

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* return errors

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix tests on return of errors

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change case on logs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* missed a case

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-10-05 16:30:50 +00:00
Zach Aller 83fe979780
fix: sync notification controller configmaps/secrets first (#3075)
sync notification controller configmaps/secrets first before starting other informers

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-10-05 09:14:05 -05:00
dependabot[bot] 20214b409c
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.42 to 1.18.43 (#3072)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.42 to 1.18.43.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.42...config/v1.18.43)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-04 08:14:24 -05:00
Jesse Suen 0d93b9705a
fix: inopportune scaling events would lose some status fields (#3060)
fix: inopportune scaling events would result in loss of data

Signed-off-by: Jesse Suen <jesse@akuity.io>
2023-10-04 08:14:01 -05:00
dependabot[bot] 6f5206ff7e
chore(deps): bump github.com/hashicorp/go-plugin from 1.5.1 to 1.5.2 (#3056)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.5.1 to 1.5.2.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.5.1...v1.5.2)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 16:37:52 -05:00
Zubair Haque b81e404850
chore: updating getCanaryConfigId to be more efficient with better error handling (#3070)
updating getCanaryConfigId to be more efficient with better error handling

Signed-off-by: zhaque44 <haque.zubair@gmail.com>
2023-10-02 16:37:30 -05:00
Jesse Suen 5ac4a48d3e
fix: prevent hot loop when fully promoted rollout is aborted (#3064)
* fix: prevent hot loop when fully promoted rollout is aborted

Signed-off-by: Jesse Suen <jesse@akuity.io>

* test: change expectations of abort tests

Signed-off-by: Jesse Suen <jesse@akuity.io>

---------

Signed-off-by: Jesse Suen <jesse@akuity.io>
2023-09-29 17:01:46 -05:00
dependabot[bot] f650a1fd0b
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.41 to 1.18.42 (#3055)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.41 to 1.18.42.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.41...config/v1.18.42)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-26 07:42:45 -05:00
Kostis (Codefresh) 6a231bfcbf
docs: clarify external clusters (#3058)
Signed-off-by: Kostis (Codefresh) <39800303+kostis-codefresh@users.noreply.github.com>
2023-09-25 12:47:24 +00:00
dependabot[bot] 2aeabf42ec
chore(deps): bump github.com/antonmedv/expr from 1.15.2 to 1.15.3 (#3046)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.15.2 to 1.15.3.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.15.2...v1.15.3)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-23 21:05:51 -05:00
dependabot[bot] 1ee490b983
chore(deps): bump docker/setup-qemu-action from 2.2.0 to 3.0.0 (#3031)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](2b82ce82d5...68827325e0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-23 21:05:26 -05:00
dependabot[bot] 91beda4018
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.39 to 1.18.41 (#3047)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.39 to 1.18.41.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.39...config/v1.18.41)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-23 21:01:10 -05:00
dependabot[bot] d5fdf6d6a4
chore(deps): bump google.golang.org/grpc from 1.58.0 to 1.58.2 (#3050)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.58.0 to 1.58.2.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.58.0...v1.58.2)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-22 12:12:13 -05:00
dependabot[bot] 57be60a0bb
chore(deps): bump google.golang.org/grpc from 1.57.0 to 1.58.0 (#3023)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.57.0 to 1.58.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.57.0...v1.58.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-14 16:13:13 -05:00
dependabot[bot] ad3c4f63ed
chore(deps): bump github.com/evanphx/json-patch/v5 from 5.6.0 to 5.7.0 (#3030)
Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.6.0 to 5.7.0.
- [Release notes](https://github.com/evanphx/json-patch/releases)
- [Commits](https://github.com/evanphx/json-patch/compare/v5.6.0...v5.7.0)

---
updated-dependencies:
- dependency-name: github.com/evanphx/json-patch/v5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-14 16:12:43 -05:00
dependabot[bot] b80afec0ff
chore(deps): bump docker/metadata-action from 4 to 5 (#3032)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-14 16:12:01 -05:00
dependabot[bot] 4852524e87
chore(deps): bump docker/build-push-action from 4.1.1 to 5.0.0 (#3033)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.1 to 5.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](2eb1c1961a...0565240e2d)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-14 16:11:35 -05:00
dependabot[bot] cb22411892
chore(deps): bump docker/setup-buildx-action from 2.10.0 to 3.0.0 (#3034)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.10.0 to 3.0.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](885d1462b8...f95db51fdd)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-14 16:10:56 -05:00
dependabot[bot] ee4643e666
chore(deps): bump docker/login-action from 2.2.0 to 3.0.0 (#3035)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](465a07811f...343f7c4344)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-14 16:10:32 -05:00
dependabot[bot] 2c9e6c5803
chore(deps): bump github.com/antonmedv/expr from 1.15.1 to 1.15.2 (#3036)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.15.1 to 1.15.2.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.15.1...v1.15.2)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-14 16:10:00 -05:00
mitchell amihod c244c048d0
chore: Update users doc with CircleCI (#3028)
Update users doc with CircleCI

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2023-09-08 21:55:24 +00:00
dependabot[bot] 71545aeacf
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.21.3 to 1.21.4 (#3025)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.21.3 to 1.21.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.21.3...service/efs/v1.21.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-08 12:03:56 -05:00
dependabot[bot] 4f14684809
chore(deps): bump github.com/hashicorp/go-plugin from 1.5.0 to 1.5.1 (#3017)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.5.0...v1.5.1)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-07 14:06:00 -05:00
dependabot[bot] df187c10b5
chore(deps): bump github.com/antonmedv/expr from 1.13.0 to 1.15.1 (#3024)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.13.0 to 1.15.1.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.13.0...v1.15.1)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-07 14:05:27 -05:00
mitchell amihod abb84746c8
fix: Add the GOPATH to the go-to-protobuf command (#3022)
Add the GOPATH to the go-to-protobuf command

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2023-09-06 17:47:38 -05:00
github-actions[bot] c5457e335e
docs: Update Changelog (#3021)
* update changelog

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* re-trigger

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* re-trigger

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-09-06 20:33:41 +00:00
dependabot[bot] b30ad03217
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.38 to 1.18.39 (#3018)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.38 to 1.18.39.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.38...config/v1.18.39)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-06 08:33:19 -05:00
dependabot[bot] 2cf1aa1305
chore(deps): bump actions/checkout from 3 to 4 (#3012)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 12:04:01 -05:00
izturn 69bcc3723e
refactor: rename interface{} => any (#3000)
* rename interface{} => any

Signed-off-by: gang.liu <gang.liu@daocloud.io>

* revert change to generated code

Signed-off-by: gang.liu <gang.liu@daocloud.io>

---------

Signed-off-by: gang.liu <gang.liu@daocloud.io>
2023-09-05 12:03:26 -05:00
pasha-codefresh 6e716fa4a9
fix: analysis step should be ignored after promote (#3016)
* fix: analysis step should be ignored after promote in case if result was inconclusive

Signed-off-by: pashakostohrys <pavel@codefresh.io>

* fix: analysis step should be ignored after promote in case if result was inconclusive

Signed-off-by: pashakostohrys <pavel@codefresh.io>

---------

Signed-off-by: pashakostohrys <pavel@codefresh.io>
2023-09-05 11:03:51 -05:00
Daniel Wright b14679b730
docs: replace `patchesStrategicMerge` with `patches` in tests/docs (#3010)
This update ensures documentation and test examples reflect the use
of the newer `patches` method, transitioning away from the deprecated
`patchesStrategicMerge`. This aligns with current best practices and
recommendations from the kustomize project.

Signed-off-by: Daniel Wright <danielwright@bitgo.com>
2023-09-05 10:23:02 -05:00
dependabot[bot] 32bf983cd0
chore(deps): bump sigstore/cosign-installer from 3.1.1 to 3.1.2 (#3011)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.1.1...11086d25041f77fe8fe7b9ea4e48e3b9192b8f19)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-03 22:37:30 -05:00
Daniel Wright 607de81770
docs: update all ingress objects to networking.k8s.io/v1 (#3005)
This commit updates all Kubernetes ingress rules in Argo Rollouts
to use the stable `networking.k8s.io/v1` API, ensuring compatibility
with Kubernetes v1.19+ and leveraging new features available in the
stable version.

Signed-off-by: Daniel Wright <danielwright@bitgo.com>
2023-09-02 20:50:18 -05:00
dependabot[bot] 9906c37882
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.37 to 1.18.38 (#3002)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.37 to 1.18.38.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.37...config/v1.18.38)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-31 22:21:17 -05:00
Stig Brautaset c5508fb8cf
docs: Remove rogue apostrophe in features/analysis.md (#3001)
Signed-off-by: Stig Brautaset <stig@brautaset.org>
2023-08-31 16:17:09 -05:00
Andy Chen 8b0215d600
fix(controller): rollback should skip all steps to active rs within RollbackWindow (#2953)
* fix(canary): skip steps when in rollback window and rs is still active

Resolve #2939

Signed-off-by: Andy Chen <amazingandyyy@gmail.com>

* test(canary): add case where rollback when in window and rs is still active

Signed-off-by: Andy Chen <amazingandyyy@gmail.com>

* test(replicaset): add test case for IsActive function

Signed-off-by: Andy Chen <amazingandyyy@gmail.com>

---------

Signed-off-by: Andy Chen <amazingandyyy@gmail.com>
Co-authored-by: Yohan Belval <ybelval@turo.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-08-31 16:16:35 -05:00
dependabot[bot] f433582599
chore(deps): bump github.com/hashicorp/go-plugin from 1.4.10 to 1.5.0 (#2995)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.4.10 to 1.5.0.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.4.10...v1.5.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-30 10:48:46 -05:00
Zach Aller f67acf492a
chore: change file name for readthedocs compatibility (#2999)
change file name for readthedoc compat

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-08-30 15:24:31 +00:00
ngsh e4153218e9
chore: add WeLab Bank to users.md (#2996)
chore: add WeLab Bank to users

Signed-off-by: ngsh <ngsh.inc@gmail.com>
2023-08-30 08:31:57 -05:00
izturn d4c7728f55
feat: add command args for plugin (#2992)
* add command args for plugin

Signed-off-by: gang.liu <gang.liu@daocloud.io>

* add doc

Signed-off-by: gang.liu <gang.liu@daocloud.io>

---------

Signed-off-by: gang.liu <gang.liu@daocloud.io>
2023-08-30 08:31:03 -05:00
dependabot[bot] 75bade5fda
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.27.6 to 1.27.7 (#2990)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.27.6 to 1.27.7.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.27.6...service/s3/v1.27.7)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 14:37:37 -05:00
dependabot[bot] 0e2b9d839a
chore(deps): bump docker/setup-buildx-action from 2.9.1 to 2.10.0 (#2994)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.9.1 to 2.10.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](4c0219f9ac...885d1462b8)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 14:37:18 -05:00
dependabot[bot] 252e6eeaa0
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.21.0 to 1.21.3 (#2977)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.21.0 to 1.21.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.21.0...service/efs/v1.21.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-25 10:54:07 -05:00
dependabot[bot] 2ff5d2cb45
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.36 to 1.18.37 (#2984)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.36 to 1.18.37.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.36...config/v1.18.37)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-25 10:53:10 -05:00
Dylan Schlager f28d70cc47
feat(trafficrouting): use values array for multiple accepted values under same header name (#2974)
* feat(headername): allow traffic forward condition string to append to matching headername conditions

Signed-off-by: Dylan Schlager <dylan.schlager@lattice.com>

* chore: remove unnecessary comments from tests

Signed-off-by: Dylan Schlager <dylan.schlager@lattice.com>

* chore: fix linting failures

Signed-off-by: Dylan Schlager <dylan.schlager@lattice.com>

---------

Signed-off-by: Dylan Schlager <dylan.schlager@lattice.com>
2023-08-25 10:52:53 -05:00
izturn 5e2249f6d0
docs: add Gateway-API integration information to README.md (#2985)
add plugin: gateway-api  to README.md

Signed-off-by: gang.liu <gang.liu@daocloud.io>
2023-08-25 10:51:38 -05:00
github-actions[bot] bcb7e489f4
docs: Update Changelog (#2952)
update changelog

Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-08-23 17:30:02 +00:00
dependabot[bot] 68d7ffec68
chore(deps): bump slsa-framework/slsa-github-generator from 1.8.0 to 1.9.0 (#2983)
chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.8.0...v1.9.0)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-23 11:49:38 -05:00
izturn 2b7fb7e54b
docs: add contour integration information to README.md (#2980)
* add contour to README.md

Signed-off-by: gang.liu <gang.liu@daocloud.io>

* chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.33 to 1.18.36 (#2978)

chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.33 to 1.18.36.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.33...config/v1.18.36)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: gang.liu <gang.liu@daocloud.io>

* little refactor

Signed-off-by: gang.liu <gang.liu@daocloud.io>

* Update docs/features/traffic-management/plugins.md

Co-authored-by: Wilson Wu <iwilsonwu@gmail.com>
Signed-off-by: gang.liu <gang.liu@daocloud.io>

---------

Signed-off-by: gang.liu <gang.liu@daocloud.io>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wilson Wu <iwilsonwu@gmail.com>
2023-08-23 11:49:18 -05:00
dependabot[bot] addf856ce9
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.33 to 1.18.36 (#2978)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.33 to 1.18.36.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.33...config/v1.18.36)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-22 08:54:35 -05:00
Bart Smykla 8fc9021778
fix(controller): typo fix ("Secrete" -> "Secret") in secret informer (#2965)
fix: typo fix ("Secrete" -> "Secret") in secret informer

Signed-off-by: Bart Smykla <bartek@smykla.com>
2023-08-22 01:03:25 -05:00
dependabot[bot] 7fb0a79214
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.27.2 to 1.27.6 (#2979)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.27.2 to 1.27.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.27.2...service/s3/v1.27.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-22 01:00:05 -05:00
dependabot[bot] fec76d6368
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.20.2 to 1.21.0 (#2950)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.20.2 to 1.21.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/s3/v1.21.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.20.2...service/s3/v1.21.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-10 20:54:47 -05:00
dependabot[bot] eca94d132e
chore(deps): bump github.com/antonmedv/expr from 1.12.7 to 1.13.0 (#2951)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.12.7 to 1.13.0.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.12.7...v1.13.0)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-10 20:45:24 -05:00
Andy Chen 91cf2b1f02
docs: update supported k8s version (#2949)
Resolves #2718

Signed-off-by: Andy Chen <amazingandyyy@gmail.com>
2023-08-10 23:51:58 +00:00
Gerald Nunn 0b81ca2b47
feat(analysis): Adds rollout Spec.Selector.MatchLabels to AnalysisRun. Fixes #2888 (#2903)
* Add rollout matchLabels to analysisrun

* Add rollout matchLabels to analysisrun

Signed-off-by: Gerald Nunn <gerald.b.nunn@gmail.com>

* Update label to use template labels instead of match labels

* use ro labels

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* use ro labels

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* back to selector

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Gerald Nunn <gerald.b.nunn@gmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-08-10 15:41:05 -05:00
dependabot[bot] f5088fe175
chore(deps): bump actions/setup-go from 4.0.1 to 4.1.0 (#2947)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4.0.1...v4.1.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-09 00:50:48 -05:00
Zach Aller 2684a5c43d
chore: bump gotestsum and fix flakey test causing nil channel send (#2934)
* chore: bump gotestsum

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Change order of defer prevent using closed channel

So deferes are called in a last-in-first-out order this means,
that we would close the channel before canceling the context which could
lead to a nil pointer usage. Let's just manually control order.

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change order to always be able to cleanup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* deregister callback to avoid sending on closed channel

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-08-09 00:50:08 -05:00
Zach Aller e1c61368b1
feat: enable self service notification support (#2930)
* self service rollouts

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update function name

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* continue sending other api's on error

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update go mod

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix tests

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* put self serve notifications behind a flag

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* put self serve notifications behind a flag

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove un-needed len check

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix up typo and cleanup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup wording

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-08-08 10:50:16 -05:00
dependabot[bot] fdb26d1d3f
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.32 to 1.18.33 (#2943)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.32 to 1.18.33.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.32...config/v1.18.33)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-08 10:59:30 +00:00
dependabot[bot] d20c7f5928
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.27.1 to 1.27.2 (#2944)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.27.1 to 1.27.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.27.1...service/s3/v1.27.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-08 10:16:46 +00:00
dependabot[bot] 5d5be4fb6e
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.20.1 to 1.20.2 (#2941)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.20.1 to 1.20.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/service/efs/v1.20.2/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.20.1...service/efs/v1.20.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-08 04:37:20 -05:00
AhmedGrati f0c569b3dc
feat: support prometheus headers (#2937)
* feat: support prometheus headers

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>

* test: add headers round tripper prometheus headers unit tests

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>

* docs: add headers in prometheus example

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>

---------

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>
2023-08-07 09:09:47 -05:00
dependabot[bot] d42fdf5edb
chore(deps): bump slsa-framework/slsa-github-generator from 1.7.0 to 1.8.0 (#2936)
chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-06 22:16:31 -05:00
dependabot[bot] 64ab374e41
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.14 to 1.20.1 (#2926)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.14 to 1.20.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sqs/v1.19.14...service/ecs/v1.20.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-06 09:11:01 -05:00
dependabot[bot] e200c7fde9
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.27.0 to 1.27.1 (#2927)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.27.0 to 1.27.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.27.0...service/s3/v1.27.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-04 18:02:13 -05:00
OpenGuidou c9bc3bc484
feat: Add insecure option for Prometheus. Fixes #2913 (#2914)
* feat: Add insecure option for Prometheus

Signed-off-by: Guillaume Doussin <guillaume.doussin@gmail.com>

* change grpc id

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Guillaume Doussin <guillaume.doussin@gmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-08-04 22:35:45 +00:00
Zach Aller e2467fe3c2
fix: add required ingress permission (#2933)
add required ingress permission

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-08-04 16:14:20 +00:00
dependabot[bot] 378e3d3497
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.31 to 1.18.32 (#2928)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.31 to 1.18.32.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.31...config/v1.18.32)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-04 07:50:52 -05:00
modesvops 9f4a5c925b
fix: cloudwatch metrics provider multiple dimensions (#2932)
update cloudwatch metrics provider

Signed-off-by: Modestas Kulpinskas <modestas.kulpinskas@kevin.eu>
Co-authored-by: Modestas Kulpinskas <modestas.kulpinskas@kevin.eu>
2023-08-04 07:50:30 -05:00
dependabot[bot] 0f7aca2e4c
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.26.3 to 1.27.0 (#2922)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.26.3 to 1.27.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.3...service/s3/v1.27.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-01 10:45:01 -05:00
dependabot[bot] 288e5d5ff3
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.30 to 1.18.31 (#2924)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.30 to 1.18.31.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.30...config/v1.18.31)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-01 08:29:34 -05:00
dependabot[bot] d27d28560a
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.29 to 1.18.30 (#2919)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.29 to 1.18.30.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.29...config/v1.18.30)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-31 18:51:19 +00:00
dependabot[bot] 7d8b08c8f0
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.19.0 to 1.19.1 (#2920)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.19.0 to 1.19.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.19.0...v1.19.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-31 12:32:45 -05:00
Zach Aller 4729910fdc
chore: quote golang version string to not use go 1.2.2 (#2915)
quote golang version string to not use go 1.2.2

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-07-28 19:34:19 -04:00
Zach Aller 44f94881d3
chore: bump golang to 1.20 (#2910)
* bump golang to 1.20

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* use .x because of https://github.com/actions/setup-go/issues/326

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* use .x because of https://github.com/actions/setup-go/issues/326

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change test to avoid loopclosure: loop variable test captured by func literal from go vet

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* ignore new govet rules for tests to pass

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change closures

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix go vet by removing concurency

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* one more

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* copy var instead of removing Parallel

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* copy var instead of removing Parallel

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-07-28 16:07:18 -05:00
dependabot[bot] 8bed760595
chore(deps): bump google.golang.org/grpc from 1.56.2 to 1.57.0 (#2908)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.56.2 to 1.57.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.56.2...v1.57.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-27 10:39:59 -05:00
dependabot[bot] 8d293d4171
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.28 to 1.18.29 (#2907)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.28 to 1.18.29.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.28...config/v1.18.29)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-26 09:18:15 -05:00
AhmedGrati d8dbb24526
feat: Add prometheus timeout (#2893)
* feat: add prometheus timeout attribute

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>

* add protobuf and crd of timeout attribute

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>

* docs: add timeout attribute in the prometheus docs

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>

* make private

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-07-25 12:40:31 -05:00
HYH-99 9365acaaf5
fix: rollout not modify the VirtualService whit setHeaderRoute step with workloadRef (#2797)
* remove generation whil setHeaderRoute and setMirrorRoute

Signed-off-by: huoyinghao <962917302@qq.com>

* switch to revision instead of generation to determin first install

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix godoc

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* increase test cov

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: huoyinghao <962917302@qq.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-07-24 10:53:56 -05:00
Kostis (Codefresh) 1e0ea4b5c1
docs: mirroring support in Traefik is not implemented yet (#2904)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2023-07-24 09:11:18 -05:00
dependabot[bot] 45e549d93e
chore(deps): bump github.com/antonmedv/expr from 1.12.6 to 1.12.7 (#2894)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.12.6 to 1.12.7.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.12.6...v1.12.7)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-20 11:15:16 -05:00
n888 20e00e4ae2
feat: Support Multiple ALB Ingresses (#2639)
* Support Multi ALB Ingress

Signed-off-by: n888 <drifto@gmail.com>

* Fix comments and alb_test ARNs

Signed-off-by: n888 <drifto@gmail.com>

* Fix e2e alb-canary-rollout: rm wildcard ingress path for alb controller

Signed-off-by: n888 <drifto@gmail.com>

* Add e2e TestALBCanaryUpdateMultiIngress

Signed-off-by: n888 <drifto@gmail.com>

* Add e2e TestALBCanaryUpdateMultiIngress

Signed-off-by: n888 <drifto@gmail.com>

* e2e alb-canary-rollout use ImplementationSpecific wildcard path

Signed-off-by: n888 <drifto@gmail.com>

* add e2e TestALBPingPongUpdateMultiIngress

Signed-off-by: n888 <drifto@gmail.com>

* add e2e TestALBExperimentStepMultiIngress, TestALBExperimentStepNoSetWeightMultiIngress

Signed-off-by: n888 <drifto@gmail.com>

* e2e alb headerroute: fix existing ing.class and simplify alb annotations

Signed-off-by: n888 <drifto@gmail.com>

* add e2e TestAlbHeaderRouteMultiIngress

Signed-off-by: n888 <drifto@gmail.com>

* fix lint alb_test.go

Signed-off-by: n888 <drifto@gmail.com>

* update codegen

Signed-off-by: n888 <drifto@gmail.com>

* TestAlbHeaderRouteMultiIngress use unique multi ingress resource names

Signed-off-by: n888 <drifto@gmail.com>

* Initial Status.ALBs support

Signed-off-by: n888 <drifto@gmail.com>

* clean up comments

Signed-off-by: n888 <drifto@gmail.com>

* codegen

Signed-off-by: n888 <drifto@gmail.com>

* only set ingress field for status.albs, and not status.alb

Signed-off-by: n888 <drifto@gmail.com>

* add status.alb.ingress, but keep as optional

Signed-off-by: n888 <drifto@gmail.com>

* improve determining whether to update status.albs or status.alb

Signed-off-by: n888 <drifto@gmail.com>

* codegen

Signed-off-by: n888 <drifto@gmail.com>

* codegen

Signed-off-by: n888 <drifto@gmail.com>

* update both ALB and ALBs status

Signed-off-by: Tung Huynh <tung75605@gmail.com>

* fix ALBs status does not update when number of ingresses changes

Signed-off-by: Tung Huynh <tung75605@gmail.com>

* update tests

Signed-off-by: Tung Huynh <tung75605@gmail.com>

* add a little docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: Tung Huynh <tung75605@gmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: Tung Huynh <tung75605@gmail.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-07-18 12:26:04 -05:00
Zach Aller 8db151fc95
feat: Send informer add k8s event (#2834)
* add event for reconcilation

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add sprig

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fmt

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix tests

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* move event to add informer event

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove bad code

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* handel bad ro objects

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add new event

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* typo

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* switch to built in eventf

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove sprig

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* refactor

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-07-17 15:44:02 +00:00
dependabot[bot] 8144fb8514
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.26.2 to 1.26.3 (#2884)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.26.2 to 1.26.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.2...service/s3/v1.26.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 15:22:58 +00:00
dependabot[bot] e94a380e2b
chore(deps): bump docker/setup-qemu-action from 2.1.0 to 2.2.0 (#2878)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](e81a89b173...2b82ce82d5)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 09:49:36 -05:00
dependabot[bot] d36835759b
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.27 to 1.18.28 (#2883)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.27 to 1.18.28.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.27...config/v1.18.28)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 14:15:55 +00:00
dependabot[bot] b2393089ac
chore(deps): bump slsa-framework/slsa-github-generator from 1.6.0 to 1.7.0 (#2880)
chore(deps): bump slsa-framework/slsa-github-generator

Bumps [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 08:45:27 -05:00
dependabot[bot] 810dffc872
chore(deps): bump actions/setup-go from 4.0.0 to 4.0.1 (#2881)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4...v4.0.1)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 08:44:21 -05:00
dependabot[bot] 00858e76e7
chore(deps): bump docker/setup-buildx-action from 2.5.0 to 2.9.1 (#2879)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.5.0 to 2.9.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](4b4e9c3e2d...4c0219f9ac)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 08:43:43 -05:00
dependabot[bot] 287b716850
chore(deps): bump docker/login-action from 2.1.0 to 2.2.0 (#2877)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](f4ef78c080...465a07811f)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 08:39:23 -05:00
dependabot[bot] 0082592077
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.13 to 1.19.14 (#2886)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.13 to 1.19.14.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.13...service/sqs/v1.19.14)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 08:38:01 -05:00
xinpure 3ddb9ef220
fix: get new httpRoutesI after removeRoute() to avoid duplicates. Fixes #2769 (#2887)
fix: get new httpRoutesI after removeRoute() to avoid duplicates

Signed-off-by: xinpureZhu <xinpure@sina.cn>
2023-07-14 08:37:04 -05:00
dependabot[bot] c8cd968569
chore(deps): bump github.com/antonmedv/expr from 1.12.5 to 1.12.6 (#2882)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.12.5 to 1.12.6.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.12.5...v1.12.6)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-13 15:11:38 -05:00
Justin Marquis 48e9aa31e4
ci: generate attestations during a release (#2785)
* ci: use keyless signing for main and release branches

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* fix typo

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* ci: generate attestations during a release

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* add release trigger script

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

---------

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-07-12 14:14:36 -05:00
mitchell amihod 3c5ac36864
fix(trafficrouting): apply stable selectors on canary service on rollout abort #2781 (#2818)
* Re-apply stable to simple canary service on abort when no traffic routing is used
fixes #2781

* remove redundant block of code

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* Add an e2e covering the fix.

Basically a copy/pasta of test that was checking for this when using traffic routing

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

---------

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2023-07-11 09:53:30 -05:00
dependabot[bot] f1de890c65
chore(deps): bump google.golang.org/grpc from 1.56.1 to 1.56.2 (#2872)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.56.1 to 1.56.2.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.56.1...v1.56.2)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-11 09:46:06 -05:00
Ben Kochie 65fbefe523
fix(controller): Remove name label from some k8s client metrics on events and replicasets (#2851)
BREAKING CHANGE The metric labels have changed on controller_clientset_k8s_request_total to not include the name of the resource for events and replicasets. These names have generated hashes in them and cause really high cardinality.

Remove name label from k8s some client metrics

The `name` label in the `controller_clientset_k8s_request_total` metric
produce an excessive amount of cardinality for `events` and `replicasets`.
This can lead to hundreds of thousands of unique metrics over a couple
weeks in a large deployment. Set the name to "N/A" for these client request
types.

Signed-off-by: SuperQ <superq@gmail.com>
2023-07-07 09:17:25 -05:00
mitchell amihod eb26809dd6
docs(example): Add example on how to execute subset of e2e tests (#2867)
Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2023-07-05 14:23:30 +00:00
dependabot[bot] bf6fb11d8a
chore(deps): bump sigstore/cosign-installer from 3.1.0 to 3.1.1 (#2860)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](d13028333d...6e04d228eb)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-28 08:00:32 -05:00
dependabot[bot] a25d377425
chore(deps): bump google.golang.org/protobuf from 1.30.0 to 1.31.0 (#2859)
Bumps google.golang.org/protobuf from 1.30.0 to 1.31.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-28 08:00:05 -05:00
dependabot[bot] 6fb244a0ca
chore(deps): bump sigstore/cosign-installer from 3.0.5 to 3.1.0 (#2858)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.5 to 3.1.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](dd6b2e2b61...d13028333d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-26 16:08:59 -05:00
dependabot[bot] cdf8d2bd66
chore(deps): bump google.golang.org/grpc from 1.55.0 to 1.56.1 (#2856)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.55.0 to 1.56.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.55.0...v1.56.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-23 11:58:02 -05:00
yyzxw bf2cc7dd94
chore: add make help cmd (#2854)
Signed-off-by: yyzxw <1020938856@qq.com>
2023-06-21 08:03:03 -05:00
dependabot[bot] 1d53b251e1
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.12 to 1.19.13 (#2847)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.12 to 1.19.13.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.12...service/efs/v1.19.13)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-20 15:13:04 -05:00
dependabot[bot] 8ee638e5d7
chore(deps): bump actions/setup-go from 3.5.0 to 4.0.1 (#2849)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.5.0 to 4.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v3.5.0...v4.0.1)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-20 15:12:32 -05:00
dependabot[bot] 51c867d652
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.26 to 1.18.27 (#2844)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.26 to 1.18.27.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.26...config/v1.18.27)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-17 22:19:10 -05:00
dependabot[bot] d0d498a89e
chore(deps): bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 (#2846)
chore(deps): bump github.com/prometheus/client_golang

Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.15.1 to 1.16.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.15.1...v1.16.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-16 07:52:32 -05:00
dependabot[bot] 78f5214ab7
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.26.1 to 1.26.2 (#2848)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.26.1 to 1.26.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.1...service/s3/v1.26.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-16 07:50:00 -05:00
dependabot[bot] 2cd6e04e9f
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.11 to 1.19.12 (#2839)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.11 to 1.19.12.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.11...service/efs/v1.19.12)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-15 12:22:09 -05:00
Zach Aller 4e28aebd6b
fix: resolve args to metric in garbage collection function (#2843)
* resolve args to metric in garbage collection function

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove incorrectly added test, this moved to a function

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* re-trigger

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add context to errors

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* better error message

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* better error message

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-06-15 16:21:37 +00:00
George Miroshnykov 9bd26c6b78
docs: fix minor mistakes in Migrating to Deployments (#2270)
Signed-off-by: George Miroshnykov <george.miroshnykov@gmail.com>
2023-06-15 09:36:23 -05:00
Zach Aller ded934bdaa
feat: add merge key to analysis template (#2842)
add merge key to analysis templates

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-06-14 17:11:40 +00:00
dependabot[bot] 194c656929
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.26.0 to 1.26.1 (#2840)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.26.0 to 1.26.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.26.0...service/s3/v1.26.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-14 09:25:36 -05:00
dependabot[bot] 9d98d14ae6
chore(deps): bump docker/build-push-action from 4.1.0 to 4.1.1 (#2837)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](44ea916f6c...2eb1c1961a)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-14 08:49:39 -05:00
dependabot[bot] e29713f498
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.25 to 1.18.26 (#2841)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.25 to 1.18.26.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.25...config/v1.18.26)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-14 08:47:45 -05:00
Kevin Lewin 30770a29ed
fix(analysis): Adding field in YAML to provide region for Sigv4 signing. (#2794)
* Add field for prometheus config

Signed-off-by: Kevin Lewin <lewinke@amazon.com>

* update doc

Signed-off-by: Kevin Lewin <lewinke@amazon.com>

* fixing newline

Signed-off-by: Kevin Lewin <lewinke@amazon.com>

* adding variable in doc

Signed-off-by: Kevin Lewin <lewinke@amazon.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* updating sigv4 struct

Signed-off-by: Kevin Lewin <lewinke@amazon.com>

* fixing sigv4 title

Signed-off-by: Kevin Lewin <lewinke@amazon.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* clean up bad codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* move to authentication field

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Kevin Lewin <lewinke@amazon.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-06-13 09:41:50 -05:00
Andre Marcelo-Tanner 3308401c35
docs: Update docs of Rollout spec to add active/previewMetadata (#2833)
Update docs for Rollout specification.md

Add blueGreen activeMetadata / previewMetadata as its part of the spec.

Signed-off-by: Andre Marcelo-Tanner <andre@ada.support>
2023-06-12 10:06:17 -05:00
dependabot[bot] 07e630547d
chore(deps): bump docker/build-push-action from 4.0.0 to 4.1.0 (#2832)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](3b5e8027fc...44ea916f6c)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 07:52:33 -05:00
Alex Eftimie b853c29b7b
docs: Update datadog.md - clarify formulas #2813 (#2819)
Update datadog.md - clarify formulas

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>
2023-06-06 09:20:29 -05:00
Kostis (Codefresh) 58af090f5a
docs: support for Kong ingress (#2820)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2023-06-06 09:19:37 -05:00
dependabot[bot] d50ce71989
chore(deps): bump github.com/sirupsen/logrus from 1.9.2 to 1.9.3 (#2821)
Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.9.2 to 1.9.3.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.9.2...v1.9.3)

---
updated-dependencies:
- dependency-name: github.com/sirupsen/logrus
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-06 09:17:48 -05:00
dependabot[bot] 065d9eb0d3
chore(deps): bump github.com/hashicorp/go-plugin from 1.4.9 to 1.4.10 (#2822)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.4.9 to 1.4.10.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.4.9...v1.4.10)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-06 09:17:26 -05:00
dependabot[bot] 0cbf6aee14
chore(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 (#2817)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.3 to 1.8.4.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.3...v1.8.4)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-01 01:51:56 -05:00
Joe Rice 906f9a92ea
docs: Fix AWS App Mesh getting started documentation to avoid connection pooling problems (#2814)
Signed-off-by: Joe Rice <joesbigidea@gmail.com>
2023-05-30 10:39:36 -05:00
pfyod 6cc4d2a643
feat: retain TLS configuration for canary ingresses in the nginx integration. Fixes #1134 (#2679)
* Retain TLS configuration for canary ingresses in the nginx integration

Signed-off-by: Pavels Fjodorovs <pavels.fjodorovs@hotelplan.com>

* Retain TLS configuration for canary ingresses in the nginx integration

Signed-off-by: Pavels Fjodorovs <pavels.fjodorovs@hotelplan.com>

* fixed tests after multiple nginx ingress merge

Signed-off-by: Pavels Fjodorovs <me@pfyod.com>

---------

Signed-off-by: Pavels Fjodorovs <pavels.fjodorovs@hotelplan.com>
Signed-off-by: Pavels Fjodorovs <me@pfyod.com>
2023-05-30 10:31:27 -05:00
github-actions[bot] c4b48f0f5c
docs: Update Changelog (#2807)
update changelog

Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-05-25 14:54:57 +00:00
Kyle Smith 9690329f4a
docs: use correct capitalization for "Datadog" in navigation sidebar (#2809)
See datadog/documentation#8028 for more context.

Signed-off-by: Kyle Smith <knksmith57@gmail.com>
2023-05-24 22:50:55 +00:00
Marshall Jones cf444ecfe1
docs: Fix typo in header routing specification docs (#2808)
* Fix typo in header routing specification

* Add VGS to USERS.md
2023-05-24 16:54:33 -05:00
Zach Aller e8d11176bb
fix: make new alb fullName field optional for backward compatability (#2806)
fix: make new field optional

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-05-24 18:20:21 +00:00
dependabot[bot] 8512642b59
chore(deps): bump github.com/sirupsen/logrus from 1.9.1 to 1.9.2 (#2789)
Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.9.1 to 1.9.2.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.9.1...v1.9.2)

---
updated-dependencies:
- dependency-name: github.com/sirupsen/logrus
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-24 10:02:32 -05:00
Kostis (Codefresh) c6a189a8af
docs: support for Google Cloud Load balancers (#2803)
* docs: support for Google Cloud Load balancers

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

* docs: minor fix

Co-authored-by: Dan Garfield <dan@codefresh.io>
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

---------

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
Co-authored-by: Dan Garfield <dan@codefresh.io>
2023-05-24 09:51:51 -05:00
Kostis (Codefresh) 2761629b31
docs: Show how plugins are loaded (#2801)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2023-05-23 21:36:20 +00:00
dependabot[bot] 6ac153326c
chore(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#2796)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.2 to 1.8.3.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.2...v1.8.3)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-21 20:30:00 -05:00
yyzxw f1ae505598
chore: add unit test (#2798)
Signed-off-by: yyzxw <1020938856@qq.com>
2023-05-21 20:29:32 -05:00
dependabot[bot] 2c9d032ba9
chore(deps): bump sigstore/cosign-installer from 3.0.3 to 3.0.5 (#2788)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.3 to 3.0.5.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](204a51a57a...dd6b2e2b61)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-21 08:07:23 -05:00
Zubair Haque 09f6267c32
chore: Add tests for pause functionality in rollout package (#2772)
Add tests for pause functionality in rollout package

Signed-off-by: zhaque44 <haque.zubair@gmail.com>
2023-05-21 08:06:37 -05:00
dependabot[bot] 05c3d90494
chore(deps): bump github.com/sirupsen/logrus from 1.9.0 to 1.9.1 (#2784)
Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.9.0 to 1.9.1.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.9.0...v1.9.1)

---
updated-dependencies:
- dependency-name: github.com/sirupsen/logrus
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-17 14:42:46 -05:00
Dan Garfield d2130743e4
docs: Add gateway API link, fix Contour plugin naming (#2787)
Add gateway API link, fix Contour plugin naming

Signed-off-by: Dan Garfield <dan@codefresh.io>
2023-05-17 14:42:22 -05:00
mitchell amihod c683ade0a2
docs: Add some details around running locally to make things clearer new contributors (#2786)
Add some details around running locally to make things clearer for people new to the project.

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2023-05-17 17:12:26 +00:00
Justin Marquis 5435982165
ci: use keyless signing for main and release branches (#2783)
* ci: use keyless signing for main and release branches

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* fix typo

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

---------

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
2023-05-17 12:01:31 -05:00
dependabot[bot] 497e69aa17
chore(deps): bump codecov/codecov-action from 3.1.3 to 3.1.4 (#2782)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.3...v3.1.4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-15 20:28:34 -05:00
Kevin Lewin 13b988edca
docs: Add docs for Amazon Managed Prometheus (#2777)
adding AMP doc

Signed-off-by: Kevin Lewin <lewinke@amazon.com>
2023-05-14 09:06:41 -05:00
Alex Eftimie fef9cdbb7a
fix: properly wrap Datadog API v2 request body (#2771) (#2775)
* Datadog: properly wrap request body

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Use milliseconds in v2 calls to datadog

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

---------

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>
2023-05-13 22:58:33 -05:00
dependabot[bot] 2e66cd45b2
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.24 to 1.18.25 (#2770)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.24 to 1.18.25.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.24...config/v1.18.25)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-10 09:26:41 -05:00
Dmitriy Mann 0b412b875a
fix(analysis): Graphite query - remove whitespaces (#2752)
* fix(analysis): Graphite query - remove whitespaces

Signed-off-by: mdsjip <2284562+mdsjip@users.noreply.github.com>

* refactor(analysis): Graphite query - proper naming and regexp usage

Signed-off-by: mdsjip <2284562+mdsjip@users.noreply.github.com>

---------

Signed-off-by: mdsjip <2284562+mdsjip@users.noreply.github.com>
2023-05-09 08:47:02 -05:00
dependabot[bot] 43aa1dd93a
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.23 to 1.18.24 (#2768)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.23 to 1.18.24.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.23...config/v1.18.24)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-09 08:45:22 -05:00
Paweł Bojanowski 39dbb4cf96
feat(metricprovider): allow user to define metrics.provider.job.metadata (#2762)
feat: add labels and annotations from metrics.provider.job.metadata to created Jobs metadata

Signed-off-by: Paweł Bojanowski <pbojanowski@protonmail.com>
2023-05-09 08:44:46 -05:00
dependabot[bot] a7852bae84
chore(deps): bump google.golang.org/grpc from 1.54.0 to 1.55.0 (#2763)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.54.0 to 1.55.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.54.0...v1.55.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-08 11:49:13 -05:00
github-actions[bot] a9fcd2d907
docs: Update Changelog (#2765)
update changelog

Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-05-08 11:48:14 -05:00
dependabot[bot] c74c464767
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.22 to 1.18.23 (#2756)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.22 to 1.18.23.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.22...config/v1.18.23)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-05 14:20:44 -05:00
Zach Aller 87f55e784f
chore: add zachaller as lead in owers file (#2759)
add myself as owner

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-05-05 11:42:44 -05:00
Eng Zer Jun deb4838885
chore(deps): replace `github.com/ghodss/yaml` with `sigs.k8s.io/yaml` (#2681)
At the time of making this commit, the package `github.com/ghodss/yaml`
is no longer actively maintained.

`sigs.k8s.io/yaml` is a permanent fork of `ghodss/yaml` and is actively
maintained by Kubernetes SIG.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-05-05 11:30:50 -05:00
dependabot[bot] 5910b3acf3
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.10 to 1.26.0 (#2755)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.10 to 1.26.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/polly/v1.25.10...service/s3/v1.26.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-05 11:09:04 -05:00
Dmitriy Mann 1f89c16082
fix(analysis): Graphite metric provider - index out of range [0] with length 0 (#2751)
fix(analysis): graphite metric provider - index out of range [0] with length 0

Signed-off-by: mdsjip <2284562+mdsjip@users.noreply.github.com>
2023-05-05 11:04:49 -05:00
dependabot[bot] 4e42def8f7
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.10 to 1.19.11 (#2757)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.10 to 1.19.11.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.10...service/efs/v1.19.11)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-05 10:11:00 -05:00
dependabot[bot] d2f7ad44e2
chore(deps): bump github.com/prometheus/client_golang from 1.15.0 to 1.15.1 (#2754)
chore(deps): bump github.com/prometheus/client_golang

Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.15.0 to 1.15.1.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.15.0...v1.15.1)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-05 10:10:38 -05:00
Zach Aller c8c947bc0e
fix: istio dropping fields during removing of managed routes (#2692)
* fix for dropping fields during removing routes

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add comment and rename

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add a light weight cast check

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* improve logic by adding type casting check

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-05-05 09:29:54 -05:00
Lukasz f72e565960
feat(controller): Add custom metadata support for AnalysisRun. Fixes #2740 (#2743)
Add custom metadata support for AnalysisRun

Signed-off-by: lukasz <lukasz.luszczynski@getyourguide.com>
2023-05-04 14:38:24 -05:00
dependabot[bot] 04b1e30d74
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.21 to 1.18.22 (#2746)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.21 to 1.18.22.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.21...config/v1.18.22)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-30 23:21:08 -05:00
Zach Aller cb4d6ff77a
fix(controller): Fix for rollouts getting stuck in loop (#2689)
* possible fix for sutck rollouts

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add comments

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add comments

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update comments

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-04-30 23:20:46 -05:00
dependabot[bot] 96f164f801
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.9 to 1.25.10 (#2745)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.9 to 1.25.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/polly/v1.25.9...service/cloudwatch/v1.25.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-28 12:24:36 -05:00
Zach Aller 0a9c6f1b2c
chore: bump k8s deps to v0.25.8 (#2712)
* bump to v0.24.12

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump to v0.26.3

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump to v0.25.8

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add new interface functions

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix wrong dep inclusion

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-04-28 12:23:42 -05:00
Zach Aller ba11d16a73
fix: change logic of analysis run to better handle errors (#2695)
* change logic of analysis run to better haneld errors

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change logic to not call GetMetaData if not nil like the old behavior

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* move code closer to usage

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change logic to not always call GetMetadata keeps original behavior

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix logic

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-04-28 11:46:48 -04:00
Zach Aller cc78ac5487
docs: copy argo cd docs drop down fix (#2731)
copy argo rollouts drop down fix for docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-04-28 10:46:35 -04:00
Wilson Wu 2355e8b30a
docs: Add contour trafficrouter plugin (#2729)
Add contour trafficrouter plugin

Signed-off-by: Wilson Wu <iwilsonwu@gmail.com>
2023-04-27 12:40:36 -05:00
dependabot[bot] 4273813f14
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.9 to 1.19.10 (#2747)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.9 to 1.19.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.9...service/efs/v1.19.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-27 09:31:13 -05:00
dependabot[bot] 3c9c29178b
chore(deps): bump codecov/codecov-action from 3.1.2 to 3.1.3 (#2735)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.2...v3.1.3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-22 00:09:28 +02:00
Remington Breeze 142a03a01c
feat(dashboard): Refresh Rollouts dashboard UI (#2723)
* feat: Refresh Rollouts dashboard

Signed-off-by: Remington Breeze <remington@breeze.software>

* rearrange individual rollout view

Signed-off-by: Remington Breeze <remington@breeze.software>

* fix letter L bug

Signed-off-by: Remington Breeze <remington@breeze.software>

* fix single namespace display

Signed-off-by: Remington Breeze <remington@breeze.software>

* bug fixes

Signed-off-by: Remington Breeze <remington@breeze.software>

* remove all dependencies on argo-ui/v2

Signed-off-by: Remington Breeze <remington@breeze.software>

* feat: Refresh Rollouts dashboard

Signed-off-by: Remington Breeze <remington@breeze.software>

* rearrange individual rollout view

Signed-off-by: Remington Breeze <remington@breeze.software>

* fix letter L bug

Signed-off-by: Remington Breeze <remington@breeze.software>

* fix single namespace display

Signed-off-by: Remington Breeze <remington@breeze.software>

* bug fixes

Signed-off-by: Remington Breeze <remington@breeze.software>

* remove all dependencies on argo-ui/v2

Signed-off-by: Remington Breeze <remington@breeze.software>

* fix: make logo image path relative

Signed-off-by: Remington Breeze <remington@breeze.software>

---------

Signed-off-by: Remington Breeze <remington@breeze.software>
2023-04-22 00:07:13 +02:00
Wilson Wu ddce67165b
chore: Update test and related docs for plugin name standard (#2728)
* Update test and related docs for plugin name standard

Signed-off-by: Wilson Wu <iwilsonwu@gmail.com>

* Add DaoCloud into USERS

Signed-off-by: Wilson Wu <iwilsonwu@gmail.com>

* fix ordering and one missing import

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix ordering and one missing import

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: Wilson Wu <iwilsonwu@gmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-04-20 02:31:12 +02:00
dependabot[bot] e7e45f7dff
chore(deps): bump github.com/prometheus/client_golang from 1.14.0 to 1.15.0 (#2721)
chore(deps): bump github.com/prometheus/client_golang

Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.14.0 to 1.15.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.14.0...v1.15.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-15 00:43:01 -05:00
mitchell amihod c250c7e8ea
refactor: change plugin naming pattern #2720 (#2722)
Update docs to reflect new plugin naming pattern

* update contributor plugin guide
* update analysis/plugin overview
* update trafic-management/plugin overview
* automatic linting changes - whitespace, new line at end of file

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

#2720
2023-04-15 00:42:12 -05:00
Zach Aller 4cecf3484d
docs: fix link to plugins for traffic routers (#2719)
fix docs link

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-04-14 13:47:03 -04:00
mitchell amihod b9fbc9b203
docs(analysis): fix use stringData in the examples (#2715)
Use stringData in the examples

resolves #2714

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2023-04-13 08:48:53 -05:00
dependabot[bot] 8ecb09316b
chore(deps): bump codecov/codecov-action from 3.1.1 to 3.1.2 (#2711)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.1...v3.1.2)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-12 08:59:29 -05:00
Clayton Walker 689182f730
fix(controller): Add klog logrus bridge. Fixes #2707. (#2701)
* Add klog logrus bridge

Signed-off-by: Clayton Walker <clayton.m.walker@gmail.com>

* Pull klog bridge out to log util

Signed-off-by: Clayton Walker <clayton.m.walker@gmail.com>

* Upgrade logrusr to v4

Signed-off-by: Clayton Walker <clayton.m.walker@gmail.com>

* Simplify logging

Signed-off-by: Clayton Walker <clayton.m.walker@gmail.com>

---------

Signed-off-by: Clayton Walker <clayton.m.walker@gmail.com>
2023-04-11 17:07:27 -05:00
dependabot[bot] 720116eead
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.20 to 1.18.21 (#2709)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.20 to 1.18.21.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.20...config/v1.18.21)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-11 08:43:43 -05:00
dependabot[bot] b9db49012a
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.8 to 1.19.9 (#2708)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.8 to 1.19.9.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.8...service/efs/v1.19.9)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-11 08:43:11 -05:00
dependabot[bot] 950fb56d2d
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.8 to 1.25.9 (#2710)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.8 to 1.25.9.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/polly/v1.25.8...service/cloudwatch/v1.25.9)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 21:07:10 -05:00
dependabot[bot] 17cd3ad46f
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.19 to 1.18.20 (#2705)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.19 to 1.18.20.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.19...config/v1.18.20)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 07:36:40 -05:00
dependabot[bot] f1f1086e3c
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.7 to 1.19.8 (#2704)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.7 to 1.19.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.7...service/efs/v1.19.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-09 23:40:39 -05:00
dependabot[bot] 7b7b8648a2
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.17.7 to 1.17.8 (#2703)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.17.7 to 1.17.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.17.7...v1.17.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-09 20:42:25 -05:00
dependabot[bot] b8b3a072cd
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.7 to 1.25.8 (#2702)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.7 to 1.25.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/polly/v1.25.7...service/cloudwatch/v1.25.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-09 20:41:56 -05:00
dependabot[bot] ab85dac892
chore(deps): bump peter-evans/create-pull-request from 4 to 5 (#2697)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v4...v5)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-05 13:57:52 -05:00
dependabot[bot] 8069950fa5
chore(deps): bump github.com/spf13/cobra from 1.6.1 to 1.7.0 (#2698)
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.6.1...v1.7.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-05 13:56:53 -05:00
Daniel Helfand f9a39149b3
docs: update contributions.md to include k3d as recommended cluster, add details on e2e test setup, and update kubectl install link. Fixes #1750 (#1867)
* docs: add k3d as recommended cluster

Signed-off-by: Daniel Helfand <helfand.4@gmail.com>

* docs: add details on setting up cluster for e2e tests

Signed-off-by: Daniel Helfand <helfand.4@gmail.com>

* docs: update kubectl install docs

Signed-off-by: Daniel Helfand <helfand.4@gmail.com>

---------

Signed-off-by: Daniel Helfand <helfand.4@gmail.com>
2023-04-04 08:54:29 -05:00
mitchell amihod 3a21038678
docs(example): interval requires count (#2690)
* doc(examples): interval requires count

doc(examples): moved other count up next to interval for visibility

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

* fix: noticed typo in bug_report template while making bug report

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>

---------

Signed-off-by: mitchell amihod <4623+meeech@users.noreply.github.com>
2023-04-03 09:03:34 -05:00
dependabot[bot] b84e039115
chore(deps): bump github.com/influxdata/influxdb-client-go/v2 from 2.12.2 to 2.12.3 (#2684)
chore(deps): bump github.com/influxdata/influxdb-client-go/v2

Bumps [github.com/influxdata/influxdb-client-go/v2](https://github.com/influxdata/influxdb-client-go) from 2.12.2 to 2.12.3.
- [Release notes](https://github.com/influxdata/influxdb-client-go/releases)
- [Changelog](https://github.com/influxdata/influxdb-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/influxdata/influxdb-client-go/compare/v2.12.2...v2.12.3)

---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-29 20:49:03 -05:00
github-actions[bot] af439ae3af
docs: Update Changelog (#2683)
update changelog

Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-03-28 09:42:12 -05:00
dependabot[bot] a63e3b8010
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.6 to 1.25.7 (#2682)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.6 to 1.25.7.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/rds/v1.25.6...service/cloudwatch/v1.25.7)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 14:29:11 -05:00
dependabot[bot] b13387919b
chore(deps): bump actions/stale from 7 to 8 (#2677)
Bumps [actions/stale](https://github.com/actions/stale) from 7 to 8.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-24 18:31:42 -05:00
林靖 8aaae5a5af
feat: Apache APISIX SetHeader support. Fixes #2668 (#2678)
* feat/apisixSetHeader

Signed-off-by: shareinto <56471924jing@gmail.com>

* chore: code coverage

Signed-off-by: shareinto <56471924jing@gmail.com>

* fix: apisix setweight check back

Signed-off-by: shareinto <56471924jing@gmail.com>

* chore: update readme

Signed-off-by: shareinto <56471924jing@gmail.com>

* fix: typo  processSetWeightRoutes

Signed-off-by: shareinto <56471924jing@gmail.com>

---------

Signed-off-by: shareinto <56471924jing@gmail.com>
2023-03-24 18:30:28 -05:00
Travis Perdue 630212f273
feat: support N nginx ingresses (#2467)
* add additionalStableIngresses datatype

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add validation for additionalStableIngresses

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add rollout controller logic for additionalStableIngresses

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add nginx ingress logic for setting weight & fetching names for additionalStableIngresses

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add nginx testing for additionalStableIngresses

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add ingress & controller tests for additionalStableIngresses

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* remove validation_references_test.go snafu

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add ingress util testing for additionalStableIngresses

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* update test pattern

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* go fmt

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* make codegen

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* improve testing, and fix validation error reporting for when there is more than 1 Nginix Ingress Controller

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* fix bug

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* update logging

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add validation for additionalStableIngresses

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add nginx testing for additionalStableIngresses

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* add ingress & controller tests for additionalStableIngresses

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* make codegen

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* fix rebase issues

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* deduplicate tests

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* DRY up nginx_text.go

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* DRY more code

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* dry up code

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* address sonarcloud code smells & duplicate code

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* change additionalStableIngresses to stableIngresses

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* update validation

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* reason only about stableIngress or StableIngresses, not both

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* update rollout controller tests

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* update validation_references tests

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* fix nginx bug & tests

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* fix ingress_test

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* update specs

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* update nginx md

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* make file/test specific variables private

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* make codegen

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

---------

Signed-off-by: Travis Perdue <perduetravis@gmail.com>
Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>
2023-03-24 11:56:57 -05:00
Kevin Lewin 874c1889e5
fix(analysis): Nil Pointer Fixes #2458 (#2680)
fixing nil pointer

Signed-off-by: Kevin Lewin <lewinke@amazon.com>
2023-03-24 09:31:06 -05:00
Daniel Del Rio aa47e414ab
feat: Add Service field to Rollout Experiment to allow service creation (#2633)
* Add Service field to Rollout Experiment to allow service creation

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Change template names

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Add test for service without name

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Remove Service field in trafficrouting_test

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Add e2e test for experiment with service name

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Update specifications and documentation about setting Service in experiments

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Pass Service name instead of replicaset name to CreateService func in Experiment

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Modify unit/e2e tests for service name

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Change app name in experiment e2e test

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Add to error messages

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Fix unit test for service creation

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Change service.Name call in createService

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

---------

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>
2023-03-23 11:06:52 -05:00
dependabot[bot] 558f2f1a6d
chore(deps): bump actions/setup-go from 3 to 4 (#2663)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-22 21:03:12 -05:00
dependabot[bot] a1d9a44fdb
chore(deps): bump google.golang.org/grpc from 1.53.0 to 1.54.0 (#2674)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.53.0 to 1.54.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.53.0...v1.54.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-22 21:02:49 -05:00
dependabot[bot] 93d1abbc17
chore(deps): bump github.com/antonmedv/expr from 1.12.3 to 1.12.5 (#2670)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.12.3 to 1.12.5.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.12.3...v1.12.5)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-22 11:44:55 -05:00
dependabot[bot] 37c33b8206
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.5 to 1.25.6 (#2671)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.5 to 1.25.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/iot/v1.25.5...service/rds/v1.25.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-22 10:40:35 -05:00
dependabot[bot] 02749d30f7
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.17 to 1.18.19 (#2673)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.17 to 1.18.19.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.17...config/v1.18.19)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-22 09:59:40 -05:00
dependabot[bot] c3970faca9
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.6 to 1.19.7 (#2672)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.6 to 1.19.7.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.6...service/efs/v1.19.7)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-22 08:49:19 -05:00
dependabot[bot] c6f617b5c0
chore(deps): bump google.golang.org/protobuf from 1.29.1 to 1.30.0 (#2665)
Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.29.1 to 1.30.0.
- [Release notes](https://github.com/protocolbuffers/protobuf-go/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash)
- [Commits](https://github.com/protocolbuffers/protobuf-go/compare/v1.29.1...v1.30.0)

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-22 08:48:06 -05:00
dependabot[bot] 0fd908f567
chore(deps): bump google.golang.org/protobuf from 1.29.0 to 1.29.1 (#2660)
Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.29.0 to 1.29.1.
- [Release notes](https://github.com/protocolbuffers/protobuf-go/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash)
- [Commits](https://github.com/protocolbuffers/protobuf-go/compare/v1.29.0...v1.29.1)

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-15 05:58:01 -05:00
dependabot[bot] 52f754d4e1
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.16 to 1.18.17 (#2659)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.16 to 1.18.17.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.16...config/v1.18.17)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-15 05:56:58 -05:00
dependabot[bot] 8220cedfeb
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.15 to 1.18.16 (#2652)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.15 to 1.18.16.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.15...config/v1.18.16)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 14:18:03 -05:00
Dmitriy Mann e32eaaf0a8
feat: Provide time.Parse and time.Now while evaluating notification trigger condition (#2206)
* feat: Provide time.Parse and time.Now while evaluating trigger condition

Similar to argocd:
- https://github.com/argoproj-labs/argocd-notifications/pull/22/files#diff-5b3e361e78e62137bc7f887d765e7c4bfbb85e01685b6640c41d74118d3e2f7dR11-R28
- https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/triggers/#functions

Signed-off-by: mdsjip <2284562+mdsjip@users.noreply.github.com>

* feat: Provide time.Parse and time.Now while evaluating trigger condition

Similar to argocd:
- https://github.com/argoproj-labs/argocd-notifications/pull/22/files#diff-5b3e361e78e62137bc7f887d765e7c4bfbb85e01685b6640c41d74118d3e2f7dR11-R28
- https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/triggers/#functions

Signed-off-by: mdsjip <2284562+mdsjip@users.noreply.github.com>

* add test for time function

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add parse fail test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: mdsjip <2284562+mdsjip@users.noreply.github.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-03-13 14:17:37 -05:00
Zach Aller b1a1e15536
chore: update e2e k8s versions (#2637)
* run on new k8s versions

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* debug_enabled is a string

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-03-13 14:16:46 -05:00
Zach Aller b18a70063d
chore: bump deps for prisma (#2643)
bump deps

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-03-13 14:00:44 -05:00
dependabot[bot] 5359badbac
chore(deps): bump github.com/antonmedv/expr from 1.12.2 to 1.12.3 (#2653)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.12.2 to 1.12.3.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.12.2...v1.12.3)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 10:11:48 -05:00
dependabot[bot] c58a272bbf
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.5 to 1.19.6 (#2654)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.5 to 1.19.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.5...service/efs/v1.19.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 10:11:24 -05:00
dependabot[bot] fa77bda513
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.4 to 1.25.5 (#2655)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.4 to 1.25.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.25.4...service/iot/v1.25.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 08:35:37 -05:00
dependabot[bot] 5fef78a8e4
chore(deps): bump github.com/antonmedv/expr from 1.12.1 to 1.12.2 (#2649)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.12.1 to 1.12.2.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.12.1...v1.12.2)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-10 01:33:21 -06:00
dependabot[bot] 5769b4b0be
chore(deps): bump google.golang.org/protobuf from 1.28.1 to 1.29.0 (#2646)
Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.28.1 to 1.29.0.
- [Release notes](https://github.com/protocolbuffers/protobuf-go/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash)
- [Commits](https://github.com/protocolbuffers/protobuf-go/compare/v1.28.1...v1.29.0)

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-09 09:10:28 -06:00
dependabot[bot] ea38d65825
chore(deps): bump github.com/golang/protobuf from 1.5.2 to 1.5.3 (#2645)
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.5.2 to 1.5.3.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.5.2...v1.5.3)

---
updated-dependencies:
- dependency-name: github.com/golang/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-09 09:09:56 -06:00
dependabot[bot] d8bd57eaae
chore(deps): bump github.com/prometheus/common from 0.41.0 to 0.42.0 (#2644)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.41.0 to 0.42.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.41.0...v0.42.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-09 09:09:23 -06:00
jannfis 8d87e4ab82
docs: Mention Internet Bug Bounty in the security policy (#2642)
Signed-off-by: jannfis <jann@mistrust.net>
2023-03-07 08:25:16 -06:00
dependabot[bot] 531897732c
chore(deps): bump minimist from 1.2.5 to 1.2.8 in /ui (#2638)
Bumps [minimist](https://github.com/minimistjs/minimist) from 1.2.5 to 1.2.8.
- [Release notes](https://github.com/minimistjs/minimist/releases)
- [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/minimistjs/minimist/compare/v1.2.5...v1.2.8)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-03 10:57:22 -06:00
dependabot[bot] d8c38aa9e7
chore(deps): bump github.com/hashicorp/go-plugin from 1.4.8 to 1.4.9 (#2636)
Bumps [github.com/hashicorp/go-plugin](https://github.com/hashicorp/go-plugin) from 1.4.8 to 1.4.9.
- [Release notes](https://github.com/hashicorp/go-plugin/releases)
- [Changelog](https://github.com/hashicorp/go-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/go-plugin/compare/v1.4.8...v1.4.9)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-03 09:31:27 -06:00
Daniel Del Rio 182069ee6f
feat: Allow switching between Datadog v1 and v2. Fixes #2549 (#2592)
* Update Datadog queries to use V2 instead of V1

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Update Datadog unit tests to use V2

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Add ApiVersion field to Datadog integration to allow toggling versions

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Update codegen files

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Add apiVersion to openapi generated

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Add back correct generated files

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Add test for default ApiVersion value

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Check for error in parsing new URL with apiVersion

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Check for error in parsing JSON request

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

---------

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>
2023-03-03 09:30:05 -06:00
dependabot[bot] 96a1b67b80
chore(deps): bump github.com/prometheus/common from 0.40.0 to 0.41.0 (#2634)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.40.0 to 0.41.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.40.0...v0.41.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-02 13:37:24 -06:00
Zach Aller b787cc536d
feat: add support for traffic router plugins (#2573)
* feat: add support for traffic router plugins

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* finish up refactor

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* rename config field

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* refactor tests

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add godocs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add docs on creating plugins

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* rename config fields

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Change New function to Init for tr

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Change New function to Init for metrics

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* docs update

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* docs update

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change repo name

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* small docs changes

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix bad merge comments

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove metric passing from metrics plugin on Init method

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix mutex

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* wrap errors

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* rename

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* docs change

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* some updates to docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change plugin to plugins for tr

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change plugin to plugins for tr

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* refactor naming for metric plugins

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change handshake

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* more renames

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change handshake

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add err context

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* small docs change

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* docs update from pr review

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* updates from review

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change config map format

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add context to error

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add context to error

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add context to errors ans well as wrap the *bool returned by verifiy weight

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update docs for new interface type

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change error wraping for init

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-03-02 13:25:40 -06:00
jxlwqq 535f244219
chore: add Tuhu to users (#2630) 2023-02-28 09:22:28 -06:00
Zach Aller 457272f98c
chore: switch to distroless for cli/dashboard image (#2596)
update cli base image

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-27 19:25:29 -06:00
Zach Aller 81b015d15c
fix: switch service selector back to stable on canary service when aborted (#2540)
* wip

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* work with both dynamic stable scale on and off

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add e2e tests

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup comments

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup if logic

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-27 19:24:14 -06:00
Zach Aller 01f4494a50
fix: change log generator to only add CHANGELOG.md (#2626)
fix changlog geneation

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-27 14:20:56 -06:00
dependabot[bot] cbaffccf6a
chore(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#2627)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.1...v1.8.2)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-26 21:20:37 -06:00
Danil Smirnov cef5f063f9
feat(controller): Adding status.alb.canaryTargetGroup.fullName for ALB. Fixes #2589 (#2604)
* Adding status.alb.canaryTargetGroup.fullName for ALB

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* Fixes

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* Formatting fix

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* Fixes

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* Fixes

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* Fixes

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* Formatting fix

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* run make codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* run make codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* ALB tests fix

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* ALB tests fix

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* Fixes

Signed-off-by: Danil Smirnov <danil@smirnov.la>

* Adding unit test

Signed-off-by: Danil Smirnov <danil@smirnov.la>

---------

Signed-off-by: Danil Smirnov <danil@smirnov.la>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-02-25 14:59:24 -06:00
github-actions[bot] e912c71921
docs: Update Changelog (#2625)
update changelog

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-02-25 14:38:46 -06:00
Daniel Del Rio 6e623bcb41
fix: Rollback change on service creation with weightless experiments (#2624)
BREAKING CHANGE There was an unintentional change in behavior related to service creation with experiments introduced in v1.4.0 this has been reverted in v1.4.1 back to the original behavior. In v1.4.0 services where always created with for inline experiments even if there was no weight set. In 1.4.1 we go back to the original behavior of requiring weight to be set in order to create a service.
2023-02-24 10:40:03 -06:00
dependabot[bot] 50c3b889eb
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.14 to 1.18.15 (#2618)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.14 to 1.18.15.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.14...config/v1.18.15)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-23 16:09:27 -06:00
dependabot[bot] 39dddde293
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.3 to 1.25.4 (#2617)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.3 to 1.25.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.25.3...service/fsx/v1.25.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-23 14:45:12 -06:00
dependabot[bot] ebec529d20
chore(deps): bump github.com/antonmedv/expr from 1.12.0 to 1.12.1 (#2619)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.12.0...v1.12.1)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-23 14:13:40 -06:00
Zach Aller 4b5d663470
fix: flakey TestWriteBackToInformer test (#2621)
* fix: flakey TestWriteBackToInformer test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change docs to better explain issue

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* use built in ToUnstructured function

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* no need to put into Unstructured type

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove commented code and update comments

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-23 14:13:00 -06:00
dependabot[bot] 14a2321db7
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.4 to 1.19.5 (#2616)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.4 to 1.19.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.4...service/efs/v1.19.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 23:10:49 -06:00
dependabot[bot] 065d1307f3
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.19.3 to 1.19.4 (#2612)
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2

Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/efs/v1.19.3...service/efs/v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-21 07:49:44 -06:00
dependabot[bot] 59ea2919d9
chore(deps): bump github.com/prometheus/common from 0.39.0 to 0.40.0 (#2611)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.39.0 to 0.40.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.39.0...v0.40.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-21 01:02:03 -06:00
dependabot[bot] 526881696a
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.18.13 to 1.18.14 (#2614)
chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.13 to 1.18.14.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.13...config/v1.18.14)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-21 00:59:14 -06:00
dependabot[bot] 4237527139
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.2 to 1.25.3 (#2615)
* chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch

Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.2 to 1.25.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.25.2...service/fsx/v1.25.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update go.mod

* go mod tidy

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Aller <zachaller@users.noreply.github.com>
2023-02-21 00:34:26 -06:00
Zach Aller b273f8617d
chore: bump node version and set openssl-legacy-provider (#2606)
* bump node version

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add legacy flag as a workaround

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-20 13:35:15 -06:00
fsl e79d1cae36
chore: update package dependencie (#2602)
Signed-off-by: fengshunli <1171313930@qq.com>
2023-02-17 13:14:22 -06:00
dependabot[bot] b2d906c46c
chore(deps): bump imjasonh/setup-crane from 0.2 to 0.3 (#2600)
Bumps [imjasonh/setup-crane](https://github.com/imjasonh/setup-crane) from 0.2 to 0.3.
- [Release notes](https://github.com/imjasonh/setup-crane/releases)
- [Commits](https://github.com/imjasonh/setup-crane/compare/v0.2...v0.3)

---
updated-dependencies:
- dependency-name: imjasonh/setup-crane
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-16 22:07:06 -06:00
kezhenxu94 75723b2c6e
feat(analysis): add Apache SkyWalking as metrics provider
Signed-off-by: kezhenxu94 <kezhenxu94@apache.org>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-02-16 17:03:19 -06:00
Zach Aller 4afac4ea73
chore: fix typo for json tag on rollbackWindow (#2598)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-16 16:10:22 -06:00
Zach Aller 33543d5669
remove auto dependabot merge and fix docs deps (#2597)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-16 13:00:49 -06:00
fsl 5241848034
fix: remove outdated ioutil package dependencies (#2583)
Signed-off-by: fengshunli <1171313930@qq.com>
2023-02-16 11:48:02 -06:00
dependabot[bot] 9f28159885
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2593)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.12 to 1.18.13.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.12...config/v1.18.13)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-16 00:58:48 +00:00
Navya Vandanapu d7df8b3557
Add Credit Karma as Argo Rollouts user (#2582) 2023-02-10 13:31:50 -06:00
Daniel Del Rio 0450778c00
feat: Add name attribute to ServicePort (#2572)
* Add name attribute to ServicePort

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Format with gofmt

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Update experiment test by adding port name

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Include port name only when given

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Implement separate e2e tests for single unnamed port and two named ports

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Remove port name in experiment_test.go

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

* Replace Sleep in new multiport service experiment

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>

---------

Signed-off-by: Daniel Del Rio <daniel.delrio@getyourguide.com>
2023-02-09 09:04:03 -06:00
Chatchai Luangmanee 24c9621450
fix: update GetTargetGroupMetadata to call DescribeTags in batches (#2570)
* update GetTargetGroupMetadata to call DescribeTags in batches

related to: https://github.com/argoproj/argo-rollouts/issues/2569

Signed-off-by: Chatchai Luangmanee <93616024+chatchai-outreach@users.noreply.github.com>

* Update defaults.go

format

Signed-off-by: Chatchai Luangmanee <93616024+chatchai-outreach@users.noreply.github.com>

---------

Signed-off-by: Chatchai Luangmanee <93616024+chatchai-outreach@users.noreply.github.com>
2023-02-08 13:17:06 -06:00
schakrad 6fccbe6bcc
fix: analysis information box #2530 (#2575)
* fix: add workaround to fix 'stream terminated by RST_STREAM with error code: PROTOCOL_ERROR'

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

* Analysis info tooltip overlapping over step content

Signed-off-by: schakradari <saisindhu_chakradari@intuit.com>

---------

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
Signed-off-by: schakradari <saisindhu_chakradari@intuit.com>
Co-authored-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-02-08 12:06:30 -06:00
Zach Aller a58064a0c6
chore: improve e2e test timing (#2577)
* chore: do not sleep in e2e tests

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* undo changes by dependabot for notification engine

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

---------

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-08 09:54:29 -06:00
dependabot[bot] 7fd92f5cf2
chore(deps): bump google.golang.org/grpc from 1.52.3 to 1.53.0 (#2574)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.3 to 1.53.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.52.3...v1.53.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-08 00:02:01 +00:00
Zach Aller 5c9bc03a1b
feat: metric plugin system based on hashicorp go-plugin (#2514)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-02-07 16:02:20 -06:00
dependabot[bot] 93add01be0
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2565)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.2 to 1.19.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.19.2...service/efs/v1.19.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 02:19:12 +00:00
dependabot[bot] 9055a05e62
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2564)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.11 to 1.18.12.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.11...config/v1.18.12)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 01:45:23 +00:00
dependabot[bot] 079a396e69
chore(deps): bump github.com/antonmedv/expr from 1.11.0 to 1.12.0 (#2567)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 00:16:30 +00:00
dependabot[bot] 0496ca3d37
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.17.3 to 1.17.4 (#2566)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.17.3 to 1.17.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.17.3...v1.17.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 00:16:07 +00:00
dependabot[bot] 1ced2d106d
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2563)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.1 to 1.25.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.25.1...service/fsx/v1.25.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 00:09:21 +00:00
Jiacheng Xu 9c0785f548
docs: fix missing links for getting started documentation (#2557)
Signed-off-by: Jiacheng Xu <xjcmaxwellcjx@gmail.com>
2023-02-02 22:00:38 -06:00
dependabot[bot] 6f350ee3c5
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2559)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.1 to 1.19.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.19.1...service/ecs/v1.19.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-03 00:02:49 +00:00
dependabot[bot] 0fec431b5d
chore(deps): bump github.com/antonmedv/expr from 1.9.0 to 1.11.0 (#2558)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.9.0 to 1.11.0.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.9.0...v1.11.0)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-03 00:01:47 +00:00
Clayton Walker b566e678cd
docs: fix spelling in example notification templates (#2554)
Signed-off-by: Clayton Walker <clayton.m.walker@gmail.com>
2023-02-02 10:52:51 -06:00
dependabot[bot] 5479229ff1
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2555)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.10 to 1.18.11.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.10...config/v1.18.11)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-02 00:02:38 +00:00
dependabot[bot] c4129f4d2e
chore(deps): bump docker/build-push-action from 3.3.0 to 4.0.0 (#2550)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.3.0 to 4.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](37abcedcc1...3b5e8027fc)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-31 00:01:44 +00:00
William Van Hevelingen b60f69d791
docs: Add best practice for reducing memory usage (#2545)
Signed-off-by: William Van Hevelingen <william.vanhevelingen@acquia.com>
2023-01-27 08:38:04 -06:00
dependabot[bot] 70e42f3654
chore(deps): bump github.com/influxdata/influxdb-client-go/v2 (#2544)
Bumps [github.com/influxdata/influxdb-client-go/v2](https://github.com/influxdata/influxdb-client-go) from 2.12.1 to 2.12.2.
- [Release notes](https://github.com/influxdata/influxdb-client-go/releases)
- [Changelog](https://github.com/influxdata/influxdb-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/influxdata/influxdb-client-go/compare/v2.12.1...v2.12.2)

---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-27 00:02:30 +00:00
Zach Aller 373c4a0b78
docs: commit generated docs for readthedocs.org (#2535)
* fix: commit generated docs for readthedocs.org

If we do not commit the docs all the autogenerated docs do not show
or work on argo-rollouts.readthedocs.org this also brings the pattern
in line with and is probably why argocd does the same.

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove already included in make codegen cmds

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* static default value for doc generation

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* typo

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-01-26 08:53:47 -06:00
dependabot[bot] c97fcc98c8
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2542)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.9 to 1.18.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.9...config/v1.18.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-26 00:09:56 +00:00
dependabot[bot] f728414604
chore(deps): bump google.golang.org/grpc from 1.52.1 to 1.52.3 (#2541)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.1 to 1.52.3.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.52.1...v1.52.3)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-26 00:05:54 +00:00
dependabot[bot] 2a7cae3aea
chore(deps): bump google.golang.org/grpc from 1.52.0 to 1.52.1 (#2538)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.52.0 to 1.52.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.52.0...v1.52.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-25 00:02:07 +00:00
dependabot[bot] 2c33de2ace
chore(deps): bump dependabot/fetch-metadata from 1.3.5 to 1.3.6 (#2537)
Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.3.5 to 1.3.6.
- [Release notes](https://github.com/dependabot/fetch-metadata/releases)
- [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.3.5...v1.3.6)

---
updated-dependencies:
- dependency-name: dependabot/fetch-metadata
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-25 00:01:08 +00:00
Kevin Lewin 07694efa5f
feat: Adding SigV4 Option for Prometheus Metric Analysis (#2489)
* updating from upstream

Signed-off-by: Kevin Lewin <lewinke@amazon.com>

* code coverage improvement

Signed-off-by: Kevin Lewin <lewinke@amazon.com>

* refactor

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* small refactor

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* handel error

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: Kevin Lewin <lewinke@amazon.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2023-01-24 09:18:03 -06:00
dependabot[bot] c792005dd4
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2534)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.25.0 to 1.25.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.25.0...service/fsx/v1.25.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-24 00:38:50 +00:00
dependabot[bot] 26014e75fb
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2533)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.8 to 1.18.9.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.8...config/v1.18.9)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-24 00:14:33 +00:00
dependabot[bot] cbda4a1a1b
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2532)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.19.0 to 1.19.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.19.0...service/s3/v1.19.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-24 00:03:03 +00:00
Justin Marquis 1cf2623362
chore: disable docker sbom and attestations (#2528)
Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
2023-01-20 17:58:39 -06:00
Zach Aller 8a6416aa0f
chore: fix dependabot broken dependency (#2529)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-01-20 16:18:42 -05:00
dependabot[bot] 40c5df52db
chore(deps): bump github.com/antonmedv/expr from 1.9.0 to 1.10.0 (#2527)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.9.0...v1.10.0)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-20 00:01:51 +00:00
KipsasJaujoj 3c2cef9054
docs: fix incorrect description for autoPromotionSeconds (#2525)
Signed-off-by: KipsasJaujoj <vaidotas.slavinskas@vinted.com>

Signed-off-by: KipsasJaujoj <vaidotas.slavinskas@vinted.com>
2023-01-19 17:12:15 -06:00
dependabot[bot] 7cf3372078
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2523)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.24.0 to 1.25.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.24.0...service/s3/v1.25.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-19 00:03:01 +00:00
nikhil1raghav 72ab46dd24
Wait for cache to sync (#2517)
Signed-off-by: Nikhil <nikhil1.raghav@gmail.com>

Signed-off-by: Nikhil <nikhil1.raghav@gmail.com>
2023-01-16 09:12:24 -06:00
Manolis Sfendourakis 4b2f202584
chore: Remove namespaced crds (#2516)
* chore: Remove CRDs from namespaced installation

Signed-off-by: Manolis Sfendourakis <sfenmanolis@gmail.com>

* docs: Add README for manifests

Signed-off-by: Manolis Sfendourakis <sfenmanolis@gmail.com>

* docs: Update installation methods

Signed-off-by: Manolis Sfendourakis <sfenmanolis@gmail.com>

Signed-off-by: Manolis Sfendourakis <sfenmanolis@gmail.com>
2023-01-15 16:15:40 -06:00
Zach Aller 3540032b20
docs: manually add changelog due to action failure (#2510)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-01-11 15:45:06 -05:00
dependabot[bot] 756104867d
chore(deps): bump google.golang.org/grpc from 1.51.0 to 1.52.0 (#2513)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.51.0 to 1.52.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.51.0...v1.52.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-11 00:02:01 +00:00
Gallardot 7b85ecc5c6
docs: fix typo apisix (#2508)
Signed-off-by: Gallardot <tttick@163.com>

Signed-off-by: Gallardot <tttick@163.com>
2023-01-06 08:33:37 -06:00
dependabot[bot] c4fa841161
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2505)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.23.1 to 1.24.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/fsx/v1.23.1...service/s3/v1.24.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 00:06:03 +00:00
dependabot[bot] 8e34135b26
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2506)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.28 to 1.19.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/elasticloadbalancingv2/v1.18.28...service/s3/v1.19.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 00:03:17 +00:00
dependabot[bot] 9a002df69b
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2504)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.7 to 1.18.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.7...config/v1.18.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 00:02:16 +00:00
Sami S 82da2ec459
fix linkerd traffic routing example (#2503) 2023-01-04 09:46:40 -06:00
Zach Aller 133641bd7b
fix: support only tls in virtual services (#2502)
* fix: support only tls in virtual services

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix typo

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add test file

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add unit test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove comment

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* improve comment

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove /n

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* re-ran codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* re-run codegen for 2023

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2023-01-03 11:42:04 -06:00
dependabot[bot] 54efbee9cd
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2497)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.6 to 1.18.7.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.6...config/v1.18.7)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-21 00:02:10 +00:00
dependabot[bot] e481f92b05
chore(deps): bump actions/stale from 6 to 7 (#2496)
Bumps [actions/stale](https://github.com/actions/stale) from 6 to 7.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-21 00:01:24 +00:00
Zach Aller 2cc3065e91
docs: add release schedule (#2446)
* add WIP release schedule following ArgoCD

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update dates

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* update dates

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix versions

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove planning meeting

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove feature freeze

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-20 13:22:12 -06:00
Zach Aller b12b673ba8
build: manually run auto changelog and fix workflow (#2494)
* fix: manually run auto changelog and fix workflow

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix: add workflow changes

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change name on old CHANGELOG and make autogen primary

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-20 13:07:09 -06:00
Zach Aller d610ec6c03
docs: fix rendering by upgrading deps (#2495)
* fix formating for spec

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix formating for spec

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix formating for spec

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump version

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump version

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump docs reqs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump docs reqs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump docs reqs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump docs reqs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump docs reqs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* bump docs reqs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* undo changes

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* undo changes

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-20 12:54:12 -06:00
Zach Aller 17931a945c
update docs links to all point to readthedocs (#2483)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-20 12:19:26 -05:00
Balaji Siva a277945043
Update USERS.md (#2493)
Adding our company to the list of users using Argo Rollouts
2022-12-20 10:42:43 -06:00
dependabot[bot] 2555e2cc3c
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2492)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.5 to 1.18.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.5...config/v1.18.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-20 00:01:48 +00:00
ssanders1449 4874b94d8a
feat: Implement Issue #1779: add rollout.Spec.Strategy.Canary.MinPodsPerReplicaSet (#2448)
* add rollout.Spec.Strategy.Canary.MinPodsPerRS (for TrafficRoutedCanary only)

Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>

* fix lint and test

Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>

* fix codegen

Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>

* rename MinPodsPerRS to MinPodsPerReplicaSet

Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>

* fix lint and codegen

Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>

* update specification.md

Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen missed a file

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: Shlomo Sanders <ssanders@synamedia.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2022-12-19 16:56:04 -06:00
dependabot[bot] 91e491ccaf
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2487)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.23.0 to 1.23.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.23.0...service/fsx/v1.23.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-16 00:10:08 +00:00
dependabot[bot] cb9e48b19c
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2485)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.4 to 1.18.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.4...config/v1.18.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-16 00:05:10 +00:00
dependabot[bot] bf2e34c9f5
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2486)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.27 to 1.18.28.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/elasticloadbalancingv2/v1.18.27...service/elasticloadbalancingv2/v1.18.28)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-16 00:02:49 +00:00
dependabot[bot] bbcf875304
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.17.2 to 1.17.3 (#2484)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.17.2 to 1.17.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.17.2...v1.17.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-16 00:01:47 +00:00
Justin Marquis b30ada2377
chore: update stable tag conditionally (#2480)
* chore: update stable tag conditionally

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* updated requested changes

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
2022-12-15 09:15:19 -06:00
Justin Marquis f5fb4c4f14
chore: fix checksum generation (#2481)
* chore: fix checksum generation and sign sbom

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* cosign public key for public record

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* remove pub key for cosign

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2022-12-15 08:49:11 -06:00
Travis Perdue 84df738129
chore: add optum to users list (#2466)
* add optum to users list

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

* alphabetical

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>

Signed-off-by: Travis Perdue <travis.perdue@rallyhealth.com>
2022-12-14 22:12:05 -06:00
Justin Marquis afce58f544
chore: use docker login to sign images (#2479)
Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
2022-12-14 19:48:40 -06:00
Justin Marquis 57fd71082b
chore: use correct image for plugin container (#2478)
Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
2022-12-14 18:58:44 -06:00
dependabot[bot] 1c5aa236fa
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2477)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.22.1 to 1.23.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/eks/v1.22.1...service/s3/v1.23.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-15 00:01:54 +00:00
dependabot[bot] 5e65eee17d
chore(deps): bump github.com/prometheus/common from 0.38.0 to 0.39.0 (#2476)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.38.0 to 0.39.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.38.0...v0.39.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-15 00:01:22 +00:00
Zach Aller 862b068232
build: use fixed docker repository because we can't reach accross jobs (#2474)
* use fixed docker repository because we can't reach accross jobs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* use fixed docker repository because we can't reach accross jobs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-14 16:36:25 -06:00
Zach Aller 36b3b2e3a5
ci: create stable tag for docs (#2402)
* ci: create stable tag for docs

Create a stable tag so that docs do not track latest causing
confusion for end users on what features are available.

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove extra space

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* no need to run pages build

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* no need to add message keep tags lightweight

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-13 16:24:24 -06:00
Zach Aller f3f2a842a3
add apisix docs to menu (#2472)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-13 15:32:06 -06:00
Zach Aller 1affe8953d
chore(deps): bump notification engine (#2470)
* bump notification engine

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* go tidy

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* codegen and docs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-13 14:54:34 -05:00
Gallardot 3c1038bf6b
feat: Apache APISIX support. Fixes #2395 (#2437)
* feat: Apache APISIX support

Signed-off-by: Gallardot <tttick@163.com>

* feat: Apache APISIX support

Signed-off-by: Gallardot <tttick@163.com>

* feat: Improve the apisix route

Signed-off-by: Gallardot <tttick@163.com>

* chore: add apisix doc and examples

Signed-off-by: Gallardot <tttick@163.com>

* chore: add apisix doc and examples

Signed-off-by: Gallardot <tttick@163.com>

* chore: add UT

Signed-off-by: Gallardot <tttick@163.com>

* doc: update README

Signed-off-by: Gallardot <tttick@163.com>

Signed-off-by: Gallardot <tttick@163.com>
2022-12-13 09:08:50 -06:00
Zach Aller b4c1d9e1b8
fix(trafficrouting): Do not block the switch of service selectors for single pod failures (#2441)
* fix(traficrouter): WIP on not setting weight if not available

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix tests

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* try bailing vs setting weight

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* work with expirments that do not set any weights

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix test by commenting out code

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* simplify logic

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* switch logic

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add more comments

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add more comments

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add more test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* refactor test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* refactor code to reduce duplication

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change comments a bit

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove else

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-12 16:04:38 -06:00
dependabot[bot] f4a8c556ae
chore(deps): bump github.com/prometheus/client_golang (#2469)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.13.0 to 1.14.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.13.0...v1.14.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-12 00:06:08 +00:00
dependabot[bot] a50c0bf043
chore(deps): bump github.com/prometheus/common from 0.37.0 to 0.38.0 (#2468)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.37.0 to 0.38.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.37.0...v0.38.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-09 00:01:54 +00:00
Zach Aller 998ab09cef
docs: Add traffic router support to readme (#2444)
* add table for supported traffic routers

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix checkmarks

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change not support to x

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix incorrect alb support

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* switch to companies supporting traffic routers

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* small formting changes

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove Supported by

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add fetaure stablility

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* GA to stable

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add legend

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add new line

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-08 16:02:11 -05:00
Tomer Yona b5a2e53a85
chore: Add Yotpo to USERS.md
yotpo is also using ArgoRollous!
2022-12-08 08:49:47 -06:00
Zach Aller 086a1e0ce0
bump api limit on action (#2445)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-12-05 11:17:29 -05:00
dependabot[bot] 2e20c93c47
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2455)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.22.0 to 1.22.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.22.0...service/eks/v1.22.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 14:45:37 +00:00
dependabot[bot] 5f5773290c
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2454)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.26 to 1.18.27.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.26...service/elasticloadbalancingv2/v1.18.27)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 14:40:44 +00:00
dependabot[bot] 162b95abda
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2452)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.3 to 1.18.4.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.3...config/v1.18.4)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 00:03:54 +00:00
dependabot[bot] 49ea83586b
chore(deps): bump github.com/influxdata/influxdb-client-go/v2 (#2447)
Bumps [github.com/influxdata/influxdb-client-go/v2](https://github.com/influxdata/influxdb-client-go) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/influxdata/influxdb-client-go/releases)
- [Changelog](https://github.com/influxdata/influxdb-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/influxdata/influxdb-client-go/compare/v2.12.0...v2.12.1)

---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-02 00:01:33 +00:00
Alec Rajeev 5a1cc74d2d
docs: fix typo in helm Argo rollouts (#2442)
* docs: fix typo

fixing docs typo

Signed-off-by: Alec Rajeev <13004609+alecrajeev@users.noreply.github.com>
Signed-off-by: Alec Rajeev <ccarajeev342@gmail.com>

* fix link

Signed-off-by: Alec Rajeev <ccarajeev342@gmail.com>

Signed-off-by: Alec Rajeev <13004609+alecrajeev@users.noreply.github.com>
Signed-off-by: Alec Rajeev <ccarajeev342@gmail.com>
2022-11-30 13:31:19 -06:00
Alex Eftimie 3342427c0f
fix: dev build can set DEV_IMAGE=true (#2440)
Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>
2022-11-29 08:26:07 -06:00
dependabot[bot] 7f34c52970
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2439)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.21.11 to 1.22.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/eks/v1.21.11...service/s3/v1.22.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-29 00:02:37 +00:00
S0n98 be987f3833
docs: correct syntax of canary setMirrorRoute's value (#2431)
Fix wrong syntax of
spec.strategy.canary.steps[setMirrorRoute].match.path.regex and
spec.strategy.canary.steps[setMirrorRoute].match.path.prefix
2022-11-28 12:10:14 -06:00
Alex Eftimie 8b8b0b4ad5
Rename docs/rollback.md to docs/features/rollback.md (#2438)
fixing 404 https://argoproj.github.io/argo-rollouts/features/rollback.md - put it in the expected location

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>
2022-11-28 11:26:01 -06:00
Alex Eftimie c3e305d2d2
feat: rollback windows. Fixes #574 (#2394)
* feature: introduce rollback windows

fixes: #574
Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* feature: introduce rollback windows - generated files

fixes: #574
Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* ran codegen again

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* More unit tests. New e2e

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* More tests to make codecov happy

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* increas lint timeout

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Exclude Experiment RS when computing rollback window

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Add documentation around new feature rollbackWindow

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Fix rollback window; cancel pauses and abort and skip to the end of analysis when the window is detected

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>
2022-11-25 08:09:10 -06:00
dependabot[bot] 8c162e9c93
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2430)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.21.10 to 1.21.11.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/eks/v1.21.10...service/eks/v1.21.11)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-23 15:18:48 +00:00
dependabot[bot] d8686e2465
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2429)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.2 to 1.18.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.2...config/v1.18.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-23 00:04:28 +00:00
dependabot[bot] 79b284c477
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2428)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.25 to 1.18.26.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.25...service/ecs/v1.18.26)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-23 00:04:05 +00:00
Kostis (Codefresh) 8987009003
docs: Explain upgrade process (#2424)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-11-22 09:18:02 -06:00
dependabot[bot] cc3b148cdd
chore(deps): bump google.golang.org/grpc from 1.50.1 to 1.51.0 (#2421)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.50.1 to 1.51.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.50.1...v1.51.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-21 00:14:07 +00:00
Guilherme Caminha e6a3f3a315
Update canary.md (#2358)
Signed-off-by: Guilherme Caminha <gpkc@cin.ufpe.br>

Signed-off-by: Guilherme Caminha <gpkc@cin.ufpe.br>
2022-11-20 09:22:08 -06:00
dependabot[bot] 67f5a2b957
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2418)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.1 to 1.18.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.1...config/v1.18.2)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-18 00:02:17 +00:00
dependabot[bot] dcf07ddb25
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2417)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.24 to 1.18.25.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.24...service/ecs/v1.18.25)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-18 00:01:45 +00:00
Dave Sudia 8230f4af6e
fix ambassador-edge-stack flag with correct api (#2416)
Signed-off-by: Dave Sudia <15764229+thedevelopnik@users.noreply.github.com>

Signed-off-by: Dave Sudia <15764229+thedevelopnik@users.noreply.github.com>
2022-11-17 13:56:11 -06:00
dependabot[bot] e65851e7cf
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2414)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.21.9 to 1.21.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/eks/v1.21.9...service/eks/v1.21.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-17 03:30:23 +00:00
dependabot[bot] aea6f1e73f
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2413)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.0...config/v1.18.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-17 00:03:07 +00:00
dependabot[bot] 65043bcc11
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2412)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.23 to 1.18.24.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.23...service/ecs/v1.18.24)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-17 00:02:40 +00:00
Lukáš Kutner 22ff2c4bdd
fix: add patch verb to deployment resource (#2407)
* Add patch verb to deployment resource

Dashboard fails with ```failed restoring revision 21: deployments.apps "ourapp" is forbidden: User "system:serviceaccount:argo-rollouts:argo-rollouts-dashboard" cannot patch resource "deployments" in API group "apps" in the namespace "ournamespace"``` when trying to rollback `Rollout` defined using existing `Deployment` and `workloadRef` config.
Adding `patch` verb for `deployments` should fix it.

Signed-off-by: tukak <lukas.kutner@productboard.com>

* Generate dashboard-manifest.yaml
Signed-off-by: tukak <lukas.kutner@productboard.com>

Signed-off-by: tukak <lukas.kutner@productboard.com>
2022-11-14 08:51:00 -06:00
dependabot[bot] d29793641e
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2409)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.17.10 to 1.18.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.17.10...config/v1.18.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-12 18:50:42 +00:00
dependabot[bot] 8aab2590c2
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2406)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.22 to 1.18.23.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.22...service/ecs/v1.18.23)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-12 18:48:14 +00:00
Lukáš Kutner 6bc21612ad
Add Productboard to USERS.md (#2408)
Signed-off-by: tukak <lukas.kutner@productboard.com>
2022-11-12 09:22:24 -06:00
dependabot[bot] 8f71c7e2d0
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2404)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.21.8 to 1.21.9.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/eks/v1.21.8...service/eks/v1.21.9)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-11 00:03:20 +00:00
Daniel Helfand 09a045a188
chore: remove deprecated -i for go build (#2047)
Signed-off-by: Daniel Helfand <helfand.4@gmail.com>

Signed-off-by: Daniel Helfand <helfand.4@gmail.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2022-11-10 16:52:33 -06:00
Rohit Agrawal 93c252055e
fix(analysis): Fix Analysis Terminal Decision For Dry-Run Metrics (#2399)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>

Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-11-08 13:22:03 -06:00
Martin W. Kirst 3aa87aa09c
fix issue #2297 Missing metric for updatedReplicas (#2300)
incl. documentation and enhanced test
incl. fix rollout_info_replicas_desired was not documented

Signed-off-by: nitram509 <maki@bitkings.de>

Signed-off-by: nitram509 <maki@bitkings.de>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2022-11-08 11:30:18 -06:00
Alex Eftimie 40e016612c
feat(controller): don't hardcode experiment ports; always create service (#2397)
* Copy ports from replicaset rather than hardcoding them
    Fixes: #2233

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Allow user to set the experiment service name.
Create a service even though a weight is not set (when the name is provided)

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Run codegen

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Run codegen again, service name is optional

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Fix conversion and tests

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Fix codegen

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Fix codegen again

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* white space

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Extend from corev1.ServiceSpec

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* make lint

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* infer ports from ReplicaSet. this should fix e2e tests

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* fix e2e
disable service where service is not needed or expected
set ports where service must be created

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* use json inline so that crd reflects ports

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Add codegen openapi_generated.go

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* fix codegen, protobuf is needed

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Add unit test

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Add unit test to new not tested code - copy pods from RS

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Address PR comment: set entire spec

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* docs: update experiment and rollout spec

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* redo pr. drop spec changes. only inherit ports and always create the service. update docs

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* Ran go fmt

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* revert changes. only enable service if weighted or template service not nil

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* typo in types

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* go fmt. need pre-commit hook

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* no more spec changes

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* drop test which is not relevant any more

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* fix e2e - only generate service if RS has ports

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

* fix e2e

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>
2022-11-08 10:59:47 -06:00
Thomas Riccardi 244b4978b4
ci: fix some github actions warnings (#2375)
* bump codecov/codecov-action: v2 to v3

The codecov/codecov-action api didn't change with v3.
Node.js version was updated from 12 to 16, fixing deprecation warning.

See: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* explain why we can't use native actions/download-artifact: we get artifacts from another workflow

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* fix publish test result warning

since v2 of EnricoMi/publish-unit-test-result-action:
warning:
Option FILES is deprecated, please use JUNIT_FILES instead!

all files are junit format, and are all named junit.xml

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>
2022-11-08 10:52:04 -06:00
hungran 97ed6de4ac
fix(example): correct docs when metrics got result empty (#2309)
* chore(deps): bump github.com/newrelic/newrelic-client-go (#2267)

Bumps [github.com/newrelic/newrelic-client-go](https://github.com/newrelic/newrelic-client-go) from 0.86.5 to 1.0.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v0.86.5...v1.0.0)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: hungran <26101787+hungran@users.noreply.github.com>

* fix: correct docs when metrics got result empty

Signed-off-by: hungran <26101787+hungran@users.noreply.github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hungran <26101787+hungran@users.noreply.github.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: zachaller <zachaller@users.noreply.github.com>
2022-11-08 10:41:04 -06:00
Thomas Riccardi 3f02c92455
feat(cli): dynamic shell completion for main resources names (rollouts, experiments, analysisrun) (#2379)
* PoC dynamic shell completion for 'kubectl-argo-rollouts get rollout [TAB]'

works toward #2015

use ValidArgsFunction from cobra to list candidates for completion: https://github.com/spf13/cobra/blob/main/shell_completions.md#dynamic-completion-of-nouns

use v2 of GenBashCompletion from cobra: https://github.com/spf13/cobra/blob/main/shell_completions.md#bash-completion-v2
- I chose to disable descriptions for completion (as a bash user I'm not
  used to that), but it's enabled for fish it seems, we can enable it
  if desired, I have no strong opinion on it

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* Factorize resource names completion functions in new util/completion

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* Add dynamic auto-completion to all ROLLOUT_NAME locations in CLI

...accoding to the Cobra auto-generated CLI documentation.

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* Add dynamic auto-completion to all EXPERIMENT_NAME locations in CLI

...accoding to the Cobra auto-generated CLI documentation.

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* Add dynamic auto-completion to all ANALYSISRUN_NAME locations in CLI

...accoding to the Cobra auto-generated CLI documentation.

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* WIP unit-test dynamic completion

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* Add unit-tests for new completion package

- inspired from kubectl own completion package tests
- fake cmd to avoid circular import
- reuse info/testdata but we could build our own data for more
  isolated tests if needed
- test all 3 types (Rollout, Experiment, AnalysisRun)
- test both first argument completion and second argument

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

* Revert "WIP unit-test dynamic completion"

Like in kubectl own completion tests, we now have an independent
'completion' package with its own tests. Stop testing in cmd/ callers
packages.

This reverts commit 75eb5ae74488713ad223babe2c201fde1908ec58.

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>
2022-11-08 09:51:45 -06:00
dependabot[bot] 8d668c5189
chore(deps): bump codecov/codecov-action from 2.1.0 to 3.1.1 (#2251)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.1.0 to 3.1.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-08 15:07:41 +00:00
Abhishek Veeramalla 75b7a6e3c6
docs: add progressive delivery with gitops example for openshift (#2400)
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
2022-11-08 08:45:32 -06:00
Abhishek Veeramalla 9fb46477a0
chore: add deprecation notice for rollout_phase in docs (#2377) (#2378)
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
2022-11-08 08:32:17 -06:00
Mubarak Jama 25cbb9e491
Upgrade examples to support k8s 1.25 (#2352)
Signed-off-by: Mubarak Jama <mubarak.jama@gmail.com>

Signed-off-by: Mubarak Jama <mubarak.jama@gmail.com>
2022-11-07 21:37:12 -06:00
Martin W. Kirst 32dea1a241
fix(dashboard): correct mime type is returned. Fixes: #2290 (#2303)
* fix: correct mimetype is returned
fix: when request /index.html, base path was not modified
fix: wrong 'err' variable used when log.Errorf("Failed to stat file or dir %s: %v"...) was printed
change: when a file is not found, 404 is return (before: the index.html was returned)
add: tests for static files serving

Signed-off-by: nitram509 <maki@bitkings.de>

* fix sonar cloud complains about invalid HTML
See https://sonarcloud.io/project/issues?resolved=false&types=BUG&pullRequest=2303&id=argoproj_argo-rollouts&open=AYO5y8lxtb83AIZrmShZ

Signed-off-by: nitram509 <maki@bitkings.de>

* fix send index.html when page not found, because client side React UI router

Signed-off-by: nitram509 <maki@bitkings.de>

* make variable private (feedback from review)

Signed-off-by: nitram509 <maki@bitkings.de>

Signed-off-by: nitram509 <maki@bitkings.de>
2022-11-07 16:02:03 -06:00
Abhishek Veeramalla c480f4d131
chore: Add example for istio-subset-split (#2318)
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
2022-11-07 15:42:30 -06:00
Takao Shibata 91043a9794
feat(cli): add port flag for dashboard command (#2383)
Signed-off-by: Takao Shibata <chise.alter.pasta@gmail.com>

Signed-off-by: Takao Shibata <chise.alter.pasta@gmail.com>
2022-11-07 14:57:31 -06:00
Abhishek Veeramalla 0a77c33bc5
chore: rename the examples/trafffic-management directory to istio (#2315)
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
2022-11-07 14:42:13 -06:00
Thomas Riccardi da92e2ce1d
docs: fix !important block typo (#2372)
also, normalize all blocks with a space before the keyword.

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>
2022-11-07 14:26:51 -06:00
Zach Aller 5db47e7670
fix: set gopath in makefile (#2398)
We currently assume that GOPATH is set within the developers environment
go has some defaults that get used when no GOPATH is defined. If we use
`go env GOPATH` to set the env var for the Makefile we will then also fall
back to golang defaults which help contributior experiance.

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-11-04 15:34:33 -04:00
Zach Aller 5f034a41bd
feat: add support for getting the replicaset name via templating (#2396)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-11-04 09:31:27 -07:00
Alex Eftimie 076ea4398a
Add getyourguide to users (#2386)
Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>

Signed-off-by: Alex Eftimie <alex.eftimie@getyourguide.com>
2022-11-03 18:31:12 -07:00
Kostis (Codefresh) 2d6f5a005c
docs: mention supported versions (#2163)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-11-03 12:22:23 -04:00
dependabot[bot] 7eea8ff0ba
chore(deps): bump dependabot/fetch-metadata from 1.3.4 to 1.3.5 (#2390)
Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/dependabot/fetch-metadata/releases)
- [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.3.4...v1.3.5)

---
updated-dependencies:
- dependency-name: dependabot/fetch-metadata
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-03 00:05:22 +00:00
dependabot[bot] 6d7ede99d4
chore(deps): bump imjasonh/setup-crane from 0.1 to 0.2 (#2387)
Bumps [imjasonh/setup-crane](https://github.com/imjasonh/setup-crane) from 0.1 to 0.2.
- [Release notes](https://github.com/imjasonh/setup-crane/releases)
- [Commits](https://github.com/imjasonh/setup-crane/compare/v0.1...v0.2)

---
updated-dependencies:
- dependency-name: imjasonh/setup-crane
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-02 00:02:37 +00:00
Zach Aller 69af551691
chore(deps): upgrade ui deps to fix high security cve's (#2345)
* ui: upgrade deps to fix high security cve's

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-11-01 15:13:13 -04:00
Justin Marquis 7085fb2fd1
chore: sign container images and checksum assets (#2334)
Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
2022-11-01 08:50:41 -07:00
dependabot[bot] cb49ca73e3
chore(deps): bump actions/upload-artifact from 2 to 3 (#1973)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 15:50:27 +00:00
Zach Aller 381feea654
build: copy proto files from GOPATH so we can clone outside of GOPATH (#2360)
* build: copy proto files from GOPATH so we can clone outside of GOPATH

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* always return true so that we can run within GOPATH as well

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-31 11:48:47 -04:00
Thomas Riccardi 9d43599704
Run e2e tests on multiple kubernetes versions (#2380)
closes #2171

Use k3s release channel per kubernetes minor version (see
https://get.k3s.io/ `INSTALL_K3S_CHANNEL_URL` & `INSTALL_K3S_CHANNEL`)

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>
2022-10-31 11:38:08 -04:00
dependabot[bot] c40462470d
chore(deps): bump github.com/influxdata/influxdb-client-go/v2 (#2381)
Bumps [github.com/influxdata/influxdb-client-go/v2](https://github.com/influxdata/influxdb-client-go) from 2.11.0 to 2.12.0.
- [Release notes](https://github.com/influxdata/influxdb-client-go/releases)
- [Changelog](https://github.com/influxdata/influxdb-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/influxdata/influxdb-client-go/compare/v2.11.0...v2.12.0)

---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-28 00:04:11 +00:00
dependabot[bot] d106b3a26d
chore(deps): bump github.com/spf13/cobra from 1.6.0 to 1.6.1 (#2370)
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.6.0...v1.6.1)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 00:13:00 +00:00
dependabot[bot] 51388c556b
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2366)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.21.7 to 1.21.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/eks/v1.21.7...service/eks/v1.21.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 00:10:09 +00:00
dependabot[bot] e266449ab1
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2367)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.17.8 to 1.17.10.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.17.8...config/v1.17.10)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 00:08:47 +00:00
dependabot[bot] 1dd16eb0b8
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.17.0 to 1.17.1 (#2369)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.17.0 to 1.17.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.17.0...v1.17.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 00:05:49 +00:00
dependabot[bot] cc3d940788
chore(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#2368)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 00:05:00 +00:00
dependabot[bot] 24eb02f52d
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2365)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.20 to 1.18.22.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.20...service/ecs/v1.18.22)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 00:04:00 +00:00
dependabot[bot] c36777f457
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.16.16 to 1.17.0 (#2364)
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.16.16 to 1.17.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.16.16...v1.17.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-24 00:12:31 +00:00
dependabot[bot] b5ae4992fe
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2361)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.21.6 to 1.21.7.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/eks/v1.21.6...service/eks/v1.21.7)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-24 00:09:42 +00:00
asimhon 2cf256b6e6
docs: Added blog post for minimize impact in Kubernetes using Progressive Delivery and customer side impact (#2355)
Signed-off-by: Ariel Simhon <ariel_simhon@intuit.com>

Signed-off-by: Ariel Simhon <ariel_simhon@intuit.com>
Co-authored-by: Ariel Simhon <ariel_simhon@intuit.com>
2022-10-21 13:42:41 -04:00
Prema 9fee0373d0
fix(metricprovider): Support jsonBody for web metric provider Fixes #2275 (#2312)
* fix(issue2275): Support jsonBody for web metric provider

Signed-off-by: Prema devi Kuppuswamy <premadk@gmail.com>

* fix(webmetrics): generate proto files

Signed-off-by: Prema devi Kuppuswamy <premadk@gmail.com>

Signed-off-by: Prema devi Kuppuswamy <premadk@gmail.com>
2022-10-19 15:47:27 -07:00
dependabot[bot] ca04c8a36b
chore(deps): bump github.com/prometheus/client_model from 0.2.0 to 0.3.0 (#2349)
Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.2.0 to 0.3.0.
- [Release notes](https://github.com/prometheus/client_model/releases)
- [Commits](https://github.com/prometheus/client_model/compare/v0.2.0...v0.3.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_model
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-19 00:02:49 +00:00
dependabot[bot] cbd2acbff9
chore(deps): bump github.com/valyala/fasttemplate from 1.2.1 to 1.2.2 (#2348)
Bumps [github.com/valyala/fasttemplate](https://github.com/valyala/fasttemplate) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/valyala/fasttemplate/releases)
- [Commits](https://github.com/valyala/fasttemplate/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: github.com/valyala/fasttemplate
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-19 00:02:42 +00:00
Zach Aller fd6dcc1ce3
ci: add link to conventional pr check in pr template (#2346)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-18 11:57:34 -07:00
Zach Aller 7c3a8a14f7
fix all workflows to follow best practices of clo monitor via https://app.stepsecurity.io/ (#2343)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-18 11:32:42 -07:00
Zach Aller dbd2e3b4b3
docs(trafficrouting): fix docs warning to github style markdown (#2342)
* fix docs warning to github style markdown

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fx formating

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-18 10:16:35 -07:00
Zach Aller e41d3f28f0
ci: auto generate changelog (#2321)
* Auto changelogs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change template

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove pr title check to won pr

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* conventionalcommits

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change file name

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Auto changelogs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change template

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove pr title check to won pr

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* conventionalcommits

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change file name

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix file name when untar'ing

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* perms for clomonitor

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* sort by semver

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* start at v1.3.1

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-18 10:12:14 -07:00
dependabot[bot] ecd3187e79
chore(deps): bump github.com/newrelic/newrelic-client-go (#2344)
Bumps [github.com/newrelic/newrelic-client-go](https://github.com/newrelic/newrelic-client-go) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v1.0.0...v1.1.0)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-18 00:03:10 +00:00
Zach Aller 27f7a68f88
ci: adjust settings for stale pr and issues (#2341)
* adjust settings for stale pr and issues

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* go back to original settings

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-17 08:49:24 -07:00
dependabot[bot] a94e92bcd2
chore(deps): bump google.golang.org/grpc from 1.50.0 to 1.50.1 (#2340)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.50.0...v1.50.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-17 00:07:35 +00:00
Zach Aller a247080586
ci: fix pr lint check (#2336)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-15 19:22:06 -07:00
Zach Aller 0094b15fa4
Move zachaller to approvers (#2311)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-15 17:06:47 -07:00
Zach Aller 569aa9b161
move perms to job for clomonitor (#2333)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-15 17:03:53 -07:00
Zach Aller b54f6a07b3
ci: add auto close to issues and prs (#2319)
* add auto close issues and prs

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Add awaiting-response label closer

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Change name

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* dont close any milestones

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* correct label in messages

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add permissions

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* move perms to job

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-15 16:58:44 -07:00
Zach Aller f99d3ec319
ci: Add github action for PR Conventional Commits (#2320)
* feat(ci): Add github action for PR Conventional Commits

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add example scope

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add cli as scope

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Remove configuration

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* scopes not required

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-14 15:52:24 -07:00
Zach Aller ff29d93595
build: add sha256 checksums for all released bins (#2332)
* build: add sha256 checksums for all released bins

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Add shasum

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* rename file

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* shasum is included

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-14 14:03:12 -07:00
Zach Aller 283db76a4c
docs: add artifact badge (#2331)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-14 13:32:37 -07:00
Zach Aller e6a0807a63
test(controller): add extra checks to TestWriteBackToInformer (#2326)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-13 15:32:03 -07:00
Zach Aller 83e9b40dbd
fix(cli): nil pointer while linting (#2324)
* fix nil pointer on lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add test for having a virtual service but not using it in rollout

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* change logic

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* improve test cov

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove unreachable code

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Add test coverage

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add more test coverage

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Standardize msg

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-13 14:45:32 -07:00
Zach Aller 35da539b27
fix(controller): leader election preventing two controllers running and gracefully shutting down (#2291)
* WIP on fixing leader election fix

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Start and stop informers as well

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Remove tests that do not test anything

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Cleanup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Add back one test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* remove secondary metric server

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Remove secondary metric test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Add single instance test to catch log lines

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* We should shutdown if we can not sync

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Redo for loop will have another pr that stops via context

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Fix comment

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Add context and graceful shutdown

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* lint

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Fix test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add more time for startup

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add individual controller startup tests

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* standardize shutdown

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Standardize leader test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix test

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* We can not turn on release on cancel

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* fix release on cancel

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-10-13 10:31:54 -04:00
dependabot[bot] a0d8eb56db
chore(deps): bump github.com/prometheus/common from 0.36.0 to 0.37.0 (#2143)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.36.0 to 0.37.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.36.0...v0.37.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-12 00:10:19 +00:00
dependabot[bot] 02b6df2f2a
chore(deps): bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0 (#2152)
Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.8.1...v1.9.0)

---
updated-dependencies:
- dependency-name: github.com/sirupsen/logrus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-12 00:08:58 +00:00
dependabot[bot] 30e69e0819
chore(deps): bump github.com/spf13/cobra from 1.5.0 to 1.6.0 (#2313)
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-12 00:07:33 +00:00
dependabot[bot] 40c2599b7f
chore(deps): bump github.com/newrelic/newrelic-client-go (#2267)
Bumps [github.com/newrelic/newrelic-client-go](https://github.com/newrelic/newrelic-client-go) from 0.86.5 to 1.0.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v0.86.5...v1.0.0)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 00:49:57 +00:00
dependabot[bot] 6e6506a5a1
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2307)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.19 to 1.18.20.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.19...service/ecs/v1.18.20)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 00:11:58 +00:00
dependabot[bot] c92571b4af
chore(deps): bump docker/build-push-action from 2 to 3 (#2306)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2 to 3.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 00:11:21 +00:00
dependabot[bot] d4cc13e3c0
chore(deps): bump docker/setup-buildx-action from 1 to 2 (#2305)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 00:10:57 +00:00
dependabot[bot] 75703a86d1
chore(deps): bump github.com/influxdata/influxdb-client-go/v2 (#2304)
Bumps [github.com/influxdata/influxdb-client-go/v2](https://github.com/influxdata/influxdb-client-go) from 2.9.1 to 2.11.0.
- [Release notes](https://github.com/influxdata/influxdb-client-go/releases)
- [Changelog](https://github.com/influxdata/influxdb-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/influxdata/influxdb-client-go/compare/v2.9.1...v2.11.0)

---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb-client-go/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 00:10:46 +00:00
Patrice Chalin 1394f4e8bb
docs: Use new Google Analytics 4 site tag (#2299)
Signed-off-by: Patrice Chalin <chalin@cncf.io>

Signed-off-by: Patrice Chalin <chalin@cncf.io>
2022-10-07 11:53:01 -07:00
dependabot[bot] 4d8fbd151e
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#2295)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.18.8 to 1.18.19.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.8...service/ecs/v1.18.19)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-07 00:11:54 +00:00
dependabot[bot] be7b0b0db7
chore(deps): bump google.golang.org/protobuf from 1.28.0 to 1.28.1 (#2296)
Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.28.0 to 1.28.1.
- [Release notes](https://github.com/protocolbuffers/protobuf-go/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash)
- [Commits](https://github.com/protocolbuffers/protobuf-go/compare/v1.28.0...v1.28.1)

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-07 00:09:48 +00:00
dependabot[bot] fc2657d392
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch (#2255)
Bumps [github.com/aws/aws-sdk-go-v2/service/cloudwatch](https://github.com/aws/aws-sdk-go-v2) from 1.18.6 to 1.21.6.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.18.6...service/eks/v1.21.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudwatch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-07 00:08:15 +00:00
dependabot[bot] 33cfd8d323
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#2294)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.15.14 to 1.17.8.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.15.14...config/v1.17.8)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-07 00:04:41 +00:00
dependabot[bot] 318e72f709
chore(deps): bump google.golang.org/grpc from 1.47.0 to 1.50.0 (#2293)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.47.0 to 1.50.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.47.0...v1.50.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-07 00:04:10 +00:00
dependabot[bot] 39e5026930
chore(deps): bump docker/metadata-action from 3 to 4 (#2292)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3 to 4.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-07 00:03:18 +00:00
dependabot[bot] 08acc45222
chore(deps): bump github/codeql-action from 1 to 2 (#2289)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 01:04:05 +00:00
dependabot[bot] d3d430baba
chore(deps): bump docker/login-action from 1 to 2 (#2288)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 01:03:51 +00:00
dependabot[bot] 83fb0a5e7a
chore(deps): bump actions/setup-go from 2 to 3 (#2287)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2 to 3.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 00:57:42 +00:00
dependabot[bot] 422009da80
chore(deps): bump dependabot/fetch-metadata from 1.3.3 to 1.3.4 (#2286)
Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.3.3 to 1.3.4.
- [Release notes](https://github.com/dependabot/fetch-metadata/releases)
- [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.3.3...v1.3.4)

---
updated-dependencies:
- dependency-name: dependabot/fetch-metadata
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 00:54:00 +00:00
dependabot[bot] 352ae78eb4
chore(deps): bump EnricoMi/publish-unit-test-result-action from 1 to 2 (#2285)
Bumps [EnricoMi/publish-unit-test-result-action](https://github.com/EnricoMi/publish-unit-test-result-action) from 1 to 2.
- [Release notes](https://github.com/EnricoMi/publish-unit-test-result-action/releases)
- [Commits](https://github.com/EnricoMi/publish-unit-test-result-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: EnricoMi/publish-unit-test-result-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 00:49:04 +00:00
dependabot[bot] fee18c0d41
chore(deps): bump actions/setup-python from 2 to 4.1.0 (#2134)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 4.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v4.1.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 00:45:49 +00:00
dependabot[bot] 3949b31009
chore(deps): bump actions/cache from 2 to 3.0.1 (#1940)
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v2...v3.0.1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 00:32:30 +00:00
dependabot[bot] 1f026cd0b4
chore(deps): bump docker/setup-qemu-action from 1 to 2 (#2284)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 00:21:07 +00:00
dependabot[bot] 6e62ee2694
chore(deps): bump actions/checkout from 2 to 3.1.0 (#2283)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3.1.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-06 00:19:43 +00:00
Kostis (Codefresh) 33ddaf5825
docs: Fixed read the docs rendering (#2277)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-10-05 11:19:02 -04:00
Zach Aller e18b3fa834
Add auto merge for dependabot (#2222)
Signed-off-by: zachaller <zachaller@hotmail.com>

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-10-05 11:14:00 -04:00
Zach Aller d147af84b2
chore: upgrade golang to 1.19 (#2219)
* chore: upgrade golang to 1.19

Signed-off-by: zachaller <zachaller@hotmail.com>

* Upgrade golangci-lint

Signed-off-by: zachaller <zachaller@hotmail.com>

* Upgrade golangci-lint in github action

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix linting

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add nolint to test functions

Signed-off-by: zachaller <zachaller@hotmail.com>

* Cleanup

Signed-off-by: zachaller <zachaller@hotmail.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@hotmail.com>

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-10-04 13:55:39 -04:00
Zach Aller 3b55c972b7
fixes(controller): istio dropping fields not defined in type (#2268)
* fixes #2266

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* typo

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* test after calling set mirror

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Keep port on user defined service by adding to internal types

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* Drop port on virtual service to be consistent with added routes

Drop the port on the virtual service with the statment that rollouts only supports
one port services.

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* cleanup test to just test extra fields and add a port check on destination as well

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* keep port for both mirroring and header routes

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* github trigger re-run

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

* add function comment

Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-09-29 10:16:47 -04:00
Zach Aller a337d4f9a7
fix: UI not redirecting on / (#2252)
Signed-off-by: zachaller <zachaller@hotmail.com>

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-09-27 14:25:27 -04:00
Zach Aller 27e4e6e136
fix: nil pointer while linting with basic canary and ingresses (#2256)
* fix: nil pointer while linting basic canary with Ingress resources

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add test case

Signed-off-by: zachaller <zachaller@hotmail.com>

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-09-27 14:24:38 -04:00
Zach Aller 417aaa647d
chore(cli): add darwin arm64 to build and release (#2264)
Signed-off-by: zachaller <zachaller@users.noreply.github.com>

Signed-off-by: zachaller <zachaller@users.noreply.github.com>
2022-09-27 14:18:12 -04:00
nikhil1raghav 1cfe808aa3
fix(controller): Fix k8s clientset controller metrics. Fixes #2139 (#2261)
* Add roundtripper to kubeconfig before creating kubeclient

Signed-off-by: Nikhil <nikhil1.raghav@gmail.com>

* Check if k8sRequestsCount is nil before attempting increase

Signed-off-by: Nikhil <nikhil1.raghav@gmail.com>

* Added Flipkart to Users.md

Signed-off-by: Nikhil <nikhil1.raghav@gmail.com>

* gofmt controller/metrics/client.go

Signed-off-by: Nikhil <nikhil1.raghav@gmail.com>

Signed-off-by: Nikhil <nikhil1.raghav@gmail.com>
2022-09-27 14:13:37 -04:00
ssanders1449 6d410daee5
add Synamedia to USERS.md (#2213)
Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>

Signed-off-by: Shlomo Sanders <ssanders@synamedia.com>
Co-authored-by: Shlomo Sanders <ssanders@synamedia.com>
Co-authored-by: Leonardo Luz Almeida <leoluz@users.noreply.github.com>
2022-09-26 13:28:42 -04:00
ShirleyDing 6aa8ee817c
chore imports: remove repeated package and reformat (#2183)
Signed-off-by: Shirley Ding <yingd1206@gmail.com>

Signed-off-by: Shirley Ding <yingd1206@gmail.com>
2022-09-26 13:25:38 -04:00
Kostis (Codefresh) df3156a18e
docs: common questions for Rollbacks (#2027)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-09-26 13:24:39 -04:00
sat-devopsnow 198884e149
docs: add OpsVerse as an official user (USERS.md) (#2209)
Signed-off-by: sat-devopsnow <sat@opsverse.io>

Signed-off-by: sat-devopsnow <sat@opsverse.io>
2022-09-26 13:20:52 -04:00
Rohit Agrawal ae56d91628
fix(analysis): Make AR End When Only Dry-Run Metrics Are Defined (#2230)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-09-22 08:53:07 -07:00
Andrii Perenesenko df8af6de84
docs: Fix the controller annotation to enable data scrapping (#2238)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2022-09-19 04:54:24 -07:00
Zach Aller c639574a66
docs: Update release docs for versioned formula (#2245)
Signed-off-by: zachaller <zachaller@hotmail.com>
2022-09-19 04:53:53 -07:00
Zach Aller 19ebdeca7e
Use standard cli format for dashboard root path (#2244)
Signed-off-by: zachaller <zachaller@hotmail.com>

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-09-16 16:57:18 -04:00
RaviHari e64637171f
fix: enable notifications without when condition (#2231)
* fix: enable notifications without when condition

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

* fix: use trigger action item from the list

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

* fix: add emptycondition logic to make notifications work with/without conditions

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

* fix: linting

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

Signed-off-by: Ravi Hari <ravireliable@gmail.com>
2022-09-14 16:06:02 -04:00
Andrii Perenesenko 4848fb1283
feat: Allow Traffic shaping through header based routing for ALB (#2214)
* Allow Traffic shaping through header based routing for ALB

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* Allow Traffic shaping through header based routing for ALB. Fix test

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* Allow Traffic shaping through header based routing for ALB. Increase coverage

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* fix after review: deprecate field

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* fix after review: sort http paths

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2022-09-13 15:33:44 -04:00
Zach Aller 3f0dab00fc
docs: Update docs for new openapi kustomize support (#2216)
* docs: Update docs for new openapi kustomize support

Signed-off-by: zachaller <zachaller@hotmail.com>

* update required kustomize version

Signed-off-by: zachaller <zachaller@hotmail.com>

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-09-06 16:46:02 -04:00
Siavash Safi 669f9619e4
feat: Add support for spec.ingressClassName (#2178)
This change adds support for `spec.ingressClassName` while still supporting
`kubernetes.io/ingress.class` annotation for backwards compatibility.

Fixes #1277

Signed-off-by: Siavash Safi <git@hosted.run>

Signed-off-by: Siavash Safi <git@hosted.run>
2022-08-25 15:53:22 -04:00
Zach Aller 76cfc0e588
fix: change completed condition so it only triggers on pod hash changes also adds an event for when it does changes. (#2203)
* feat: add healthy event/condition and fix completed event/condition

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix unit tests

Signed-off-by: zachaller <zachaller@hotmail.com>

* rename vars to make more sense and remove healthy event becase it will never be consistent

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix unit tests

Signed-off-by: zachaller <zachaller@hotmail.com>

* possible fix for e2e

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix e2e

Signed-off-by: zachaller <zachaller@hotmail.com>

* unit test for complete function

Signed-off-by: zachaller <zachaller@hotmail.com>

* small cleanup and changes to not check generation

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix unit test and proper behavior

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix e2e

Signed-off-by: zachaller <zachaller@hotmail.com>

* rename and fix one unit test

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix unit tests

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix unit test

Signed-off-by: zachaller <zachaller@hotmail.com>

* add seperate test for TestRolloutComplete

Signed-off-by: zachaller <zachaller@hotmail.com>

* renames

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix e2e

Signed-off-by: zachaller <zachaller@hotmail.com>

* Set Completed to false

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add event

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix e2e

Signed-off-by: zachaller <zachaller@hotmail.com>

* refactor

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix all but one unit test

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix last unit test

Signed-off-by: zachaller <zachaller@hotmail.com>

* lint

Signed-off-by: zachaller <zachaller@hotmail.com>

* cleanup

Signed-off-by: zachaller <zachaller@hotmail.com>

* Rename

Signed-off-by: zachaller <zachaller@hotmail.com>

* More renames

Signed-off-by: zachaller <zachaller@hotmail.com>

* small comment change

Signed-off-by: zachaller <zachaller@hotmail.com>

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-08-24 17:16:43 -04:00
michaelchoi210 69fd80c14b
docs: add Opensurvey to USERS.md (#2195)
Signed-off-by: michaelchoi210 <michael.choi@opensurvey.co.kr>

Signed-off-by: michaelchoi210 <michael.choi@opensurvey.co.kr>
2022-08-17 11:03:20 -04:00
Zach Aller 4b374afdbf
fix: rootPath support so that it uses the embedded files system (#2198)
* fix: rootPath support so that it uses the embeded files system

Signed-off-by: zachaller <zachaller@hotmail.com>

* Catch edge cases and make sure we always server index.html on not found

Signed-off-by: zachaller <zachaller@hotmail.com>

* turn path.Clean into var

Signed-off-by: zachaller <zachaller@hotmail.com>

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-08-17 10:59:27 -04:00
Rohit Agrawal 73c7a03c5a
fix(analysis): Avoid Infinite Error Message Append For Failed Dry-Run Metrics (#2182)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>

Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-08-11 08:59:53 -04:00
Imran Ismail 25f40d2bb8
feat: Support TCP routes traffic splitting for Istio VirtualService (#1659)
Signed-off-by: Imran Ismail <imran.codely@gmail.com>
2022-08-05 10:50:10 -04:00
Xiao Yang 731d55b6cf
cleanup: rename temlateref to templateref (#2154)
Signed-off-by: Xiao Yang <muma.378@163.com>
2022-08-03 13:00:38 -04:00
RaviHari 0ec5ac18a3
fix: Failed to process: Object 'Kind' is missing in Errors with rollouts notification (#2150)
* fix: update rolloutobject with gvk before writing to rollout informer

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

* fix: controller schema linting

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

* docs: comment the details on the change

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

* docs: comment the details on the change

Signed-off-by: Ravi Hari <ravireliable@gmail.com>
2022-07-29 11:52:52 -04:00
Zach Aller 3329626785
chore: Upgrade golang (#2160)
* Upgrade golang

Signed-off-by: zachaller <zachaller@hotmail.com>

* upgrade golang to 1.18 for e2e

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix deps

Signed-off-by: zachaller <zachaller@hotmail.com>

* Update build action

Signed-off-by: zachaller <zachaller@hotmail.com>

* Upgrade push action

Signed-off-by: zachaller <zachaller@hotmail.com>

* Update docker file

Signed-off-by: zachaller <zachaller@hotmail.com>

* Bump golang lint to match

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix go.mod

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-07-27 14:14:14 -04:00
cskh 0b022eead5
feat: emit rollout delete event (#1893)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>

Co-authored-by: Hui Kang <hui.kang@salesforce.com>
2022-07-27 10:13:38 -04:00
Mike Ball 9c87d0d189
fix(docs) Graphite metrics provider linked in docs sidebar. Fixes #2102. (#2094)
* Graphite metrics provider linked in docs sidebar

This fixes an issue wherein the Graphite metrics
provider has no sidebar link in the docs hosted
at https://argoproj.github.io/argo-rollouts/.

As a bonus, this also removes various trailing
whitespace from analysis docs.

Signed-off-by: Mike Ball <mikedball@gmail.com>

* build trigger

Signed-off-by: Mike Ball <mikedball@gmail.com>
2022-07-27 09:22:10 -04:00
Leonardo Luz Almeida 03b0813832
docs: update release doc with brew formula details (#2165)
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2022-07-26 15:24:21 -07:00
Rohit Agrawal 709a709897
fix(analysis): Fix Analysis Terminal Decision For Dry-Run Metrics (#2131)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-07-25 22:08:52 -04:00
Zach Aller df528693d2
chore: use controler-gen for cluster analysis template scope (#2148)
Signed-off-by: zachaller <zachaller@hotmail.com>
2022-07-22 16:43:34 -07:00
Zach Aller bb54a0795d
fix: remove metrics when objects are removed from cluster to prevent build up (#2115)
* fix: remove metrics on resource removal

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add test

Signed-off-by: zachaller <zachaller@hotmail.com>

* More tests

Signed-off-by: zachaller <zachaller@hotmail.com>

* back off deps updates

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix dep change

Signed-off-by: zachaller <zachaller@hotmail.com>

* upgrade prom deps for new features

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix deps

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-07-22 16:40:57 -07:00
Zach Aller 1bffed59b8
fix: Update ro.Status.ALB when first creating rollout object (#1986)
* fix: make sure we update rollout.Status.ALB when first create Rollout object

This fixes the case when we first create a rollout the status.ALB field does not
get updated with valid information form the elb.

Signed-off-by: zachaller <zachaller@hotmail.com>

* Refactor check for if we should verify alb.

This creates a new rolloututil function ShouldVerifyWeight that verifies
that we should call aws because the rollout is in the middle of some update.

The reason I feel this should move into the ingress implmentation function VerifyWeight
is becuase in the future other ingresses might also need to verify weights and adding
ingress specific status checks in trafficrouting.go like a leak details where it should be
up to the ingress provider to determin if it should be careful of rate limiting do to say it
being a cloud provider call.

Signed-off-by: zachaller <zachaller@hotmail.com>

* lint

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix tests

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add new test for ShouldVerifyWeight

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix logic

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add test for where we do not need to verify weight and its already set

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix up review comments

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix tests

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix bad merge

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix test

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix test

Signed-off-by: zachaller <zachaller@hotmail.com>

* Clearer function name

Signed-off-by: zachaller <zachaller@hotmail.com>

* Clean up if logic

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-07-22 16:09:39 -07:00
Martin Adler 0e2fdaee64
fixes #2141 Added list and watch to clusterrole (#2145)
Signed-off-by: Martin Adler <1208749+EagleIJoe@users.noreply.github.com>
2022-07-22 14:06:54 -07:00
Zach Aller f2c1d8a576
chore: upgrade deps (#2136)
Signed-off-by: zachaller <zachaller@hotmail.com>
2022-07-12 15:06:43 -07:00
Zach Aller c4205e85ec
chore: Add e2e and unit test comment reports (#2123)
Signed-off-by: zachaller <zachaller@hotmail.com>
2022-07-11 15:15:23 -07:00
Simon Ninon 03b7f5e5cc
feat: support /rollouts/:namespace?q=... and /rollout/:namespace/:name (#1902)
Signed-off-by: Simon Ninon <sninon@pagerduty.com>
2022-06-30 14:04:47 -04:00
Jesse Antoszyk 935a825918
feat(grafana): Allow selecting datasource for grafana dashboard (#1988)
Signed-off-by: Jesse Antoszyk <22500761+jcantosz@users.noreply.github.com>
2022-06-30 14:00:42 -04:00
Mário Bezerra 26813cff6f
chore: improve openapi schema (#2081)
* feat: include all CRDs to the OpenAPI schema

Signed-off-by: Mário Bezerra <mario.bezerra@incognia.com>

* feat: use kube-openapi naming convention in the OpenAPI schema

Signed-off-by: Mário Bezerra <mario.bezerra@incognia.com>

* chore: generate OpenAPI schema

Signed-off-by: Mário Bezerra <mario.bezerra@incognia.com>
2022-06-30 13:59:48 -04:00
Zach Aller 40c356c64e
feat: Adds support for Istio traffic mirroring (#2074)
* feat: Add support for istio traffic mirroring steps

Signed-off-by: zachaller <zachaller@hotmail.com>

* bump e2e timeout

Signed-off-by: zachaller <zachaller@hotmail.com>

* Remove unintended change

Signed-off-by: zachaller <zachaller@hotmail.com>

* Cleaner events

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add docs for mirror and fix up header routing

Signed-off-by: zachaller <zachaller@hotmail.com>

* small doc changes

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add example

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix types and change example

Signed-off-by: zachaller <zachaller@hotmail.com>

* Remove unused type

Signed-off-by: zachaller <zachaller@hotmail.com>

* Docs change

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix PR comments

Signed-off-by: zachaller <zachaller@hotmail.com>

* Check for >=

Signed-off-by: zachaller <zachaller@hotmail.com>

* Remove unused function

Signed-off-by: zachaller <zachaller@hotmail.com>

* codegen

Signed-off-by: zachaller <zachaller@hotmail.com>

* Add better error logging

Signed-off-by: zachaller <zachaller@hotmail.com>

* a few more error msgs

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix comments

Signed-off-by: zachaller <zachaller@hotmail.com>

* typo

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix logic error

Signed-off-by: zachaller <zachaller@hotmail.com>

* redo header logic

Signed-off-by: zachaller <zachaller@hotmail.com>

* cleanup

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix issue with keeping route weight updated when no routes
are defined in spec.strategy.canary.trafficRouting.istio.virtualService.routes
requiring only a single route

Signed-off-by: zachaller <zachaller@hotmail.com>

* cleanup routes when promiting with last step being a pause

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix bug with promote and last step is a pause

Signed-off-by: zachaller <zachaller@hotmail.com>

* Fix tests

Signed-off-by: zachaller <zachaller@hotmail.com>

* fix typo

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-06-29 17:28:59 -04:00
jaymebrd e3c33d86b0
feat: add support for influxdb as a metrics provider (#1839)
* feat: add InfluxDB metric provider implementation

Signed-off-by: Jayme Bird <jbird@influxdata.com>

* feat: add influx to metric provider util count, add missing graphite

Signed-off-by: Jayme Bird <jbird@influxdata.com>

* feat: add protobuf definitions for InfluxdbMetric

Signed-off-by: Jayme Bird <jbird@influxdata.com>

* feat: add docs for the Influxdb metrics provider

Signed-off-by: Jayme Bird <jbird@influxdata.com>

* feat: add tests for influxdb metrics provider

Signed-off-by: Jayme Bird <jbird@influxdata.com>

* feat: add go mod replace for version of moq due to security issue

Signed-off-by: Jayme Bird <jbird@influxdata.com>

* feat: update error message to distinguish failed cases - review feedback

Signed-off-by: Jayme Bird <jbird@influxdata.com>

* feat: update tests to simplify mocking of QueryTableResult

An upstream change to the influx go client makes it easier to mock
QueryTableResult in tests. This removes a lot of boilerplate duplication
in the tests.

Signed-off-by: Jayme Bird <jbird@influxdata.com>

* feat: re-run codegen

Signed-off-by: Jayme Bird <jbird@influxdata.com>
2022-06-23 17:07:39 -04:00
Zach Aller 5c32e84a06
Change bug template to bring inline with argocd (#2096)
* Change bug template to bring inline with argocd?

Signed-off-by: zachaller <zachaller@hotmail.com>

* add back maintainers note

Signed-off-by: zachaller <zachaller@hotmail.com>

* Missed a bit

Signed-off-by: zachaller <zachaller@hotmail.com>

* keep line

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-06-23 09:49:03 -04:00
Andrii Perenesenko 9eef4e27d1
fix: argo-rollouts occasionally crashes in argoproj/pkg (#2111)
* fix: argo-rollouts occasionally crashes in argoproj/pkg

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* fix: argo-rollouts occasionally crashes in argoproj/pkg

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2022-06-23 09:46:05 -04:00
Andrii Perenesenko e53e889b15
fix: High reconciliation activity and CPU load for invalid rollout (#2091)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2022-06-23 09:41:02 -04:00
Zach Aller 24c6aecfb9
Update membership permissions. (#2112)
Add myself (zachaller) and Leo (leoluz) to OWNERS file.

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-06-22 16:15:09 -04:00
schakrad a6dbe0ec2d
feat: ArgoRollouts dashboard now supporting rootpath (#2075)
* fix: add workaround to fix 'stream terminated by RST_STREAM with error code: PROTOCOL_ERROR'

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

* ArgoRollouts dashboard should support rootpath

Signed-off-by: “schakradari” <saisindhu_chakradari@intuit.com>

* fixed camelCase naming

Signed-off-by: “schakradari” <saisindhu_chakradari@intuit.com>

* fixed Lint error

Signed-off-by: “schakradari” <saisindhu_chakradari@intuit.com>

Co-authored-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
Co-authored-by: Remington Breeze <remington@breeze.software>
2022-06-13 11:42:37 -07:00
RaviHari 3f5960efc2
fix: notifications when condition (#2066)
* fix: notifications when condition

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

* fix: trigger check

Signed-off-by: Ravi Hari <ravireliable@gmail.com>
2022-06-06 10:15:51 -07:00
Zach Aller d93b043160
fix: UI codegen (#2072)
Signed-off-by: zachaller <zachaller@hotmail.com>
2022-06-03 12:19:29 -07:00
schakrad 94cdfd5aa4
feature: Dashboard now displaying analysis details (#1910)
Signed-off-by: “schakradari” <saisindhu_chakradari@intuit.com>

Co-authored-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
Co-authored-by: Daniel Helfand <helfand.4@gmail.com>
Co-authored-by: Michael Crenshaw <michael@crenshaw.dev>
Co-authored-by: Tomas Valasek <13797085+tvalasek@users.noreply.github.com>
2022-05-26 11:17:34 -07:00
Zach Aller c5ee361397
docs: add selector to migrating page (#2039)
Signed-off-by: zachaller <zachaller@hotmail.com>
2022-05-25 12:59:46 -07:00
Zach Aller 15df713909
feat: Ability for lint command to inspect referenced resources (#2030)
Signed-off-by: zachaller <zachaller@hotmail.com>
2022-05-25 12:54:11 -07:00
Andrii Perenesenko c757147893
feat: Allow Traffic shaping through header based routing. Fixes #474 (#1990)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
Co-authored-by: zachaller <zachaller@hotmail.com>
2022-05-25 12:51:23 -07:00
Kostis (Codefresh) 59f949c7bb
docs: expose/fix Traefik docs (#2017)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-05-06 09:48:28 -04:00
Thomas Riccardi 85878e63e8
fix important block typo in canary doc (#2016)
Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>
2022-05-06 09:48:01 -04:00
cskh a5c623a9d2
docs: steps to rollback to deployment kinds (#2014)
Signed-off-by: Hui Kang <huikang209@gmail.com>
2022-05-06 01:42:32 -07:00
cskh 97e807e819
chore: update version file to 1.2.0 (#2013)
Signed-off-by: Hui Kang <huikang209@gmail.com>
2022-05-06 01:42:23 -07:00
Alex Collins a21b7e5dec
ci: Auto-cancel redundant builds. (#2002)
Signed-off-by: Alex Collins <alex_collins@intuit.com>
2022-05-05 17:51:51 -07:00
Zach Aller 03636ab130
fix: missing lb event (#2021)
* fix: turn missing load balancer log into an event

Signed-off-by: zachaller <zachaller@hotmail.com>

* consistent naming

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-05-05 01:01:34 -04:00
Daniel Helfand b3647826d5
docs: add WorkloadRef to Rollout spec (#2019)
Signed-off-by: Daniel Helfand <helfand.4@gmail.com>
2022-05-03 22:05:05 -04:00
Philipp Plotnikov b115ea844a
feat: Traefik support. Fixes #516 (#1907)
* Make Traefik suppurt

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Make Traefik suppurt

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Make Traefik suppurt

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Traefik support

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Traefik support

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Update traefik

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Implement traefil support

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* make codegen

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add traefik tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Goimports

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add test to trafiicrouting_test.go

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Remove added test to trafficrouting_test.go

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Generate new files

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Make codegen

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add test

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Change tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add mocks

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Change go.yml

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Back apimachinery package version

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Revert "Back apimachinery package version"

This reverts commit 34c61b8cd7.

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Fix

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Bump

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add field doc

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Make codegen

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Removew verifyWeight and add permissions

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Back go.yml

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Back go.yml

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Change manifests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Fix tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add tests

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add test

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Bump

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Add documentation

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>

* Refactor

Signed-off-by: PhilippPlotnikov <philipp.plotnikov@codefresh.io>

* Bump

Signed-off-by: PhilippPlotnikov <philipp.plotnikov@codefresh.io>

* Refactor

Signed-off-by: PhilippPlotnikov <philipp.plotnikov@codefresh.io>

* Bump

Signed-off-by: PhilippPlotnikov <philipp.plotnikov@codefresh.io>

* Bump

Signed-off-by: PhilippPlotnikov <philipp.plotnikov@codefresh.io>

Co-authored-by: PhilippPlotnikov <70917163+PhilippDeveloper@users.noreply.github.com>
2022-04-29 11:11:11 -07:00
RaviHari f91e3ba067
feat: Allow prometheus server address to be centrally configured (#1956)
Signed-off-by: Ravi Hari <ravireliable@gmail.com>
2022-04-27 23:52:28 -07:00
Zach Aller e42b4d4b9d
fix: Change behavior of rollout to not check for availability during rollout and fix flakey e2e tests (#1957)
This change make it so that we do not care about available pods in the
stable replicaset while checking for step completness during canary rollout
instead we only care that the controller has the desired replica count set
for the stable release ignoring availability.

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-04-20 17:34:04 -07:00
Zach Aller 3321a89aa9
fix: Add pagination to FindLoadBalancerByDNSName (#1971)
* fix: this close issue #1963 by adding pagination to FindLoadBalancerByDNSName

This adds pagination to the FindLoadBalancerByDNSName function this
should allow argo rollouts to work with any number of loadbalancers.

Signed-off-by: zachaller <zachaller@hotmail.com>
2022-04-13 13:22:07 -07:00
Vladimir Ivanov b50a222e1f chore(doc): Sync doc and code comments for the progressDeadlineAbort param
Signed-off-by: Vladimir Ivanov <vladee.ivanov@gmail.com>
2022-04-12 12:37:05 -04:00
Vladimir Ivanov 5d257f78e0 chore(doc): Clarify doc for Rollout.spec.progressDeadlineAbort
Signed-off-by: Vladimir Ivanov <vladee.ivanov@gmail.com>
2022-04-12 12:37:05 -04:00
34FathomBelow a8ae46a7e6
chore: Improve image build speed #1919 (#1948)
* chore: Improve image build speed #2

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* chore: Added test-arm-image test for arm64

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* chore: enabled buildkit for docker build commands

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>

* chore: support for releases and further docker optimizations

Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
2022-04-11 13:01:05 -07:00
Benoit Duverger 633892d59a
chore: Pin golang to 1.17 to avoid CVEs in docker image (#1920)
Signed-off-by: Benoit Duverger <benoit.duverger@gmail.com>
2022-04-11 12:45:27 -07:00
Ansil H 589e89647c fix: Add watch verb to clusterRole for pods
Fixes https://github.com/argoproj/argo-rollouts/issues/1960

Signed-off-by: Ansil H <ansilh@gmail.com>
2022-04-10 15:41:47 -04:00
Zach Aller 4333b4f08d
fix: build/lint is broken due to dependencies changes (#1958)
Signed-off-by: zachaller <zachaller@hotmail.com>
2022-04-05 11:52:41 -07:00
34FathomBelow beae624100
chore: Improve image build speed (#1919)
Signed-off-by: Justin Marquis <34fathombelow@protonmail.com>
2022-04-01 13:56:19 -07:00
Zach Aller 40c22b3679
fix: Use actual weight from status field on rollout object (#1937)
fix: Use actual weight from status field on rollout object (#1937)


Signed-off-by: zachaller <zachaller@hotmail.com>
2022-04-01 10:44:13 -07:00
schakrad e89c97b73f
feature: Dashboard displaying the setCanaryScale values (#1923)
feature: Dashboard displaying the setCanaryScale values (#1923)

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2022-03-30 14:12:44 -07:00
RaviHari 55a041a6b3
feat: Report notification metrics for rollouts (#1856)
feat: Report notification metrics for rollouts (#1856)

Signed-off-by: Ravi Hari <ravireliable@gmail.com>
2022-03-21 18:20:58 -07:00
Jesse Suen 08cf10e554
chore: fix golangci-lint to 1.44 to fix build error (#1917)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-03-21 13:45:35 -07:00
RaviHari 676c8656e1
docs: vpa for rollouts (#1909)
Signed-off-by: Ravi Hari <ravireliable@gmail.com>
2022-03-16 13:35:11 -07:00
schakrad acf805423c
feat: Dashboard now displaying name, specRef and weight in the experimental step. (#1863)
feat: Dashboard now displaying name, specRef and weight in the experimental step. (#1863)

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2022-03-07 12:21:10 -08:00
Tomas Valasek 4d95f6a96d
docs: Add SAP Concur (#1878)
Fixes docs: Add SAP Concur

Signed-off-by: Tomas Valasek tomas.valasek@sap.com
2022-03-07 09:24:43 -08:00
Michael Crenshaw 575a619d68 chore: move dependencies to dev dependencies
Signed-off-by: Michael Crenshaw <michael@crenshaw.dev>
2022-02-25 17:19:48 -05:00
Daniel Helfand 7b690580f6 docs: add community section to README.md
Signed-off-by: Daniel Helfand <helfand.4@gmail.com>
2022-02-21 13:40:39 -05:00
Alexander Matyushentsev d3c305c4ff
fix: add workaround to fix 'stream terminated by RST_STREAM with error code: PROTOCOL_ERROR' (#1862)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2022-02-12 14:25:52 -08:00
schakrad 459112b318
feat: Added delay button in the scaled down revision (#1355) (#1804)
feat: Added delay button in the scaled down revision (#1355) (#1804)

Signed-off-by: “schakradari” <saisindhu_chakradari@intuit.com>
2022-02-09 11:21:08 -08:00
William Van Hevelingen f37166594c docs: Fix codegen of mkdocs.yaml
Signed-off-by: William Van Hevelingen <william.vanhevelingen@acquia.com>
2022-02-05 15:38:52 -05:00
William Van Hevelingen 7a9850e9be docs: Fix lint
Signed-off-by: William Van Hevelingen <william.vanhevelingen@acquia.com>
2022-02-05 15:38:52 -05:00
William Van Hevelingen e3344dca08 docs: Add new line
Signed-off-by: William Van Hevelingen <william.vanhevelingen@acquia.com>
2022-02-05 15:38:52 -05:00
William Van Hevelingen 47973e49d3 docs: Add a toggle for dark mode
Signed-off-by: William Van Hevelingen <william.vanhevelingen@acquia.com>
2022-02-05 15:38:52 -05:00
Leonardo Luz Almeida 2deb9f0d05
chore: fix spdx image generation (#1849)
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2022-02-05 10:10:51 -08:00
Jesse Suen 52b4bd8f4a
chore: fix spdx ci (#1848)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-02-04 21:39:08 -08:00
Leonardo Luz Almeida 00bc97c45e
chore: Generate spdx file for the docker image (#1844)
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2022-02-04 12:58:33 -08:00
dependabot[bot] ae4bf33536
chore(deps): bump github.com/newrelic/newrelic-client-go (#1836)
Bumps [github.com/newrelic/newrelic-client-go](https://github.com/newrelic/newrelic-client-go) from 0.71.0 to 0.72.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v0.71.0...v0.72.0)

---
updated-dependencies:
- dependency-name: github.com/newrelic/newrelic-client-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-04 12:44:11 -08:00
Mohit Kumar Sharma a78640a3f2
docs: Updated the case of properties according to actual property name 2022-02-04 10:19:40 -08:00
dependabot[bot] 7cc2f0de35
chore(deps): bump github.com/aws/aws-sdk-go-v2 dependencies (#1835)
* chore(deps): bump github.com/aws/aws-sdk-go-v2/config

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.13.0 to 1.13.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.13.0...config/v1.13.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): update github.com/aws/aws-sdk-go-v2/service/cloudwatch to v1.15.0

Signed-off-by: Jesse Suen <jesse@akuity.io>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jesse Suen <jesse@akuity.io>
2022-02-04 10:17:23 -08:00
Karol-Szlachta-DM 18677425dc
feat: Add logformat flag to rollouts-controller (#1818)
Signed-off-by: Karol Szlachta <karol.szlachta@datameer.com>
2022-02-03 20:14:23 -08:00
cskh 2fda86a1b1
fix(analysis): surface analysis validation failure to rollout status (#1833)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2022-02-03 20:06:54 -08:00
Andrii Perenesenko 34b4375a07
feat: ping-pong service management (#1697)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2022-02-03 19:31:16 -08:00
Henrik Blixt 85de6598aa
docs: Update security.md (#1840)
Signed-off-by: Henrik Blixt <henrikblixt@gmail.com>
2022-02-03 17:10:23 -08:00
Kiran Meduri 5f0f8b4558
feat: TrafficRouting support with AWS App Mesh (#1401) (#1606)
Signed-off-by: Kiran Meduri <meduri@amazon.com>
2022-02-03 15:16:33 -08:00
Andrii Perenesenko e79296a469
fix: using our own pod template hashing (#1809)
* fix: implement pod template hash calculate function

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* fix: using new hashing for FindNewReplicaSet and other places

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* fix tests

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* fix tests with deprecated hash

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* test TestFindNewReplicaSet, TestHashUtils

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* fix the doc for ComputePodTemplateHash

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* test for ComputePodTemplateHash with collisionCount

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* refactoring avoid double FindNewReplicaSet call: pass newRS as a parameter to the FindOldReplicaSets as it using only right after the FindNewReplicaSet

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* fix time dependent flaky test

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2022-02-02 15:01:34 -08:00
Rohit Agrawal f3889370b1 Added Docs
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-02-01 20:13:00 -05:00
Rohit Agrawal 822a5cf5a2 feat(analysis): Added additional metadata to the status of AnalysisRun
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-02-01 20:13:00 -05:00
Kshama Jain 53643c593f
chore: CVE-2020-26160 (#1829)
chore: CVE-2020-26160 (#1829)

Signed-off-by: kshamajain99 <kshamajain99@gmail.com>
2022-02-01 12:04:41 -08:00
Rohit Agrawal 808fd794f4 feat(experiment): Add Measurements Retention Limit Option for Metrics
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-02-01 14:43:14 -05:00
harikrongali 86dc378cf0
fix: flaky unit test (#1831)
Signed-off-by: hari rongali <hari_rongali@intuit.com>
2022-02-01 10:43:02 -08:00
Leonardo Luz Almeida e7f7e85a66
chore: generate and upload sbom during release (#1834)
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2022-02-01 10:42:27 -08:00
cskh d3275e09d7
fix(canary): scale up and down old replicas (#1824)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2022-01-31 10:27:20 -08:00
Kostis Kapelonis 56a94f4c55 docs: fixed rollout controller link
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-01-31 10:13:50 -05:00
Kostis Kapelonis 74e95f8bd3 docs: mention internal architecture
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-01-31 10:13:50 -05:00
dependabot[bot] 4bb17d7b0f
chore(deps): bump github.com/prometheus/common from 0.21.0 to 0.32.1 (#1604)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.21.0 to 0.32.1.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.21.0...v0.32.1)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-27 21:01:28 -08:00
dependabot[bot] 11cfc3b538
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#1797)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.6.1 to 1.16.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.6.1...service/s3/v1.16.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-27 18:08:15 -08:00
Jesse Suen 85cdf40cbd
fix: client can detect if rollout is in the process of unpausing (#1798)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-27 16:41:34 -08:00
Jesse Suen edfe42e57a
chore(deps): update github.com/miekg/dns for CVE-2019-19794 (#1810)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-27 16:40:15 -08:00
Kostis (Codefresh) 9f3f4c8f48
docs: Added ArgoCon 21 presentation (#1811)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-01-27 14:51:39 -08:00
cskh 91c1eab8ee
fix: remove non-existent target in makefile (#1813)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2022-01-27 14:51:20 -08:00
Jesse Suen fbf680c80e
docs: update membership information (#1814)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-27 14:49:12 -08:00
John Allberg 0309eb6b4a
chore(deps: bump k8s.io/kubernetes with dependencies to v1.23.1. (#1785)
Signed-off-by: John Allberg <john@ayoy.se>
2022-01-25 14:59:07 -08:00
William Van Hevelingen b06e83dfbc
chore: Configure dependabot to ignore k8s dependencies (#1802)
Dependabot does not currently support a depedency grouping feature so in the
meantime we will have dependabot ignore them.

Signed-off-by: William Van Hevelingen <william.vanhevelingen@acquia.com>
2022-01-25 12:08:11 -08:00
Jesse Suen 937448693c
fix: canary replicas/weight could flap during abort with dynamic scaling (#1794)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-25 09:48:22 -08:00
nissy34 a74ad8eb9c
fix: Promote-full with dynamicStableScaling increases weight according to available canary pods. Fixes: #1681 (#1683)
Signed-off-by: Nissan Hefetz <nissy34@gmail.com>
2022-01-21 00:26:55 -08:00
Jesse Suen 6fabe9d31f
fix: plugin panic while watching progress (#1796)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-20 20:37:35 -08:00
dependabot[bot] 030427ec95
chore(deps): bump github.com/aws/aws-sdk-go-v2/config (#1791)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.8.1 to 1.13.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.8.1...v1.13.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 17:20:56 -08:00
Rohit Agrawal 4c9adae82f
chore: Fix istio vs reconcile errors (#1460)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-01-20 15:22:05 -08:00
Remington Breeze 12400538a8
fix(ui): Requesting cluster scoped namespaces does not fail gracefully in UI (#1795)
Signed-off-by: Remington Breeze <remington@breeze.software>
2022-01-20 14:42:34 -08:00
Remington Breeze 86055eefd0
fix(ui): Show container images in dashboard for rollouts with a WorkloadRef (#1792)
Signed-off-by: Remington Breeze <remington@breeze.software>
2022-01-20 14:31:54 -08:00
Remington Breeze 05afadb2f3
fix(ui): Truncate long container names (#1793)
Signed-off-by: Remington Breeze <remington@breeze.software>
2022-01-20 12:59:13 -08:00
dependabot[bot] f5c229b537
chore(deps): bump github.com/antonmedv/expr from 1.8.9 to 1.9.0 (#1712)
Bumps [github.com/antonmedv/expr](https://github.com/antonmedv/expr) from 1.8.9 to 1.9.0.
- [Release notes](https://github.com/antonmedv/expr/releases)
- [Commits](https://github.com/antonmedv/expr/compare/v1.8.9...v1.9.0)

---
updated-dependencies:
- dependency-name: github.com/antonmedv/expr
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 16:40:41 -08:00
Jesse Suen 0041d37848
fix: plugin did not set deployment image when using workloadRef (#1787)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-19 14:55:42 -08:00
Jesse Suen e10d151145
fix: notifications using workloadRef did not have access to pod template (#1786)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-18 22:03:09 -08:00
Jesse Suen 19cbe3442b
fix: delay service injection of selector labels until ReplicaSet available (#1777)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-18 18:35:49 -08:00
Jesse Suen 0d3b000c2f
fix: controller could panic in scaling events with analysis (#1699)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-18 17:59:03 -08:00
Jesse Suen b0ae59adb3
fix: retry Experiment ReplicaSet scaling conflict errors (#1778)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-18 16:15:44 -08:00
harikrongali a051f3838b
docs: fix doc for valueFrom fields for analysis args (#1763)
Signed-off-by: hari rongali <hari_rongali@intuit.com>
2022-01-18 16:06:34 -08:00
Rohit Agrawal 71d746cf30
feat(rollout): AnalysisRuns created by Rollouts can limit retention of metrics (#1780)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-01-18 16:01:56 -08:00
cskh c77f9b54dd
fix: continue update process in middle of update if spec.replicas is 0 (#1764)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2022-01-18 15:08:45 -08:00
icecoffee531 eb4630208f
docs: Add Gllue to list of users (#1745)
Signed-off-by: icecoffee <2335250710@qq.com>
2022-01-14 14:04:42 -08:00
Mubarak Jama bf06d7e7e9
docs: Add Ibotta to the list of users (#1744)
Signed-off-by: Mubarak Jama <mubarak.jama@gmail.com>
2022-01-14 14:03:28 -08:00
Jesse Suen 0f93f9b82e
fix!: improve basic canary approximation accuracy and honor maxSurge (#1759)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-14 13:58:11 -08:00
Jesse Suen 4ee0365464
chore: upgrade k8s libraries to v1.22 (#1773)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-14 13:52:24 -08:00
Jesse Suen f41982075e
fix: status.alb should be optionally populated (#1766)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-13 16:04:40 -08:00
Jesse Suen a4bf576b74
chore: make ci/local codegen consistent (#1772)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2022-01-13 14:36:27 -08:00
Noam Gal 4739bcd2d9
feat(analysis): Allow analysis arguments to get valueFrom Rollout status (#1242) (#1629)
* use objx to read value from Rollout manifest

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* handle `[]` annotation correcly in BuildArgumentsForRolloutAnalysisRun

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* validate valueFrom correctly

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* use jsonpath instead of objx
return err if path is inavlid in runtime (don't check in validation time)

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* parse path in code, instead of using jsonPath

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* fixed test

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* updated documentation

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* added tests for coverage

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* fixed lint

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* added another test case

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* fixed case when path ends with "]"

Signed-off-by: Noam Gal <noam.gal@codefresh.io>

* removed objx dependency

Signed-off-by: Noam Gal <noam.gal@codefresh.io>
2022-01-12 12:40:37 -08:00
Kostis (Codefresh) 7f65b2baa9
docs: mention default notification templates (#1725)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2022-01-12 12:40:16 -08:00
RaviHari b83307370d
docs: Add notiication templates for rollouts and analysis (#1753)
* docs: Add notiication templates for rollouts and analysis

Signed-off-by: Ravi Hari <ravireliable@gmail.com>

* docs: update installation files

Signed-off-by: Ravi Hari <ravireliable@gmail.com>
2022-01-12 12:39:58 -08:00
cskh 649aa555fe
fix: missing array type in the CRD rollout's spec volumes (#1737)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2022-01-12 12:05:12 -08:00
Rohit Agrawal 75c2861eec
feat(analysis): Add Measurements Retention Limit Option for Metrics (#1729)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2022-01-12 12:00:51 -08:00
cskh d1eef41f92
docs: clarify the setCanaryScale of dynamic canary scale (#1703)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2022-01-12 11:59:27 -08:00
Andrii Perenesenko 03e75f950b
fix: traffic routed canary would flap traffic to stable after last step (#1757)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2022-01-12 11:57:43 -08:00
Mubarak Jama e2201d0e4e
docs(controller): remove duplicate sentence. (#1756)
Signed-off-by: Mubarak Jama <mubarak.jama@gmail.com>
2022-01-11 09:54:36 -08:00
Michael Crenshaw 200b045320
chore: update docs for minikube 1.19 (#1746)
Signed-off-by: Michael Crenshaw <michael@crenshaw.dev>
2022-01-05 13:52:42 -08:00
Charles Guertin 0bc05926a3
fix(plugin): Fixes arm64 compatibility to plugin docker image. Fixes #1728 (#1732)
Signed-off-by: Charles Guertin <charlesguertin@live.ca>
2022-01-04 10:17:29 -08:00
cskh 04494ef6d2
fix: e2e istio crd; deprecated apiextensions/v1beta1 (#1740)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2022-01-04 09:03:14 -08:00
Ben Poland c291d2de76
fix: dashboard promote buttons disabled during deploy (#1669)
- keep promote and abort buttons enabled while deploying
- disable them at all other times
- also, only enable retry button when Rollout is degraded

Fixes https://github.com/argoproj/argo-rollouts/issues/1581

Signed-off-by: Ben Poland <ben.poland@faire.com>
2022-01-03 16:12:22 -08:00
cskh a3477cfbb8
fix: leaderelection uses the lock in the same ns as the controller (#1717)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-12-21 11:13:05 -08:00
RaviHari 5b140c97c5
fix: Enable default triggers for argo rollouts (#1689)
fix: Enable default triggers for argo rollouts (#1689)

Signed-off-by: Ravi Hari <ravireliable@gmail.com>
2021-12-15 10:42:03 -08:00
dependabot[bot] 061efd4a52
chore(deps): bump codecov/codecov-action from 2.0.3 to 2.1.0 (#1508)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.0.3...v2.1.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-14 10:06:06 -08:00
dependabot[bot] 294d7a1156
chore(deps): bump github.com/evanphx/json-patch/v5 from 5.2.0 to 5.6.0 (#1603)
Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.2.0 to 5.6.0.
- [Release notes](https://github.com/evanphx/json-patch/releases)
- [Commits](https://github.com/evanphx/json-patch/compare/v5.2.0...v5.6.0)

---
updated-dependencies:
- dependency-name: github.com/evanphx/json-patch/v5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-14 10:05:40 -08:00
Kostis (Codefresh) 918153af73
docs: Use readthedocs versionining. Closes #1518 (#1671)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-12-14 09:59:46 -08:00
cskh e243276b10
docs: fix some vague description about analysis arguments (#1672)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-12-14 09:59:12 -08:00
Rohit Agrawal 15096f3a53
feat(experiment): Added DryRun analysis mode functionality for experiments (#1691)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-12-14 09:57:53 -08:00
Piyush Baderia 5f6187c99f
chore(docs): Updated FAQs (#1695)
Signed-off-by: Piyush Baderia <piyush.baderia@outlook.com>
2021-12-14 09:52:21 -08:00
Kostis (Codefresh) 6d4174b8e7
docs: Clarify application dependencies (#1706)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-12-14 09:51:47 -08:00
Sebastian J 5e188f94ac
fix(controller): Sticky session correction for AWS ALB. Fixes #1572 (#1577)
* fix: use patch to update workload-generation annotation

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

* Add support for AWS ALB TargetGroupStickinessConfig

Adds support for AWS ALB [TargetGroupStickinessConfig](https://aws.amazon.com/blogs/aws/new-application-load-balancer-simplifies-deployment-with-weighted-target-groups/)

This is required to support sticky session on the listener level while Argo is using ALB's weighting

Signed-off-by: Sebastian J <zeeman@zeeman.de>

* Remove code smells

Signed-off-by: Sebastian J <zeeman@zeeman.de>

* more code smells

Signed-off-by: Sebastian J <zeeman@zeeman.de>

* PR feedback

Signed-off-by: Sebastian J <zeeman@zeeman.de>

* Revert

Signed-off-by: Sebastian J <zeeman@zeeman.de>

* Another test round

Signed-off-by: Sebastian J <zeeman@zeeman.de>

* Force codegen GO 1.16

Forced codegen via downgrading to Go 1.16:

```
$ env|grep GO

GOPATH=/Users/sebastian/go
```

```
$ go version

go version go1.16.10 darwin/amd64
```

```
$ echo $PATH

/Users/sebastian/.sdkman/candidates/micronaut/current/bin:/Users/sebastian/.sdkman/candidates/java/current/bin:/Users/sebastian/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/MacGPG2/bin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/bin:/Users/sebastian/go/bin
```

Signed-off-by: Sebastian J <zeeman@zeeman.de>

* Added documentaiton

Signed-off-by: Sebastian J <zeeman@zeeman.de>

Co-authored-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-12-13 20:54:57 -08:00
Alexander Matyushentsev 3c1e87c95c
chore: fix flaky TestAbortRolloutAfterFailedExperiment test (#1710)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-12-13 13:59:22 -08:00
Alexander Matyushentsev b3d50d1583
refactor: stop using mpatch (#1654)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-12-11 15:04:50 -08:00
Jesse Suen 271c3c00ef
fix: missing rollout informer writeback (#1698)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2021-12-11 13:32:44 -08:00
cskh c67735a7df
chore: pin sys module in go.mod to resolve a fatal runtime execution in go 1.17 (#1692)
* chore: pin sys module to resolve a fatal runtime execution in go 1.17

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

* go mod tidy

Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-12-10 15:27:23 -08:00
Alexander Matyushentsev ba936364e2
fix: use patch to update workload-generation annotation (#1678)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-12-10 13:53:18 -08:00
Jesse Suen 4d3b9925bc
feat: increase default QPS/Burst to 40/80. Allow values to be tunable (#1679)
Signed-off-by: Jesse Suen <jesse@akuity.io>
2021-12-03 10:16:44 -08:00
cskh 0f277ac6b8
docs(analysis): add missing explanation about failureLimit (#1674)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
Co-authored-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-12-02 14:15:17 -08:00
Rohit Agrawal ec3d3834ff
feat(analysis): Add Dry-Run Mode (#1627)
dryRun can be used on a metric to control whether or not to evaluate that metric in a dry-run mode. A metric running
in the dry-run mode won't impact the final state of the rollout or experiment even if it fails or the evaluation comes
out as inconclusive.

Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-12-02 09:59:25 -08:00
Andrii Perenesenko 9d32c13c4e
fix: sending updates to dashboard when a pod terminates (#1642)
* fix: sending updates to dashboard when a pod terminates

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>

* Fix imports

Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-11-30 13:02:13 -08:00
Siddharth Maloo 47d59fa985
feat: added Argo version info in /metrics endpoint (#1662)
Signed-off-by: Siddharth Maloo <smaloo@salesforce.com>
2021-11-19 14:42:57 -08:00
Yuan Tang ca3ccd01c1
docs: Add link to awesome-argo for more resources (#1622)
* docs: Add link to awesome-argo for more resources

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>

* Retrigger CI pipeline

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
2021-11-19 12:50:36 -08:00
cskh 615bce3947
fix: reset the progress condition when a pod is restarted (#1649)
fix: reset the progress condition when a pod is restarted (#1649)

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

Co-authored-by: Hui Kang <hui.kang@salesforce.com>
Co-authored-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-11-19 11:07:38 -08:00
Rohit Agrawal 55c70a140d
fix: Fixed NPE while getting the ReplicaSet labels (#1664)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-11-18 10:54:13 -08:00
Kareena Hirani 7fcea513d2
fix: add service delete to argo-rollouts role (#1632)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-11-18 10:46:17 -08:00
Kareena Hirani 74e4be494d
fix: Modify Experiment collision naming from dot-notation to dash (#1646)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-11-18 10:45:57 -08:00
Kareena Hirani 30f0e7d71c
fix: Wait for all canary pods to come up in TrafficRouting canary before switching traffic (#1663)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-11-18 10:45:40 -08:00
Kareena Hirani 6edc9c8164
fix: Route traffic to Experiment even if Canary RS not scaled (#1638)
* fix: Route traffic to Experiment even if canary RS not scaled

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-11-16 10:33:48 -08:00
Noam Gal 0a4f0d7a5b
feat(alb): Surface ALB information into rollout status (#1241) (#1625)
feat(alb): Surface ALB information into rollout status (#1241) (#1625)
Signed-off-by: Noam Gal <noam.gal@codefresh.io>
2021-11-16 10:20:05 -08:00
Kareena Hirani b80b563314
feat: Istio Subset-Level TrafficRouting with experiment step (#1602)
* feat: Istio Host-level TrafficRouting with experiment step

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-11-15 12:11:02 -08:00
Rohit Agrawal cac717c74c
fix(docs): Remove Non-Existent Metrics From Docs (#1650)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-11-12 17:16:33 -08:00
Leonardo Luz Almeida 11fc42cf9f
fix: nginx traffic router patching wrong ingress resource (#1655)
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2021-11-12 14:51:38 -08:00
Rohit Agrawal f77b2c5936
fix(e2e): DeFlake E2E Tests #1647 (#1648)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-11-11 09:36:37 -08:00
cskh dc1c11bdf1
chore: update k8s pkg to resolve vulnerabilities (#1545)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-11-08 15:34:15 -08:00
cskh 2e401897d3
fix: validate service selctor labels matching rollout template labels (#1618)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-11-08 14:32:17 -08:00
Yash Mehrotra 3ad0417c01
feat(manifests): Add Age column to all CRD(s). Fixes #1511 (#1527)
Signed-off-by: Yash Mehrotra <yashmehrotra95@gmail.com>
2021-11-08 14:28:35 -08:00
cskh 75cdde7606
fix: inconsistent status command output (#1433)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-11-05 11:53:33 -07:00
cskh 6b2b375d50
feat: add healthz probe port and update the install.yaml (#1578)
* feat: add healthz probe port and update the install.yaml

- distinguish between exposed healthz port and metrics port
- liveness probe uses healthz port
  readiness probe uses metrics port
  In HA mode, only the primary instance is ready to accept request
  and the metrics queries

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

* Expose empty metrics if the controller is secondary/backup

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

* Add unit test

- Primary controller, secondary controller, NewManager test

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

Co-authored-by: Hui Kang <hui.kang@salesforce.com>
2021-11-04 10:42:52 -07:00
Flávio Lemos 9d2ccb9f1e
fix: rollout experiment template changing reference rs template labels. Fixes #1596 (#1597)
* fix: rollout experiment template changing reference rs template labels

Signed-off-by: Flavio Lemos <flavio.lemos@farfetch.com>

* docs: Add Farfetch to USERS.md

Signed-off-by: Flavio Lemos <flavio.lemos@farfetch.com>
2021-11-02 17:08:39 -07:00
Noam Gal fe87bdd584
feat(webmetric): Support POST/PUT content with web metrics. Fixes #371 (#1573)
feat(webmetric): Support POST/PUT content with web metrics. Fixes #371 (#1573)

Signed-off-by: Noam Gal <noam.gal@codefresh.io>
2021-10-31 21:06:09 -07:00
Noam Gal b6f0182fb6
minor mis-type fix, and formatting (#1613)
Signed-off-by: Noam Gal <noam.gal@codefresh.io>
2021-10-31 20:17:53 -07:00
Kiran Meduri fe2c68b336
fix: Handle minor version with '+' when determining ingress mode (#1529) (#1612)
Signed-off-by: Kiran Meduri <meduri@amazon.com>
2021-10-28 09:37:18 -07:00
Leonardo Luz Almeida ac155f1b26
feat: support Ingress from Networking API version (#1529)
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2021-10-26 01:12:10 -07:00
FBLGit a398ff9cc0
feat(controller): multiple TrafficRoutingReconciler (#1472)
Signed-off-by: fblgit <info@fblnet.net>
2021-10-25 17:04:28 -07:00
Kareena Hirani 345b2d4fd9
feat: Istio Host-level TrafficRouting with experiment step (#1569)
* feat: Istio Host-level TrafficRouting with experiment step

Signed-off-by: khhirani <kareena.hirani@gmail.com>

* Remove comments

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-10-22 16:04:23 -07:00
Yuan Tang d83543a8f5
docs: Add Akuity to the list of users (#1598)
Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
2021-10-20 09:40:53 -07:00
Andrii Perenesenko 551f89e27c
fix: release the dashboard-install.yaml (#1601)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-10-20 09:40:25 -07:00
cskh 76c1b3ef3c
fix: viewcontroller gorouting leak in status and get subcommand (#1584)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-10-17 10:07:33 -07:00
Kostis (Codefresh) f07de59893
docs: Added readthedocs configuration (#1528)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-10-12 12:33:41 -07:00
John Huynh 73997ee3ae
docs: example data is used in both examples (#1570)
Signed-off-by: John Huynh <johnhuynh@admins-MacBook-Pro.local>
2021-10-12 12:32:41 -07:00
cskh 99c15661d8
feat: HA Leader election support on rollouts-controller (#1519)
Signed-off-by: caoyang001 <caoyang001@foxmail.com>
Signed-off-by: Hui Kang <hui.kang@salesforce.com>

Co-authored-by: caoyang001 <caoyang001@foxmail.com>
Co-authored-by: Hui Kang <hui.kang@salesforce.com>
Co-authored-by: William Van Hevelingen <William.VanHevelingen@acquia.com>
2021-10-12 11:50:16 -07:00
Ryan M Smith ff3471a2fc
feat: add default() evaluate helper. allow empty datadog result. Fixes #1548 (#1551)
Signed-off-by: Ryan M Smith <rms1000watt@gmail.com>
2021-10-11 10:29:30 -07:00
cskh 7c7774434f
fix: change virtualService to pointer (#1558)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-10-02 15:47:23 -07:00
Andrii Perenesenko c7e8084702
fix: Istio does not switch the traffic. Fix the VS new object creation when the tls routes nil (#1553)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-09-29 10:47:50 -07:00
Jesse Suen 9dc13e51e9
docs: update CHANGELOG.md for v1.1 release (#1533)
Signed-off-by: Jesse Suen <jessesuen@gmail.com>
2021-09-29 10:41:51 -07:00
cskh c46c11bb26
docs: clarify the service in notificatioin.md (#1546)
- template and trigger should be included in the argo-rollouts-notification-configmap
- add debug message for missing notification message

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

Co-authored-by: Hui Kang <hui.kang@salesforce.com>
2021-09-28 08:28:43 -07:00
harikrongali 26433beca9
Fix: Failed analysis to degrade rollout when multiple metrics are analyzed (#1535)
* fix: analysis fail for inline multi metric analysis

Signed-off-by: hari rongali <hari_rongali@intuit.com>

* fix: cleanup

Signed-off-by: hari rongali <hari_rongali@intuit.com>
2021-09-23 14:02:46 -07:00
Noam Gal 1ea418da73
fix(metricproviders): Check and handle invalid server URL. Fixed #1444 (#1534)
fix(metricproviders): Check and handle invalid server URL. Fixed #1444 (#1534)

Signed-off-by: Noam Gal <noam.gal@codefresh.io>
2021-09-22 15:29:33 -07:00
Alexander Matyushentsev 4c08f7ea70
chore: publish notifications-install.yaml and rollout_cr_schema.json as part of release (#1532)
* chore: publish notifications-install.yaml and rollout_cr_schema.json as part of release

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

* chore: temporarily disable ghcr.io image pushing

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-09-21 18:35:58 -07:00
Jesse Suen 625e8a0d64
chore: temporarily disable ghcr.io image pushing (#1530)
Signed-off-by: Jesse Suen <jessesuen@gmail.com>
2021-09-21 12:25:45 -07:00
Jesse Suen c1353e4a44
feat: support dynamic scaling of stable ReplicaSet as inverse of canary weight (#1430)
Signed-off-by: Jesse Suen <jessesuen@gmail.com>
2021-09-21 01:48:13 -07:00
Kostis (Codefresh) bab546dce4
docs: document shell completion feature (#1509)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-09-20 10:57:22 -07:00
Kostis (Codefresh) 915c91a4a0
docs: make it clear that kustomize is required for unit tests (#1484)
* docs: make it clear that kustomize is required for unit tests

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

* docs: make it clear that kustomize is required for unit tests

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-09-20 10:57:08 -07:00
Kareena Hirani 0f4779663d
docs: experiment step with traffic routing (#1469)
* docs: experiment step with traffic routing

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-09-20 10:41:09 -07:00
Mike Ball 7c540906f3
feat: add support for Graphite metrics provider (#1406)
Signed-off-by: Mike Ball <mikedball@gmail.com>
2021-09-20 03:13:07 -07:00
Kostis (Codefresh) d9ba36a097
feat: create windows version for CLI (#1517)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-09-20 01:39:08 -07:00
cskh 01879e474d
docs: fix missing link in toc (#1464)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-09-15 10:28:51 -07:00
ryota-sakamoto 180b6fb7ec
feat: Support CloudWatch as a metric provider (#1338)
Signed-off-by: Ryota Sakamoto <sakamo.ryota+github@gmail.com>
2021-09-15 01:29:22 -07:00
Leonardo Luz Almeida ebd6cbddce
fix: promote nil pointer error when there are no steps (#1510)
Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
2021-09-15 01:23:29 -07:00
Kostis (Codefresh) ea1b8ea8c9
feat: provide shell completion. Closes #619 (#1478)
* feat: provide shell completion. Closes #619

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>

* docs: autogenerated CLI navigation page

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-09-13 11:14:45 -07:00
Jesse Suen c7933eb974
fix: target group verification did not work with named ports (#1485)
fix: target group verification did not work with named ports (#1485)

Signed-off-by: Jesse Suen <jessesuen@gmail.com>
2021-09-10 10:06:02 -07:00
cskh 2d3cd2a795
fix: create analysisrun cmd using template generated name (#1471)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-09-10 01:46:39 -07:00
cskh 8ece7fbedd
docs: analysis results - handling empty array (#1481)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-09-09 08:57:56 -07:00
Jesse Suen 9a9b0cdfc0
fix: replicaset count would flap when interrupting update with new pod spec (#1479)
Signed-off-by: Jesse Suen <jessesuen@gmail.com>
2021-09-09 08:53:20 -07:00
Darshan Hassan Shashikumar 8c3e1a299b
feat: support management of multiple Istio VirtualService objects (#1381)
Signed-off-by: Darshan Hassan Shashikumar <dhassanshashikumar@dhassan-ltma99l.internal.salesforce.com>
Signed-off-by: Darshan Hassan Shashikumar <62122269+darshanhs09@users.noreply.github.com>
2021-09-08 10:12:40 -07:00
Remington Breeze f3af58a33b
feat: Refactor dashboard code for use by Extension (#1467)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-09-07 11:18:00 -07:00
cskh ba9af78cff
feat: kustomize rollout: add openapi to doc and examples (#1371)
feat: kustomize rollout: add openapi to doc and examples (#1371)

- openAPI schema for kustomize rollout

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

Co-authored-by: Hui Kang <hui.kang@salesforce.com>
Co-authored-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-09-03 12:04:54 -07:00
Kareena Hirani 1353526dce
fix: add service create to argo-rollouts role (#1462)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-09-02 16:02:40 -07:00
Rohit Agrawal c72a354d1f
chore: Fix istio vs validation reference errors (#1454)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-08-29 00:05:38 -07:00
cskh 189ed2a1d8
chore: fix missing container in set image example text (#1455)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-08-29 00:03:06 -07:00
Kareena Hirani 89062e3858
TrafficRouting ALB Step in Canary (#1394)
* feat: ALB TrafficRouting with experiment step

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-08-26 19:29:15 -07:00
Jesse Suen 2565c87942
feat: verify AWS TargetGroup after updating active/stable services (#1348)
Signed-off-by: Jesse Suen <jessesuen@gmail.com>
2021-08-26 13:07:01 -07:00
c1_zh 1cb9232d09
docs: fix typo in installation.md (#1450)
Signed-off-by: cezhang <ce.zhang159357@gmail.com>
2021-08-26 01:12:38 -07:00
harikrongali ea772f795c
fix: replica count for new deployment (#1449)
fix: replica count for new deployment (#1449)

Signed-off-by: hari rongali <hari_rongali@intuit.com>
2021-08-25 22:17:19 -07:00
Kareena Hirani 7bd455f70a
fix: Nginx ingressClassName passed to canary ingress (#1448)
* fix: nginx ingressClassName passed to canary ingress

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-08-25 13:34:24 -07:00
Kareena Hirani a601a0c18e
fix: Analysis argument validation (#1412)
* fix: Analysis argument validation

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-08-25 12:41:21 -07:00
dependabot[bot] 37d0c4b376
chore(deps): bump codecov/codecov-action from 1 to 2.0.3 (#1446)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1 to 2.0.3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1...v2.0.3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-25 00:15:24 -07:00
Rohit Agrawal 61416857c2
docs: Add some more explanation around TLS routes in Istio-based Rollouts README (#1414)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-08-24 16:07:04 -07:00
dependabot[bot] 74c7681c65
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 (#1435)
Bumps [github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2](https://github.com/aws/aws-sdk-go-v2) from 1.0.0 to 1.6.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.0.0...config/v1.6.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-24 16:05:00 -07:00
Reshma Chowdary Morampudi 601174abc1
fix: Remove the type from the resource name (#1265)
Signed-off-by: reshma-morampudi <reshma.morampudi@salesforce.com>
Signed-off-by: Jesse Suen <jessesuen@gmail.com>

Co-authored-by: Jesse Suen <jessesuen@gmail.com>
2021-08-24 15:19:17 -07:00
Alexander Matyushentsev f9d29403fe
chore: skip e2e only if workflow started manually with debug enabled (#1441)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-08-23 16:00:28 -07:00
Kareena Hirani 986d4b045d
feat: TrafficRouting SMI with Experiment Step in Canary (#1351)
* feat: Allow Experiment step in TrafficRouting for SMI

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-08-23 14:07:51 -07:00
harikrongali 7c6a0c519f
fix: canary scaledown event could violate maxUnavailable (#1429)
Signed-off-by: hari rongali <hari_rongali@intuit.com>
2021-08-23 13:12:07 -07:00
cskh 17a21582dc
feat: ability to abort an update when exceeding progressDeadlineSeconds (#1397)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-08-23 13:01:08 -07:00
Remington Breeze be80cb8a76
chore: Bump argo-ui version (#1437)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-08-20 12:37:10 -07:00
Volodymyr 601503be98
docs: small typo (#1428)
Signed-off-by: Volodymyr Shynkar <vshynkar-ecw@cricut.com>
2021-08-19 20:57:55 -07:00
Jesse Suen a3e4feb7a2
docs: add @huikang as a reviewer (#1432)
Signed-off-by: Jesse Suen <jessesuen@gmail.com>
2021-08-19 10:56:47 -07:00
Kostis (Codefresh) 0b707757f5
docs: clarify analysis. Fixes #1234 (#1400)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-08-17 11:31:33 -07:00
cskh ba01a14e1e
docs: clarify the setCanaryScale bahavior (#1424)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-08-17 01:20:15 -07:00
harikrongali 85ed2b9c1b
fix: analysis runs to wait for all metrics to complete (#1407)
Signed-off-by: hari rongali <hari_rongali@intuit.com>
2021-08-17 01:18:45 -07:00
Kareena Hirani 33cbe1a90a
ci: add debug step to workflow (#1374)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-08-17 01:12:08 -07:00
Kostis (Codefresh) 2005eca699
docs: Clarify quay releases. Fixes #1408 (#1421)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-08-17 00:40:40 -07:00
cskh bf279c36fa
fix: missing e2e test for istio tls route in rollout (#1419)
- remove localhost in example as incompabile with virtual host

Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-08-17 00:40:19 -07:00
cskh de4b7e3ead
fix: remove unused ServiceNotFound condition (#1423)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-08-17 00:39:17 -07:00
cskh 53b1996824
fix: nil pointer in create analysisrun cmd (#1399)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-08-13 13:04:43 -07:00
Rohit Agrawal 86107dee01
feat: add support for Istio VirtualService spec.tls[] (#1380)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-08-12 01:16:46 -07:00
dabaooline cf19b5b880
docs: add custom namespace name tips (#1354) 2021-08-06 03:19:37 -07:00
Jesse Suen 7a0704a841
fix: retarget blue-green previewService before scaling up preview ReplicaSet (#1368)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-08-06 03:15:18 -07:00
Andrii Perenesenko ffe70da230
feat: configurable and more aggressive cleanup of old AnalysisRuns and Experiments (#1342)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-08-04 21:16:58 -07:00
cskh 2620490c9a
chore: Raname variables, import pkg for clarification (#1313)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-08-03 00:42:03 -07:00
Jesse Suen 9e23f78642
chore: release workflow docker build context should use local path and not git context (#1388)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-08-02 19:38:09 -07:00
Jesse Suen 2600c6a368
chore: github release action was using incorect docker cache (#1387)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-08-02 16:37:36 -07:00
Jesse Suen ff3569dc39
fix: Promote full did not work against BlueGreen with previewReplicaCount (#1384)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-07-30 16:25:37 -07:00
Jesse Suen 43eaf3c9f4
fix: nil pointer dereference when reconciling paused blue-green rollout (#1378)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-07-29 14:44:41 -07:00
Rohit Agrawal 776c914a27
chore: Update USERS.md by adding Databricks (#1379)
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
2021-07-29 12:13:05 -07:00
Jesse Suen 08ccedcebc
fix: zero-value abortScaleDownDelay was not honored with setCanaryScale (#1375)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-07-29 11:00:15 -07:00
Kareena Hirani e5a933d93f
chore: Add logging step to workflow for failed e2e tests (#1373)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-07-27 14:46:07 -07:00
Daman Arora 80934e51a9
docs: minor grammar corrections (#1363)
Signed-off-by: Damans227 <61474540+Damans227@users.noreply.github.com>
2021-07-27 10:42:43 -07:00
cskh 2f0800e919
fix: add missing notification secret to suppress error message (#1366)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-07-27 05:38:50 -07:00
Saradhi Sreegiriraju e3dc6af9e0
chore: Alphabetize USERS.md (#1369) 2021-07-26 10:39:45 -07:00
csamant-salesforce 6fb2bcc99c
fix: Abort rollout doesn't remove all canary pods for setCanaryScale (#1352)
Signed-off-by: Chinmoy Samant <chinmoy.samant@csamant-ltm1.internal.salesforce.com>
2021-07-26 10:34:14 -07:00
Jesse Suen d2753c23a4
fix: unsolicited rollout after upgrade from v0.10->v1.0 when pod was using service account (#1367)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-07-22 15:05:15 -07:00
Kareena Hirani 0c559a006e
feat: ability to auto-create Services for each template in an Experiment (#1158)
* feat: Modify Experiment Controller to auto-create service for each Experiment Template

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-07-21 13:11:05 -07:00
cskh 68cbef9930
feat: introduce abortScaleDownDelaySeconds to control scale down of preview/canary upon abort (#1160)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-07-19 13:02:52 -07:00
Yuan Tang 6fd6b39b7a
docs: Add Alibaba and Ant Group to USERS.md (#1357)
Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
2021-07-19 12:56:08 -07:00
Andrii Perenesenko de0d8e0dd2
fix: Show individual rollout in other namespace (#1344)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-07-14 14:00:06 -07:00
cskh 21c782646f
feat: add rollout stat row to grafana dashboard (#1343)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-07-14 11:48:56 -07:00
Mehmet Hatip 4a7978f8f1
fix: make image using Dockerfile.dev works (#1296)
Signed-off-by: Mehmet Hatip <mbhatip@gmail.com>
2021-07-14 11:47:26 -07:00
cskh c6d7ff059b
fix: abort scaledown stable RS for canary with traffic routing (#1331)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-07-13 11:04:52 -07:00
Alix Cook e6bae87e84
feat: argo rollout compatibility with emissary and edge stack v2.0 (#1330)
Signed-off-by: Alix Cook <alixcook@datawire.io>
2021-07-09 13:10:42 -07:00
Kostis (Codefresh) f628aa6ba5
docs: Link examples in documentation. Fixes #1233 (#1279)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-07-09 11:51:19 -07:00
Shakti Das ba21c6caca
feat: Add support for Istio multicluster (#1274)
Signed-off-by: Shakti <shaktiprakash.das@salesforce.com>
2021-07-08 12:46:18 -07:00
cskh 503c5209eb
chore: add liveness and readiness probe to the install manifests (#1324)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-07-07 05:21:24 -07:00
cskh a2c6b11a3c
fix: lint subcommand for workload ref rollout (#1328)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-07-07 05:20:04 -07:00
cskh 2339ddc250
feat: add workload-ref/generation to rollout (#1198)
- Add a "rollout.argoproj.io/workload-generation" annotation to the rollout metadata, which equals to the generation of reference workload
- workload-generation is updated when the referenced workload is updated.
- status.workloadObservedGeneration records the observed generation of the rollout

Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-07-07 05:18:54 -07:00
Jesse Suen d4c8aabf92
fix: github action to publish docs using incorrect make target (#1322)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-07-02 17:10:33 -07:00
Jesse Suen 2eb385d3fc
fix: fix mkdocs site generation. update CHANGELOG/VERSION (#1321)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-07-02 16:51:04 -07:00
Kostis (Codefresh) 699ca23975
docs: Preview docs locally. Fixes #1319 (#1320)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-07-02 13:03:57 -07:00
cskh 335326b4e2
fix: default replica before resolving workloadRef (#1304)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-07-02 13:02:01 -07:00
cskh 460262ee35
fix: missing rbac for configmaps (#1315)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-30 10:43:36 -07:00
cskh 255ce28d30
fix: remove unused field in Manager struct (#1308)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-28 10:12:45 -07:00
Ardi Mehist 50d28ee8c4
docs: update users list (#1307)
Signed-off-by: Ardi Mehist <ardi@mehist.com>
2021-06-25 11:13:26 -07:00
Jason Keene e1840b58a7
docs: list new metric provider integrations (#1281)
Signed-off-by: Jason Keene <jasonkeene@gmail.com>
2021-06-24 12:17:48 -07:00
cskh a2de875207
fix: undo referenced object for workloadRef rollout (#1275)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-24 12:03:12 -07:00
cskh 72f85a6087
fix: remove unused code of crd generation (#1288)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-24 11:54:13 -07:00
Andrii Perenesenko 69009885ff
feat: allow selection of namespace in rollout dashboard (#1291)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

Co-authored-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-06-24 10:35:12 -07:00
Alexander Matyushentsev 96ba0302f4
feat: support notifications on rollout events using notifications-engine (#1175)
feat: support notifications on rollout events using notifications-engine (#1175)

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-06-17 17:06:08 -07:00
Remington Breeze e2f87a42a6
fix(ui): UI crashes on rollout view due to undefined status (#1287)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-06-17 12:58:22 -07:00
Jesse Suen 7a23fe5dbf
feat: allow VirtualService HTTPRoute to be inferred if there is single route (#1273)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-06-15 12:27:47 -07:00
Kareena Hirani fe4bb1bc93
fix: rollout paused longer than progressDeadlineSeconds would briefly degrade (#1268)
* Do not exit status cmd for ProgressDeadlineExceeded error

Signed-off-by: khhirani <kareena.hirani@gmail.com>

* Do not return status if RO is paused in sync.go

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-06-11 18:13:45 -07:00
cskh fa865d3d10
fix: controller would drop fields when updating DestinationRules (#1253)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-10 18:01:01 -07:00
Kostis (Codefresh) 02e10d884f
docs: always mention latest manifest. Fixes #1262 (#1269)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-06-10 11:09:37 -07:00
Kostis (Codefresh) b39f4cf680
docs: Mention Helm support. Fixes #1119 (#1211)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-06-10 02:08:51 -07:00
Nuno Sousa 725cb88a29
fix: Correct typo on FAQ page (#1252)
Signed-off-by: Nuno <nuno.sousa@outsystems.com>
2021-06-10 02:06:28 -07:00
Andrii Perenesenko 69c52a7ea4
feat: rollouts dashboard-install manifests (#1240)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-06-09 15:20:58 -07:00
cskh 99bd90e5c8
fix: the wrong panel title on the sample dashboard (#1260)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-09 12:52:40 -07:00
cskh 01fee15e66
fix: avoid using root user in plugin container (#1256)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-08 19:02:52 -07:00
harikrongali 3929fb940a
fix: analysis with multiple metrics (#1261)
Signed-off-by: hari rongali <hari_rongali@intuit.com>
2021-06-08 18:59:13 -07:00
Mark Robinson 79739fdfd7
fix: Mitigate the bug where items are re-added constantly to the workqueue. #1193 (#1243)
This will prevent argo from hanging for up to 16 minutes at a time while processing a rollout.

Signed-off-by: Mark Robinson <mrobinson@plaid.com>
2021-06-08 18:57:51 -07:00
cskh d9d1237430
fix: workload rollout spec is invalid template is not empty (#1224)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-03 16:27:39 -07:00
Kareena Hirani c68f3dfc0c
fix: Fix error check in validation for AnalysisTemplates not found (#1249)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-06-03 00:55:57 -07:00
cskh ccff157410
docs: fix missing fields in canary spec (#1236)
- ScaleDownDelaySeconds and ScaleDownDelayRevisionLimit
  for canary

Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-02 17:16:41 -07:00
cskh 3932653e00
fix: make function call consistent with otherRSs definition (#1171)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-06-02 16:45:00 -07:00
Ajay Kemparaj 04201fb068
docs: examples/workload-ref/workload image to dockerhub registry (#1227)
Signed-off-by: ajayk <ajaykemparaj@gmail.com>
2021-05-28 15:20:45 -07:00
Kareena Hirani ff65b39f21
fix: Modify validation to check Analysis args passed through RO spec (#1215)
* fix: Modify validation to check Analysis args passed through RO spec

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-05-25 15:02:49 -07:00
Kareena Hirani 849f77eefe
fix: AnalysisRun args could not be resolved from secret (#1213)
* fix: Fix ValueFrom resolution and validation in AnalysisTemplate
2021-05-24 15:50:05 -07:00
Sagarpreet a2a9f3549a
docs: (istio.md): correct the comment in DestinationRule (#1217) 2021-05-24 10:50:54 -07:00
Andrii Perenesenko 9a028d124d
feat: WebMetric to support string body responses (#1212)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-05-21 18:05:37 -07:00
Kostis (Codefresh) 60092c3103
docs: minor formatting corrections. Fixes #1113 (#1179)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-05-21 01:31:34 -07:00
Jesse Suen 912d3ac009
test: improve e2e test to cover promote during an analysis run (#1202)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-05-19 16:46:24 -07:00
Jesse Suen 3b9b196ed9
feat: calculate rollout phase & message controller side (#1186)
* fix: rollouts in middle of restart should be considered Progressing

Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-05-19 13:06:41 -07:00
cskh 2b4f44d528
fix: lint valid file with another empty object (#1188)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-05-19 04:35:30 -07:00
jaegeon ed39758e3c
fix: Add edge case handling to traffic routing (#1190)
Signed-off-by: zezaeoh <zezaeoh@gmail.com>
2021-05-18 15:53:39 -07:00
Keith Mattix II a291755e76
chore: use a base image that has a shell for the kubectl plugin image (#1197)
Signed-off-by: Keith Mattix II <kmattix@shipt.com>
2021-05-18 15:07:01 -07:00
Andrii Perenesenko 791aaee9a9
fix: kubectl rollout status --timeout should take a duration string (#1194)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-05-17 12:34:19 -07:00
cskh 6ba30ed06b
feat: lint supporting rollout in multiple doc (#1176)
- To support use cases where the yaml file may contain
  deploy, service, etc (generated from helm template)

Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-05-14 12:57:55 -07:00
Jesse Suen 584c13fb8a
feat: record events for RolloutPaused and RolloutResumed (#1178)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-05-14 12:53:40 -07:00
Jesse Suen 063faab833
chore: don't run code scanning on PR push events (#1185)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-05-14 11:00:27 -07:00
cskh 9bc30a659c
fix: set rollout status to degraded for non-existent deploy (#1136)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-05-14 10:37:23 -07:00
Kostis (Codefresh) 0ca1fc1219
docs: clarifications in front page (#1143)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-05-14 03:34:07 -07:00
cskh 38ecc74164
docs: fix some comments in the code and update workloadRef (#1154)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-05-14 03:32:12 -07:00
dependabot[bot] d1da20f032
chore(deps): bump crazy-max/ghaction-docker-meta from 2 to 3.1.0 (#1164)
Bumps [crazy-max/ghaction-docker-meta](https://github.com/crazy-max/ghaction-docker-meta) from 2 to 3.1.0.
- [Release notes](https://github.com/crazy-max/ghaction-docker-meta/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/crazy-max/ghaction-docker-meta/compare/v2...v3.1.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jesse Suen <jessesuen@users.noreply.github.com>
2021-05-14 03:23:50 -07:00
John Patterson 754f5f59f5
docs: Rename doc references with graphana to grafana (#1169)
Signed-off-by: John Patterson <john.patterson@icg360.com>
2021-05-14 02:48:28 -07:00
harikrongali 9c1a746ec6
fix: deprecate skip-current-step command (#1156)
Signed-off-by: hari rongali <hari_rongali@intuit.com>
2021-05-13 21:10:03 -07:00
Jesse Suen f5e2d82cb3
feat: richer prometheus stats and Kubernetes events (#1115)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-05-13 14:01:34 -07:00
Remington Breeze 698beb54db
fix(ui): UI crash after importing argo-ux due to multiple copies of React (#1170)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-05-13 10:29:40 -07:00
marco-dd b46e1245cb
docs: Add DoorDash blog post reference (#1166)
Added reference to a DoorDash blog post about a custom Kubernetes Controller built on top of Argo Rollouts to achieve a gradual code release process.
2021-05-12 15:13:40 -07:00
Andrii Perenesenko 07354b35d3
fix: unhandled error patchVirtualService (#1168)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-05-12 13:31:23 -07:00
Andrii Perenesenko ce83589cf6
fix: handling error on f.close (#1167)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-05-12 13:29:18 -07:00
Remington Breeze 125c9d9391
Outsource reusable UI components to argo-ux npm package (#1157)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-05-11 10:24:32 -07:00
Kareena Hirani 416735790d
fix: Improve and refactor validation for AnalysisTemplates (#1117)
* fix: Improve and refactor validation for AnalysisTemplates

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-05-10 12:38:00 -07:00
Andrii Perenesenko b6aaf4b42b
fix: use fixed size int32 (#1155)
Signed-off-by: Andrii Perenesenko <andrii.perenesenko@gmail.com>
2021-05-10 10:47:04 -07:00
cskh 92e2aab376
feat: add print version flag to rollouts-controller (#1149)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-05-10 10:46:01 -07:00
Remington Breeze 32d37d85f3
fix(ui): Dashboard Promote-Full is doing normal promotion (#1139)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-05-06 13:59:28 -07:00
Remington Breeze 53da8b4a9c
fix(ui): Dashboard crashes when rollout has no containers (#1146)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-05-06 11:52:58 -07:00
Leonardo Luz c0ca4aa697
docs: update Ambassador doc link to the official website (#1141)
Signed-off-by: Leonardo Luz Almeida <leonardoluz@datawire.io>
2021-05-05 17:29:11 -07:00
cskh 22f6126f20
fix: fix mismatch service selected lables to the deployment (#1140)
- the deployment uses labels: app: rollout-ref-deployment,
  while the service use app:rollout-bluegreen. The PR fixes
  the mismatch

Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-05-05 16:11:42 -07:00
Kostis (Codefresh) 32bfe85e22
docs: clarifications for blue/green. Fixes #1112 (#1125)
* docs: grammar fixes in blue-green page
* docs: clarifications for blue/green. Fixes #1112

Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-05-04 17:10:18 -07:00
cskh e019260bc0
docs: move workloadRef to v1.0 (#1133)
- add missing apiVersion in workloadRef example

Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-05-04 17:08:45 -07:00
Jesse Suen a702bc95e2
fix: build 'latest' tag from master. prefix 'v' in release builds (#1132)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-29 23:07:39 -07:00
Leonardo Luz 1b72231d06
fix: better handle the deletion of ambassador canary mapping (#1128)
Signed-off-by: Leonardo Luz Almeida <leonardoluz@datawire.io>
2021-04-29 17:44:47 -07:00
Jesse Suen 4848b641a0
fix: ui assets were not copied properly (#1131)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-29 13:21:32 -07:00
Jesse Suen 07f847fc76
fix: image tag should include 'v' prefix (#1130)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-29 12:37:49 -07:00
Jesse Suen 17b8b62f21
fix: release-images job did not push tags properly (#1129)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-29 12:24:46 -07:00
Jesse Suen 9a824c3ceb
chore: automate release process (#1126)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-29 10:22:03 -07:00
cskh 572b1007ed
feat: istio virtualservice and rollout in different namespaces (#1114)
- A new field namespace to istio trafficrouting
- canarySvc and stableSvc could be FQDN in virtualService,
  so extract the host name and compare with the hosts defined
  in rollout
- Updated doc to reflect the change:
    docs/features/traffic-management/istio.md

Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-04-28 13:01:17 -07:00
Joyce Yee 304cb39ff2
feat: Allow Datadog API and APP keys to be consumed from env vars (#1073)
Signed-off-by: Joyce Yee <jzyee@paypal.com>
2021-04-27 16:28:39 -07:00
Jesse Suen 9460b47469
fix: AnalysisRuns could be created continuously due to non-deterministic specs (#1118)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-27 14:58:31 -07:00
Kostis (Codefresh) 0fbcd116b2
docs: mention docker image for CLI (#1120)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-04-27 14:17:16 -07:00
Kostis (Codefresh) 7ab60a2a14
docs: Added more diagrams in the documentation. Fixes #323 (#1093)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-04-26 17:51:36 -07:00
Jesse Suen 7ee06a88c9
feat: add new features to kustomize transformer configuration (#1116)
Teaches kustomize about:
* istio DestinationRule references
* workload references to Deployments
* ambassador Mapping references

Also updates kustomize test to assume v4.0

Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-26 17:46:12 -07:00
Remington Breeze 1ca12a86cb
chore: Add node_modules to dockerignore (#1109)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-04-23 17:00:32 -07:00
Alexander Matyushentsev 8ea2c12080
feat: support reference model for workloads (#676) (#1072)
* feat: support reference model for workloads (#676)

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-04-23 15:51:53 -07:00
Leonardo Luz 4d331537fb
docs: Add Ambassador doc links in the menu (#1108)
Signed-off-by: Leonardo Luz Almeida <leonardoluz@datawire.io>
2021-04-23 11:02:25 -07:00
Jesse Suen 6bb27811d4
chore: publish plugin image automatically. migrate to quay.io (#1102)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-22 13:18:39 -07:00
cskh 22c66b205b
fix: rollout status always in progressing if analysis fails (#1099)
* fix: rollout status always in progressing if analysis fails

- when analysis fails but rollout completes, the status should
be degraded

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

* Fix e2e test, change in sync.go

Co-authored-by: Hui Kang <hui.kang@salesforce.com>
2021-04-21 23:48:26 -07:00
Jesse Suen f32d3216a3
fix: make api-proto was not generating code properly (#1101)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-21 16:44:56 -07:00
Remington Breeze 9fa5dc5b17
chore: Add make target to publish kubectl plugin image (#1098)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-04-21 12:02:38 -07:00
Leonardo Luz 734c859f2f
feat: Implement Ambassador to be used as traffic router for canary deployments (#1025)
Signed-off-by: Leonardo Luz Almeida <leonardoluz@datawire.io>
2021-04-20 16:52:30 -07:00
Kareena Hirani 7ad745a4ff
feat: Add RolloutCompleted condition (#1074)
* feat: Create RolloutCompleted condition
2021-04-20 16:41:09 -07:00
Jesse Suen 0f131a77a6
chore: make codegen more consistent across environments (#1095)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-20 13:05:02 -07:00
Kareena Hirani ee06d5cc09
fix: Improve validation for AnalysisTemplates referenced by RO (#1094)
* fix: Improve validation for AnalysisTemplates referenced by RO
2021-04-20 11:57:14 -07:00
Jesse Suen 31afa28d59
feat: support scaleDownDelaySeconds in canary w/ traffic routing (#1056)
* chore: simplify syncRolloutStatusCanary logic
* refactor: simplify and consolidate bluegreen/canary sync logic

Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-19 14:57:07 -07:00
Kostis (Codefresh) 0c9f9a535e
docs: new blog post for canaries and prometheus (#1088)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-04-19 12:01:44 -07:00
Jesse Suen 1fa63d768c
fix: spec.preserveUnknownFields must be explicitly false to allow upgrades from apiextensions.k8s.io/v1beta1 (#1069)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-19 11:54:41 -07:00
Remington Breeze 3a2936ee4b
feat: Add button that links to docs to header (#1086)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-04-14 16:06:47 -07:00
cskh 74e1f0f952
fix: verify analysis arguments name with those in the rollout (#1071)
* fix: verify analysis arguments name with those in the rollout

- return error if arguments do not match between rollout spec and analysis template

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

* skip check for arg with default value

Signed-off-by: Hui Kang <hui.kang@salesforce.com>

Co-authored-by: Hui Kang <hui.kang@salesforce.com>
2021-04-14 11:50:58 -07:00
Remington Breeze d9899f849d
fix: promise rejection error on rollouts list on initial load (#1085)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-04-14 09:41:30 -07:00
Remington Breeze 9606f5ed4d
fix: Wrong image for dashboard documentation (#1084)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-04-14 09:19:58 -07:00
Remington Breeze e7e6ff5986
fix(ui): Minor UI fixes and enhancements + more keyboard shortcuts (#1081)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-04-14 07:44:28 -07:00
Alexander Matyushentsev 34aa6ef8c9
chore: fix broken Deploy-Docs and Docker CI tasks (#1083)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-04-13 20:09:39 -07:00
Remington Breeze 7facfaa766
feat: Argo Rollouts api-server and UI (#1015)
Signed-off-by: Remington Breeze <remington@breeze.software>
2021-04-09 13:11:17 -07:00
Kareena Hirani 959a4a505a
feat: Create RolloutPaused condition (#1054)
* feat: Create RolloutPaused condition
2021-04-08 13:14:36 -07:00
zcc35357949 f594c7484f
fix: calculate scale down count. (#1047)
Signed-off-by: zhouchencheng <zhouchencheng@bilibili.com>
2021-04-07 16:57:41 -07:00
cskh a0c6ec8f82
fix: add informational exposed ports to deployment (#1066)
Signed-off-by: Hui Kang <hui.kang@salesforce.com>
2021-04-07 16:48:27 -07:00
Kostis (Codefresh) 37668f19dc
docs: Dedicated prometheus page, fixes #1057 (#1065)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-04-06 17:51:10 -07:00
Kostis (Codefresh) 1ee46cff2a
docs: more detailed instructions for Controller metrics (#1062)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-04-02 12:55:37 -07:00
Anderson Silva 01adc2e814
fix: Fixes the regression of dropping resources from argo-rollouts crds. Fixes #1043 (#1044)
Signed-off-by: Anderson Silva <hello@anderson.codes>
2021-04-02 11:42:11 -07:00
Andreas Grabner fb606fa49a
docs: Adding Keptn Argo Rollout Tutorial Video (#1063)
Signed-off-by: grabnerandi <grabnerandi@TAG009442636466.clients.dynatrace.org>
2021-04-02 11:09:26 -07:00
Jesse Suen 6a55f0c316
fix: controller panic with ephemeral containers with bad resource qty (#1055)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-04-01 14:45:48 -07:00
Kostis (Codefresh) 97d923232d
docs: more community content (#1058)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-04-01 14:43:12 -07:00
Fischer Jemison 7509478d5f
feat: support a custom base URL for the new relic provider (#1053)
Signed-off-by: Fischer Jemison <fjemison@newrelic.com>
2021-04-01 13:48:02 -07:00
Russell Whitaker e803db0eaf
docs: Fixed known identifier bug in NewRelic analysis doc (#1050) 2021-03-25 13:05:14 -07:00
Pedro Arvela 92c1b16694
feat: Implement rollout status command. Fixes #596 (#1001)
Signed-off-by: Pedro Arvela <pedro.arvela@onfido.com>
2021-03-24 15:38:18 -07:00
Kostis (Codefresh) bff46e1f2f
docs: clarify relationship with Argo CD and GitOps (#1042)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-03-19 14:09:23 -07:00
Jesse Suen 890a841233 docs: improve ALB docs to encourage use of root-service. remove incorrect examples
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-03-19 14:08:25 -07:00
Jesse Suen 8ce458694c chore: manifests should be generated using kustomize 4.0.5 to satisfy CI
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-03-19 14:08:25 -07:00
zcc35357949 d23a240e18
fix: analysis template arguments validate (#1038)
Signed-off-by: zhouchencheng <zhouchencheng@bilibili.com>
2021-03-19 03:27:02 -07:00
zhaoyun006 5f1c185fbc
fix create command not support namespace in yaml file (#962)
Signed-off-by: zhaozhiqiang <zhaozhiqiang@lixiang.com>
2021-03-16 18:27:55 -07:00
Joyce Yee 6a98e65279
docs: Add PayPal to users.md (#1031) 2021-03-16 17:51:54 -07:00
Kostis (Codefresh) 829feb23cf
docs: fix web link in homepage for specification. Fixes #1028 (#1034)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-03-16 17:50:39 -07:00
Kostis (Codefresh) 208f51c093
docs: fix text for resuming a rollout. Fixes #1030 (#1035)
Signed-off-by: Kostis Kapelonis <kostis@codefresh.io>
2021-03-16 17:49:57 -07:00
Ed Lee 71a2434308
chore: Update OWNERS (#1037) 2021-03-16 17:48:06 -07:00
Jesse Suen 30d2645617 fix: metrics which errored did not retry at error interval
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-03-09 03:44:34 -08:00
Jesse Suen 316746080d fix: wavefront queries would return no datapoints. surface evaluate errors
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-03-09 03:44:34 -08:00
Aaron Weisberg 47d66bf800
feat: Wait for canary RS to have ready replicas before shifting labels (#1022)
Signed-off-by: Aaron Weisberg <aaronweisberg@gmail.com>
2021-03-09 03:34:56 -08:00
dependabot[bot] 6f501f7bed
chore(deps): bump github.com/prometheus/common from 0.15.0 to 0.18.0 (#1019)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.15.0 to 0.18.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.15.0...v0.18.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-03 14:26:14 -08:00
Kareena Hirani dff1f22572
fix: Clear ProgressDeadlineExceeded Condition in paused BlueGreen Rollout (#1002)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-02-28 17:35:38 -08:00
dependabot[bot] 1e7b9e2b0b
chore(deps): bump github.com/stretchr/testify from 1.6.1 to 1.7.0 (#965)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.6.1...v1.7.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-25 17:54:26 -08:00
Jesse Suen f0d39d9447
fix: blue-green rollouts could pause prematurely during prePromotionAnalysis (#1007)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-02-25 12:17:09 -08:00
Jesse Suen 7a7fbc0eda
chore: bump version. remove deprecated fields. upgrade golang. upgrade k8s deps (#1009)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-02-25 11:23:49 -08:00
Jesse Suen bbd7768731
chore: update k8s dependencies to v1.20. improve logging (#994)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-02-17 18:47:40 -08:00
Kareena Hirani b654c880bb
feat: Allow user to handle NaN result in Analysis (#977)
* feat: Allow user to control handling of NaN results

* Add case for isInf
2021-02-17 13:30:35 -08:00
Jesse Suen 8c17314a65
chore: add CII badge (#993)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-02-16 16:14:38 -08:00
Jesse Suen c8eb953db1
feat: support canarying using Istio DestinationRule subsets (#985)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-02-12 18:10:13 -08:00
Viktor Farcic 952ccebebe
docs: add Automation of Everything video to docs (#986)
Signed-off-by: Viktor Farcic <viktor@farcic.com>
2021-02-11 12:31:50 -08:00
Kareena Hirani a87bf873c4
fix: Set Canary Strategy default maxUnavailable to 25% (#981)
* fix: Set Canary Strategy default maxUnavailable to 25%

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2021-02-09 17:15:01 -08:00
Cooper Benson 4e76b9c73a
feat(controller): Add support for ephemeral metadata on BlueGreen rollouts. Fixes #973 (#974)
Signed-off-by: cooperbenson-qz <cooper.benson@quizlet.com>
2021-02-09 17:12:14 -08:00
Saradhi Sreegiriraju a6e190d9be
Update README.md (#984)
Fixing the reference to USERS.md file.
2021-02-08 23:03:57 -08:00
zcc35357949 bed1261490
fix: should use copy rs before modify fields. (#968)
Signed-off-by: zhouchencheng <zhouchencheng@bilibili.com>
2021-02-05 15:55:36 -08:00
Laurent Benchimol 613852c490
chore: Change PR template to reflect CLA->DCO (#979)
Signed-off-by: Laurent Benchimol <laurent_benchimol@intuit.com>
2021-02-05 15:54:12 -08:00
Laurent Benchimol 4d0c2c9d7f
chore: Separating out USERS list (#978)
Signed-off-by: Laurent Benchimol <laurent_benchimol@intuit.com>
2021-02-05 15:53:45 -08:00
Kareena Hirani 7384684c13
feat: Add ability to restart maxUnavailable pods to BlueGreen strategy (#937)
* feat: Add ability to restart maxUnavailable pods to BlueGreen strategy
2021-02-04 18:08:43 -08:00
zhaoyun006 671e52d663
chore: fix typo objet to Object (#969)
Signed-off-by: zhaozhiqiang <zhaozhiqiang@lixiang.com>
2021-02-02 02:49:27 -08:00
Jesse Suen b30da39950
feat: add ability to verify canary weights before advancing steps (#957)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2021-02-01 14:13:51 -08:00
nishant-d 01055cf744
docs: add user Devtron labs (#959)
Signed-off-by: nishant <nishant@devtron.ai>
2021-01-25 11:25:37 -08:00
zcc35357949 c0d3672d75
fix: get rollout always return not found except default namespace (#961)
Signed-off-by: zhouchencheng <zhouchencheng@bilibili.com>
2021-01-25 11:24:58 -08:00
Kareena Hirani 1beffd4d2f
feat: metric fields can be parameterized by analysis arguments (#901)
* feat: Configurable AnalysisTemplate
2021-01-08 13:39:40 -08:00
zhaoyun006 6c98efd051
fix: kubectl argo create panic: runtime error: invalid memory address or nil pointer dereference
Signed-off-by: zhaozhiqiang <zhaozhiqiang@lixiang.com>
2021-01-07 17:34:36 -08:00
Jesse Suen 1c93ebc751 chore: add better logging on rollout sync and e2e failures
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-12-16 21:46:11 -08:00
Jesse Suen 517eff10ca fix: switch pod restart to use evict API to honor PDBs
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-12-16 21:46:11 -08:00
Jesse Suen 2d901630fc
fix: ephemeral metadata injection was dropping metadata injected by mutating webhooks (#906)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-12-16 02:11:01 -08:00
Jesse Suen f0c793d94e
fix: requiredForCompletion did not work for an experiment started by a rollout (#907)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-12-16 01:36:52 -08:00
Jesse Suen 72ea17d247
fix(manifests): Add missing RoleBinding file (#899)
Signed-off-by: tdongsi <dongsi.tuecuong@gmail.com>
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>

Co-authored-by: Cuong Dong-Si <tdongsi@users.noreply.github.com>
Co-authored-by: tdongsi <dongsi.tuecuong@gmail.com>
2020-12-14 15:40:21 -08:00
Jesse Suen 7e575fd96a
chore: direct users to ask questions on GitHub discussions (#894)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-12-11 20:18:40 -08:00
Jesse Suen b2ad8b6a90
docs: update CHANGELOG.md for v0.10.1 (#880)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-12-10 17:58:27 -08:00
Jonah Back 6a78c769c0
fix(build): remove extra set of parens in echo command (#892)
Signed-off-by: Jonah Back <jonah@jonahback.com>
2020-12-10 11:09:25 -08:00
Jonah Back 1b4d5f2f07
feat: support ARM builds, remove unused components in Dockerfile (#889)
Signed-off-by: Jonah Back <jonah@jonahback.com>
2020-12-09 16:35:08 -08:00
Jesse Suen 47fff5523e
test: add e2e test to verify rollout/experiment/analysis integration (#876)
* test: add e2e test to verify rollout/experiment/analysis integration
* docs: improve experiment and specification docs

Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-12-04 16:21:38 -08:00
Kush Trivedi adae595bdf
docs: fix broken getting-started link (#879)
Signed-off-by: Kush Trivedi <kushthedude@gmail.com>
2020-12-04 14:09:07 -08:00
Jesse Suen bfd243e232
fix: plugin incorrectly treated v0.9 rollout as v0.10 when it had numeric observedGeneration (#875)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-12-02 19:07:18 -08:00
Kareena Hirani 08477cb2f1
fix: Correct Istio VirtualService immediately (#874)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2020-12-02 16:07:06 -08:00
Kareena Hirani 3e1c450a11
fix: Change e2e test ingress from ALB to Nginx (#868)
Signed-off-by: khhirani <kareena.hirani@gmail.com>
2020-11-30 19:05:36 -08:00
Arghya Sadhu 7c2c773663
docs: fix broken link to getting started (#861)
Signed-off-by: Arghya Sadhu <arghya88@gmail.com>
2020-11-23 13:46:33 -08:00
Jesse Suen c0bab89897
docs: revamp documentation (#860)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-20 11:42:35 -08:00
Jesse Suen 65417ecbcc
chore(deps): bump sigs.k8s.io/controller-tools from 0.4.0 to 0.4.1 (#859)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-19 15:13:09 -08:00
Jesse Suen 61779de53e
fix: restart was restarting too many pods when available > spec.replicas (#856)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-19 02:28:00 -08:00
Jesse Suen b5df31ec94
chore(deps): upgrade k8s to v1.19.4 and prometheus dependencies (#857)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-18 18:42:41 -08:00
Jai Govindani ddcd11f2ff
docs: fix typo intraffic-management/smi (#837)
Signed-off-by: Jai Govindani <jai@honestbank.com>
2020-11-18 15:01:06 -08:00
dependabot[bot] 56bb93ca0a
chore(deps): bump github.com/newrelic/newrelic-client-go (#850)
Bumps [github.com/newrelic/newrelic-client-go](https://github.com/newrelic/newrelic-client-go) from 0.47.1 to 0.49.0.
- [Release notes](https://github.com/newrelic/newrelic-client-go/releases)
- [Changelog](https://github.com/newrelic/newrelic-client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/newrelic/newrelic-client-go/compare/v0.47.1...v0.49.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-17 14:06:20 -08:00
Jesse Suen 87ac4fcf41
fix: controller was not given privileges to update status subresource (#844)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-16 13:56:20 -08:00
Jesse Suen 41373af866
docs: update CHANGELOG for v0.10.0 (#842)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-13 14:11:33 -08:00
Jesse Suen 5e1721486f
test: print rollout on failure. enhance test to retry aborted bluegreen. remove bdd test (#843)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-13 14:10:06 -08:00
Aaron Batilo 663831c5e2
feat(plugin): Implement kubectl argo rollouts lint (#783)
Signed-off-by: Aaron <AaronBatilo@gmail.com>
2020-11-13 02:38:23 -08:00
Kareena Hirani 4fa6f76b21
fix: kubectl plugin should use dynamic client (#834)
* Modify kubectl plugin to only create objects using DynamicClient

Signed-off-by: khhirani <kareena.hirani@gmail.com>
2020-11-12 18:38:17 -08:00
Jesse Suen 768843565f
feat(controller): restart pods up to maxUnavailable at a time (#833)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-11 18:55:14 -08:00
dependabot[bot] ada67cf182
chore(deps): bump github.com/newrelic/newrelic-client-go (#836)
Signed-off-by: dependabot[bot] <support@github.com>
2020-11-11 01:43:51 -08:00
Jesse Suen 87639c454e
feat(controller): add full rollout promotion (skip analysis, pause, steps) (#828)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-10 16:24:09 -08:00
Jesse Suen f4358f8dfb
feat(controller): use CRD status subresource (#789)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-09 15:02:29 -08:00
Eric Mrak 0eb4df00df
fix: fetch secrets on-demand to fix controller boot for large clusters (#829)
Using a list cache of secrets is not needed as we do not need to react
to any changes and we can always fetch the individual secrets we need
for analysis arguments when the time comes. For large kubernetes
clusters with thousands of secrets this causes the argo-rollouts
controller to be unbootable.

Co-authored-by: Jason Yanowitz <jason.yanowitz@getbraintree.com>
Signed-off-by: Eric Mrak <emrak@paypal.com>
2020-11-09 12:11:52 -08:00
dependabot[bot] 71428ceda3
chore(deps): bump k8s.io/kubectl from 0.16.4 to 0.19.3 (#827)
Signed-off-by: dependabot[bot] <support@github.com>
2020-11-09 11:26:37 -08:00
d-kuro e31e30e814
docs: add Quipper to users (#824)
Signed-off-by: d-kuro <kurosawa7620@gmail.com>
2020-11-08 02:41:36 -08:00
Jesse Suen ac74a9b668
chore: add CI check to verify codegen (#821)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-05 17:29:42 -08:00
Jesse Suen 7e150ac4a9
fix: namespaced scoped controller support (#818)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-05 17:11:27 -08:00
Jesse Suen 866342fc89
chore: increase e2e reliability by retrying conflict patches (#820)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-05 17:10:10 -08:00
Jesse Suen 957d647b27
docs: update changelog for v0.9 (#819)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-05 17:09:38 -08:00
dependabot[bot] 1e377d59f3
chore(deps): bump github.com/antonmedv/expr from 1.4.2 to 1.8.9 (#763)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-05 03:32:05 -08:00
dependabot[bot] 5cb423b9da
chore(deps): bump github.com/spf13/cobra from 1.0.0 to 1.1.1 (#788)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-05 02:24:40 -08:00
Jesse Suen f7b0e32a29
feat(controller): set canary/stable ephemeral metadata to pods during updates (#770)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-05 01:54:25 -08:00
Hiroshi Oda 4afce67b65
feat: Add undo command in kubectl plugin. Fixes #575 (#812)
Signed-off-by: hi1280 <hi12801280@gmail.com>
2020-11-05 01:37:47 -08:00
Jesse Suen 96541472ac
fix: scaleDownDelayRevisionLimit was off by one (#816)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-03 23:41:25 -08:00
Jesse Suen 0f975b7388
fix: background analysis refs were not verified. requeue InvalidSpec rollouts (#814)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-11-03 14:11:05 -08:00
Viktor Farcic 3fbac041dc
docs: add video - Canary Deployments Made Easy In Kubernetes (#815)
Signed-off-by: Viktor Farcic <viktor@farcic.com>
2020-11-03 10:45:00 -08:00
Mirnal Singh 101f99cdff
feat: add support for valueFrom in analysis arguments. (#797) 2020-11-02 17:01:06 -08:00
Jared Welch c16119e24c
feat: Add New Relic metricprovider (#772) 2020-10-30 18:53:52 -07:00
Jesse Suen f99789377e
fix: rollout kustomize transform analysis ref should use templateName instead of name (#809) 2020-10-29 16:51:58 -07:00
Jesse Suen 330add614c
chore: migrate off bouk/monkey to go-mpatch (#803) 2020-10-26 15:33:00 -07:00
Jesse Suen 8332cee100
fix(controller): validation should not consider privileged security context (#802)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-10-26 15:31:48 -07:00
Jesse Suen 8b0fe30e37
fix(controller): fix unhandled panic from malformed rollout (#801)
Signed-off-by: Jesse Suen <jesse_suen@intuit.com>
2020-10-26 15:31:02 -07:00
Hu Sheng a98a2742e5
docs: fix incorrect of yaml indentation in doc (#791) 2020-10-19 15:36:28 -07:00
Jesse Suen fd4ffcdfae
chore: github action to publish images to github container registry (#703) 2020-10-16 13:10:03 -07:00
Jesse Suen b1ee615817
fix(controller): controller did not honor maxUnavailable during rollback (#786) 2020-10-16 12:38:58 -07:00
Jesse Suen 927cae31c2
fix(controller): blue-green with analysis was broken (#780)
fix: postPromotionAnalysis was broken
fix: blue-green fast-tracked rollbacks would still start analysis templates
fix: prePromotionAnalysis with previewReplicaCount would pause indefinitely w/o running analysis
feat(plugin): indicate the stable ReplicaSet for blue-green rollouts in plugin
2020-10-14 14:09:09 -07:00
Duda Dornelles 646aef6bfe
docs: Being a bit more clear on the chance of downtime when migrating Deployment->Rollout (#776) 2020-10-13 15:47:43 -07:00
Jesse Suen 07cd7cbe2b
fix(plugin): bluegreen scaleDownDelay was delaying Healthy status. Present errors in message field (#768) 2020-10-09 21:59:03 -07:00
stephen-harris 6c3fcfe5e4
feat(analysis): Add Datadog metric provider. Fixes #702 (#705) 2020-10-09 16:02:13 -07:00
Matthew Clarke be3495d403
chore: add spotify as a user to readme (#769) 2020-10-07 09:29:01 -07:00
Jesse Suen 125a85455e
test: add e2e test for previewReplicaCount and bluegreen-to-canary (#767) 2020-10-07 01:17:21 -07:00
dependabot[bot] 3b2700fe0a
chore(deps): bump github.com/sirupsen/logrus from 1.6.0 to 1.7.0 (#766)
Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.6.0...v1.7.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-06 01:13:48 -07:00
Jesse Suen 2c80b9d7b7
fix(controller): calculate available replicas from active ReplicaSet (#757) 2020-10-05 17:17:24 -07:00
Satoshi Inoue (butter) 0d53c7d4b7
docs: add VISITS Technologies to users (#762) 2020-10-05 11:58:49 -07:00
dependabot[bot] adee57d45b
chore(deps): bump actions to use major versions (#755)
Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jesse Suen <jessesuen@users.noreply.github.com>
2020-10-02 04:19:09 -07:00
Jesse Suen df1ac603aa
chore: update k8s dependencies to v1.18.2. revert preserveUnknownFields=false (#752) 2020-10-02 03:39:23 -07:00
Jesse Suen ae3f7f57c6
fix: bluegreen postPromotion failure did not work properly. add e2e blue-green analysis tests (#751) 2020-10-02 01:41:50 -07:00
dependabot[bot] d7ec2c4302
chore(deps): bump actions/setup-python from v2.1.2 to v2 (#753)
Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jesse Suen <jessesuen@users.noreply.github.com>
2020-10-02 01:33:47 -07:00
Duda Dornelles 25d623c7e8
feat(metrics): Adding rollout_info_replicas_desired metric. Fixes #748 (#749) 2020-09-30 12:06:18 -07:00
Jesse Suen 8cf1ca613c
docs: update CHANGELOG.md for v0.9.1 (#745) 2020-09-28 18:03:21 -07:00
Jesse Suen b221be06a5
fix: unavailable stable RS was not scaled down to make room for canary (#739) 2020-09-28 14:28:50 -07:00
Jesse Suen b5aa6d7e95
feat: web metrics preserve data types, allow insecure tls, and make jsonPath optional (#731) 2020-09-26 02:07:14 -07:00
Josh Soref ed8637424a
chore: Spelling (#733) 2020-09-23 21:27:08 -07:00
Jesse Suen 971cff9cbc
feat: plugin now surfaces InvalidSpec errors and failed analysisrun messages (#729) 2020-09-23 15:38:36 -07:00
Fumiaki MATSUSHIMA 4fded3d5ea
chore: Set preserveUnknownFields: false to prevent mistake (#708) 2020-09-23 02:10:17 -07:00
Jesse Suen a96bbdb7ef
feat: writeback rollout updates to informer to prevent stale data (#726) 2020-09-21 19:35:05 -07:00
Jesse Suen fa3ddf0197
fix: revision annotation was off-by-one for canary rollouts (#725) 2020-09-21 18:29:35 -07:00
Jesse Suen 728437f9bf
fix: do not create analysisruns with initial deploy (#722) 2020-09-21 18:02:31 -07:00
Jesse Suen a297c86e3f
fix: panic after switching to tolerant informers (#719) 2020-09-21 14:10:09 -07:00
Jesse Suen 6370d3d779
docs: fix grafana values to use compatible grafana dashboard (#716) 2020-09-21 14:08:56 -07:00
Jesse Suen ca646c544f
fix: analysis controller could get into a hotloop with terminated run (#724) 2020-09-21 14:08:29 -07:00
Ignasi Marimon-Clos 898154543d
chore: adds dependency to generate plugin-docs when serving locally (#711) 2020-09-18 22:23:06 -07:00
Jesse Suen 0f854c3185
refactor: move reconciliation logic into rolloutContext (#704) 2020-09-08 15:43:40 -07:00
Jesse Suen 54b83cb35b
chore: add github action to run e2e tests in k3s (#694) 2020-09-08 14:58:30 -07:00
Takao Shibata 96880030df
docs: fix itemize list (#706) 2020-09-08 14:19:06 -07:00
Jesse Suen d1fd695752
test: add e2e testing framework (#691) 2020-09-03 11:54:55 -07:00
Jesse Suen 0740d4ed0a
fix: add missing Service kustomize name reference in trafficRouting/alb/rootService (#699) 2020-09-03 11:54:21 -07:00
Takumi Sue f4955ef8ff
docs: Update description of paused field in specification (#675) 2020-09-02 13:11:56 -07:00
Jesse Suen e1fffb99ef
docs: add roadmap.md (#697) 2020-09-02 09:39:27 -07:00
Aaron Weisberg a98e4eb1e9
feat(controller): Allow setting canary weight without side-effects. Fixes #556 (#677) 2020-09-02 00:36:11 -07:00
James Wen fed42f9c12
docs: Add arg with default value to example for ClusterAnalysisTemplates (#692) 2020-08-31 14:36:39 -07:00
Jesse Suen 978939bc8b
fix: make controllers tolerant to spec marshalling errors (#666) 2020-08-29 23:46:32 -07:00
Kareena Hirani 9be76fc326
perf: Create IstioVirtualServiceLister (#656)
* Create istioVirtualServiceLister in rollout/controller.go. Auto-detect Istio installed in cluster and create lister if DNE
2020-08-27 18:49:58 -07:00
Jesse Suen 47c9d47df5
docs: tab issues in analysis docs (#657) 2020-08-26 00:12:58 -07:00
Kevin 71d382fcdd
fix: add Failed AnalysisRun phase status to analysis_run_metric_phase and analysis_run_phase metrics. (#618) 2020-08-24 21:19:09 -07:00
Jesse Suen b66e75335b
chore: enable issue templates, pr templates, and no-response bot (#665) 2020-08-24 16:06:30 -07:00
Jesse Suen e9c7722ef4
fix: support azure auth (#664) 2020-08-24 14:07:22 -07:00
Jesse Suen 68ba3a8930
fix: add missing log message when a controller's syncHandler returns error (#658) 2020-08-24 13:37:13 -07:00
Jesse Suen 218fd4342d
docs: fix analysis template docs for prometheus examples (#668) 2020-08-24 13:33:53 -07:00
Jesse Suen f17cd1f983
chore: bump version to v0.10.0 on master (#667) 2020-08-24 13:33:43 -07:00
dependabot[bot] 992e51dcf1
chore(deps): bump actions/cache from v2.1.0 to v2.1.1 (#652)
Bumps [actions/cache](https://github.com/actions/cache) from v2.1.0 to v2.1.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.0...5ca27f25cb3a0babe750cad7e4fddd3e55f29e9a)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-21 20:17:39 -07:00
dependabot[bot] b716419e83
chore(deps): bump github.com/valyala/fasttemplate from 1.0.1 to 1.2.1 (#648)
Bumps [github.com/valyala/fasttemplate](https://github.com/valyala/fasttemplate) from 1.0.1 to 1.2.1.
- [Release notes](https://github.com/valyala/fasttemplate/releases)
- [Commits](https://github.com/valyala/fasttemplate/compare/v1.0.1...v1.2.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-21 20:16:26 -07:00
dependabot[bot] b4bf436d23
chore(deps): bump github.com/spaceapegames/go-wavefront (#638)
Bumps [github.com/spaceapegames/go-wavefront](https://github.com/spaceapegames/go-wavefront) from 1.6.2 to 1.8.1.
- [Release notes](https://github.com/spaceapegames/go-wavefront/releases)
- [Changelog](https://github.com/spaceapegames/go-wavefront/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spaceapegames/go-wavefront/compare/1.6.2...v1.8.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-21 20:15:16 -07:00
Takumi Sue ffbd6fcd6f
docs: Add comment to Rollout specification (#655) 2020-08-21 13:58:32 -07:00
dependabot[bot] 8bd2bc4aea
chore(deps): bump github.com/pkg/errors from 0.8.1 to 0.9.1 (#631)
Bumps [github.com/pkg/errors](https://github.com/pkg/errors) from 0.8.1 to 0.9.1.
- [Release notes](https://github.com/pkg/errors/releases)
- [Commits](https://github.com/pkg/errors/compare/v0.8.1...v0.9.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-18 09:24:10 -07:00
dependabot[bot] 01700b3718
chore(deps): bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0 (#622)
Bumps [gopkg.in/yaml.v2](https://github.com/go-yaml/yaml) from 2.2.8 to 2.3.0.
- [Release notes](https://github.com/go-yaml/yaml/releases)
- [Commits](https://github.com/go-yaml/yaml/compare/v2.2.8...v2.3.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-18 09:23:18 -07:00
dependabot[bot] 9f77337b08
chore(deps): bump github.com/spf13/cobra from 0.0.5 to 0.0.7 (#630)
* chore(deps): bump github.com/spf13/cobra from 0.0.5 to 0.0.7

Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 0.0.5 to 0.0.7.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Changelog](https://github.com/spf13/cobra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spf13/cobra/compare/0.0.5...0.0.7)

Signed-off-by: dependabot[bot] <support@github.com>

* Add other changes to the go.sum

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danny Thomson <dthomson25@gmail.com>
2020-08-18 09:21:20 -07:00
sakajunquality b2d052d8ec
docs: add Ubie to list of Users (#646) 2020-08-18 09:20:18 -07:00
dthomson25 9ef05af282
Remove extra v in install url (#645) 2020-08-17 15:30:25 -07:00
dthomson25 e0832746dd
Adding missing v to the version var in release.md (#644) 2020-08-17 15:12:53 -07:00
Kareena Hirani f24b71fe07
fix: Change BadValue to prevent continuous loop (#643) 2020-08-17 15:07:21 -07:00
hpamukcu 3e426c9e8d
fix: Remove unreachable code at rollout/controller (#639)
Co-authored-by: Hulya Pamukcu Crowell <hpamukcu@hpamukcu-ltm.internal.salesforce.com>
2020-08-17 13:28:54 -07:00
dthomson25 f98b2fc856
Fix: correct manifest install link in release.md (#642) 2020-08-17 11:50:11 -07:00
dthomson25 d68b0babec
Update release notes to add a git pull (#641) 2020-08-17 11:47:42 -07:00
dthomson25 66019368ae
Update version to v0.9.0 (#640) 2020-08-17 11:24:57 -07:00
dthomson25 e06743289e
feat: Add support for rootService within ALB traffic routing (#634) 2020-08-14 19:33:58 -07:00
dthomson25 806ca6b298
Add Rollout/scale to aggregate roles (#637) 2020-08-14 16:44:40 -07:00
Kareena Hirani 1f378b2786
feat: Controller Validation for objects referenced by Rollout (#600) 2020-08-14 16:13:09 -07:00
dthomson25 99f6c30b2b
Update index.md (#636) 2020-08-14 11:29:40 -07:00
dependabot[bot] fc0c054107 chore(deps): bump actions/setup-python from v2.1.1 to v2.1.2
Bumps [actions/setup-python](https://github.com/actions/setup-python) from v2.1.1 to v2.1.2.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2.1.1...24156c231c5e9d581bde27d0cdbb72715060ea51)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-13 13:03:08 -07:00
dependabot[bot] 6415a04315 chore(deps): bump actions/setup-go from v2.1.1 to v2.1.2
Bumps [actions/setup-go](https://github.com/actions/setup-go) from v2.1.1 to v2.1.2.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2.1.1...8a3a76c2171de8c3be20bec507b6d829ccae48ba)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-13 13:02:37 -07:00
dependabot[bot] 8625b8e2ad chore(deps): bump actions/cache from v1 to v2.1.0
Bumps [actions/cache](https://github.com/actions/cache) from v1 to v2.1.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v1...d29c1df198dd38ac88e0ae23a2881b99c2d20e68)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-11 09:38:00 -07:00
dependabot[bot] eb1bc93a01 chore(deps): bump actions/setup-python from v1 to v2.1.1
Bumps [actions/setup-python](https://github.com/actions/setup-python) from v1 to v2.1.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v1...0c28554988f6ccf1a4e2818e703679796e41a214)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-11 09:37:35 -07:00
dependabot[bot] e121a8646c chore(deps): bump actions/setup-go from v1 to v2.1.1
Bumps [actions/setup-go](https://github.com/actions/setup-go) from v1 to v2.1.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v1...d0c5defdf364f1d1fb07530c000084836192af9c)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-11 09:37:13 -07:00
dependabot[bot] 349533e565 chore(deps): bump github.com/sirupsen/logrus from 1.4.2 to 1.6.0
Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.4.2 to 1.6.0.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.4.2...v1.6.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-11 09:34:30 -07:00
dthomson25 3555ae80bd Upgrade golangci-cli to v1.30 in actions 2020-08-11 09:30:43 -07:00
dependabot[bot] b30a147e9c chore(deps): bump golangci/golangci-lint-action from v1 to v2.2.0
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from v1 to v2.2.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v1...6317259e28065ecd33bf7e7e6c67c77db091d8a4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-11 09:30:43 -07:00
Danny Thomson cc16b8abb6 docs: Add missing alb getting started guide to nav 2020-08-04 17:07:38 -07:00
khhirani 1c90312d90 Add SMI RBAC privileges to arg-rollouts-role 2020-08-04 11:20:25 -07:00
sakajunquality 442d46d1e2
feat: add shortened option -A for --all-namespaces (#615) 2020-08-04 11:17:40 -07:00
Sean C. Sullivan e37a9053db chore: enable Dependabot v2
https://github.blog/2020-06-01-keep-all-your-packages-up-to-date-with-dependabot/
2020-08-03 14:04:26 -07:00
dthomson25 8b6e2be1fe Add more instructions to release docs 2020-08-03 09:41:51 -07:00
Danny Thomson 59ddd6ddf7 Add publish docs action 2020-08-03 09:41:31 -07:00
Danny Thomson 83e600edf0 Fix panic in metrics package 2020-08-03 09:34:06 -07:00
Danny Thomson a89119165f Fix panic in rollout restart 2020-08-03 09:34:06 -07:00
Danny Thomson 7689b1f2f1 Fix tests 2020-07-31 08:48:18 -07:00
Danny Thomson 531bc0cf6b Address PR 2020-07-31 08:48:18 -07:00
Danny Thomson 557a16ed1a Add more analysis info to Rollout 2020-07-31 08:48:18 -07:00
Danny Thomson 57c6d08c7d Refactor current ar tracking in Rollout 2020-07-31 08:48:18 -07:00
dthomson25 46086a416d Add faq on argocd actions 2020-07-30 13:32:03 -07:00
Kareena Hirani a0a39d5126 Update run-bdd.sh 2020-07-30 13:31:40 -07:00
Jesse Suen 0e276163da
docs: Update README. Add SMI getting-started guide (#565) 2020-07-29 17:44:53 -07:00
Kareena Hirani c8ed1daee4
test: BDD Test for e2e testing (#585)
* Create BDD Test for RO with BlueGreen Strategy

* Add make command for bdd-test
2020-07-29 14:55:06 -07:00
Kareena Hirani 3f07aa03b8
fix: Add cluster-analysis-template-crd to autogen manifests (#598)
* Modify crds/kustomization.yaml
2020-07-28 12:43:36 -07:00
shuheiktgw 92fbcf9cd7 doc: Add ALB getting started guide 2020-07-23 10:03:22 -07:00
David Xia 97e3c8b803 Fix broken link in canary.md 2020-07-23 09:32:26 -07:00
shuheiktgw 6c292d29f9 fix: Fix ActualWeight for canary 2020-07-20 13:24:09 -07:00
dthomson25 057fdb95a7 ci: Run Linting as a separate job 2020-07-14 12:59:45 -07:00
mclarke47 db3ad5e3c6 PR feedback 2020-07-14 12:47:40 -07:00
mclarke47 93a207be38 more PR feedback 2020-07-14 12:47:40 -07:00
mclarke47 aaeba46324 PR feedback 2020-07-14 12:47:40 -07:00
mclarke47 9fa4d3e9c3 clusterSope instead of ClusterTemplateName 2020-07-14 12:47:40 -07:00
mclarke47 3a41ab3f58 typos 2020-07-14 12:47:40 -07:00
mclarke47 8cf326ef5d update docs 2020-07-14 12:47:40 -07:00
mclarke47 80f1d812a9 omitempty; di fix; examples 2020-07-14 12:47:40 -07:00
mclarke47 3fbc6d7e47 fmt 2020-07-14 12:47:40 -07:00
mclarke47 0f308ea8bf missed file 2020-07-14 12:47:40 -07:00
mclarke47 2b6553ce6e add create command 2020-07-14 12:47:40 -07:00
mclarke47 94fbdee3f4 more tests / plumbing 2020-07-14 12:47:40 -07:00
mclarke47 cd56f47fca allow either templateName or clusterTemplateName 2020-07-14 12:47:40 -07:00
mclarke47 386689ab94 fmt 2020-07-14 12:47:40 -07:00
mclarke47 c0dce255cc test; analysis helpers refactor 2020-07-14 12:47:40 -07:00
mclarke47 757beb1eb1 DI and first test 2020-07-14 12:47:40 -07:00
mclarke47 265ec7fe1a missed list 2020-07-14 12:47:40 -07:00
mclarke47 93003e4079 flatten metrics 2020-07-14 12:47:40 -07:00
mclarke47 d3a61a80e0 initial creation of analysis run 2020-07-14 12:47:40 -07:00
mclarke47 522afe60e1 generate CRD / code 2020-07-14 12:47:40 -07:00
dthomson25 5518c6bf73 CI: Add codecov github action 2020-07-14 12:45:56 -07:00
d-kuro fe4df4c7e8 fix the calculation of unavailable replicas 2020-07-14 09:27:01 -07:00
d-kuro 11a6c9d39e go mod tidy 2020-07-14 09:27:01 -07:00
d-kuro 8c25a19042 add rollout replicas metrics 2020-07-14 09:27:01 -07:00
Kareena Hirani 9257fac194
fix: Populate .spec.template with default values before Rollout Validation (#580)
* Modify validation.go to populate rollout.spec.Template with default values before validation
2020-07-09 20:16:17 -07:00
Ryota 131774780c
docs: Correct comment (#566) 2020-07-07 17:00:07 -07:00
Shuhei Kitagawa b28e51245c
docs: Fix documents (#569) 2020-07-07 16:59:46 -07:00
Kareena Hirani efcb2a7605
fix: Add SMI RBAC Privileges (#564)
* Create SMI RBAC privileges

* make manifests
2020-07-01 18:26:44 -07:00
Kareena Hirani 3a0d079851
feat: Controller Validation (#549)
* Create validation for Rollout spec

* Fix all existing tests to comply with RO validation

* Remove duplicate VerifyRollout functions from conditions.go

* Update validation.go to use default values for RO spec

* Create tests in validation_test.go
2020-07-01 15:17:36 -07:00
Danny Thomson ba62247f2a Enable Github actions 2020-06-30 07:47:42 -07:00
Danny Thomson 656918f44e Set the currentStepIndex to max after bg to canary 2020-06-26 14:15:54 -07:00
Jesse Suen d9cc2f0e22
docs: add istio getting started guide (#548) 2020-06-26 01:39:58 -07:00
Danny Thomson c6b20bcd43 Fix: Update mockery dependency to fix go 1.14 issue 2020-06-25 13:32:06 -07:00
Matthew Clarke 119eb50278
docs: fix backoffLimit placement in example analysis job (#546) 2020-06-23 21:15:16 -07:00
Jesse Suen 3a795f5481
docs: rework documentation and getting started guide (#535) 2020-06-23 21:12:24 -07:00
Danny Thomson 7a5cd4fc15 Fix analysis validation to include Kayenta 2020-06-19 12:29:40 -07:00
Kareena Hirani be4c171599
chore: Argo Rollouts CRD validation (#539)
* Create validation check for metadata in Rollouts, Experiments, AnalysisTemplate/Run
2020-06-18 14:22:47 -07:00
dthomson25 028b552619 Alphabetize users 2020-06-18 09:03:56 -07:00
Justin Hutchings fa1a83bfe3 Add CodeQL security scanning 2020-06-18 08:57:35 -07:00
Derek Perkins ce07ca948b Add Nozzle to list of adopters 2020-06-18 08:16:56 -07:00
dthomson25 679853d0a0 Alphabetize Users 2020-06-18 08:15:44 -07:00
Thomas Santerre 1e76a31355 Add PayPay to list of Users
https://paypay.ne.jp/
2020-06-18 08:15:44 -07:00
dthomson25 fbe33e87dc
Add Headers to anti-affinity page (#536) 2020-06-17 11:06:21 -07:00
Kareena Hirani 0b074c7f6f
feat: SMI TrafficSplit Support for Canary (#520)
* Create SMI controller for smi.go

* Create new TrafficSplit, patch existing TrafficSplit

* Create tests for smi.go

* Allow different versions of TrafficSplit, modify tests accordingly

* Add test for unsupported API version
2020-06-16 12:21:52 -07:00
Danny Thomson 6886347429 Do not assume array order in test 2020-06-11 10:51:59 -07:00
Michael Haddon 4d5dbcc23e Example of using with latest version of kustomize 2020-06-05 09:04:15 -07:00
int32bit 4c024d3323
docs:Fix backoffLimit in wrong place (#527)
The property `backoffLimit` should be in `.job.spec.backoffLimit` rather than `.job.backoffLimit`.
2020-06-04 16:33:35 -07:00
khhirani 3bd3c04213 Create release for v0.8.3 2020-06-03 17:07:44 -07:00
khhirani 099c3cc468 Delete extra file 2020-05-28 11:40:13 -07:00
khhirani e257f848f7 Add comments about API token 2020-05-28 11:40:13 -07:00
khhirani 9fd87b69c9 Create example of RO with analysis step that references secret 2020-05-28 11:40:13 -07:00
Danny Thomson 9d88dad943 Fix: remove hash selector after switching from bg to canary 2020-05-28 11:39:19 -07:00
Fred Dubois 0431853b34 Add experiments/finalizers update rule
It's necessary because of this error message in the Experiment's
status.message:

  'Failed to create ReplicaSet for template ''canary'': replicasets.apps
  "rollout-experiment-step-fcd5895bc-2-1-canary" is forbidden: cannot set
  blockOwnerDeletion if an ownerReference refers to a resource you can''t
  set finalizers on: no RBAC policy matched, <nil>'
2020-05-28 11:37:54 -07:00
Fred Dubois 631ab0331e Add the update RBAC verb for some finalizers
When running Rollouts with AnalysisTemplates in OpenShift clusters, I
found that I needed extra RBAC rules to get Rollouts and
AnalysisTemplates to work properly.

The update permission for rollouts/finalizers is required because of
this error message in the Rollout's status.conditions[].message:

  Failed to create new replica set "cddemo-65c4c84fb": replicasets.apps
  "cddemo-65c4c84fb" is forbidden: cannot set blockOwnerDeletion if an
  ownerReference refers to a resource you can't set finalizers on: no RBAC
  policy matched, <nil>

The update permission for analysisruns/finalizers is required because of
this error message in the AnalysisRun's status.message:

  metric "smoketest" assessed Error due to consecutiveErrors (5) >
  consecutiveErrorLimit (4): "Error Message: jobs.batch
  "f7d6e1a4-93c9-11ea-a333-0050560113d3.smoketest.5" is forbidden: cannot
  set blockOwnerDeletion if an ownerReference refers to a resource you
  can't set finalizers on: no RBAC policy matched, <nil>"
2020-05-28 11:37:54 -07:00
Danny Thomson 5248136679 Remove unknown field from docs 2020-05-15 11:08:53 -07:00
Fred Dubois ddf8e0386f Add deployment security context to run as non-root 2020-05-14 08:30:55 -07:00
Fred Dubois 6c985c7105 Use numeric user in Dockerfile
This allows the use of a security context in kubernetes with
runAsNonRoot: true, because kubernetes can inspect the image and see
that the USER is != 0.

Removed user and group creation, it isn't necessary to get a working
docker image. Also when running in openshift, the user in the docker
image is usually ignored and a random user is used to run the image.
2020-05-14 08:30:55 -07:00
Kareena Hirani 774c37c7c0
docs: Create documentation for Secret Referencing Feature (#502) 2020-05-12 07:58:57 -07:00
Kareena Hirani f90fc77425
fix: Modify arg verification to check ValueFrom (#500)
* Modify MergeArgs to verify args using ValueFrom
2020-05-08 13:55:27 -07:00
Jesse Suen be225405dd
Kustomize support for Rollouts v0.8 and Experiment/AnalysisTemplates (#497) 2020-05-08 10:46:45 -07:00
dthomson25 4ae428fda2
docs: Update Version to v0.8.2 (#496) 2020-05-06 13:37:46 -07:00
dthomson25 36126ae4a5
docs: SMI Proposal (#487) 2020-05-06 08:17:52 -07:00
dthomson25 8ab799e47e
docs: Update install caveat to include v1.14 (#494) 2020-05-05 11:12:03 -07:00
dthomson25 e18bb35475
fix: Ensure ALB action with weight 0 marshalls correctly (#493) 2020-05-05 11:11:39 -07:00
dthomson25 66f97b23f7
fix: Add missing clusterrole for deleting pods #490 2020-05-05 11:09:49 -07:00
dthomson25 f7dc150301
docs: Add FAQ about controller behavior with new rollout (#489) 2020-05-05 10:32:19 -07:00
dthomson25 9417a99e0d
docs: Add missing field to alb docs (#488) 2020-04-27 13:21:53 -07:00
Kyle Cronin 4498dc6858
docs: fix web analysis condition examples (#486) 2020-04-27 11:32:48 -07:00
Jai Govindani 97fd094d46
Fix typo (#485) 2020-04-22 13:33:57 -07:00
dthomson25 ac213e49c5
Update version to v0.8.1 (#484) 2020-04-20 15:22:01 -07:00
dthomson25 943722cc13
docs: Standardize duration string in examples (#472) 2020-04-20 14:44:32 -07:00
dthomson25 9fde400aa1
Remove validation for limits and requests (#480) 2020-04-20 14:44:04 -07:00
dthomson25 b1174bdbbc
Add release docs (#481) 2020-04-20 14:43:44 -07:00
dthomson25 e93c474341
fix: Make kubectl plugin backwards compat with canary.stableRS (#482) 2020-04-20 14:43:33 -07:00
dthomson25 dbc2f5cad3
Duplicate StableRS to canary.StableRS (#483) 2020-04-20 14:43:05 -07:00
Ed Lee 7a57afefde
Update OWNERS 2020-04-18 15:43:17 -07:00
Samuel Suter e356a4fe1b
Consistently use Config struct for controller constructors (#477) 2020-04-17 08:43:13 -07:00
Danny Thomson 8861cff326 Update version to v0.8.0 2020-04-15 11:01:27 -07:00
Imre Nagi 7fbeb6b906
Fix typo (#470) 2020-04-14 09:09:28 -07:00
dthomson25 6589f2949e
docs: Add FAQ to docs (#468)
* Add FAQ to docs
* Add v0.8.0 changelog
2020-04-10 16:20:33 -07:00
Kareena Hirani 64bc693e05
docs: Anti-Affinity Documentation (#463)
* Docs for Rollouts Anti-Affinity feature

Co-authored-by: Danny Thomson <dthomson25@gmail.com>
2020-04-09 15:54:48 -07:00
dthomson25 1dde8c65b5
feat: Improve wavefront provider (#465)
* Use merge patch instead of JSON patch for service controller
* Improve Wavefront provider
2020-04-08 16:06:38 -07:00
dthomson25 db66fc0bd2
feat: Add ability to restart Pods (#453) 2020-04-08 15:28:27 -07:00
Fred Dubois 8db25b75e2
Download go deps explicitly in Dockerfile (#464)
Copy only go.mod and go.sum and download the dependencies _before_
running the build. This way if the source files change but _not_ the
dependencies, the docker build will leverage layer caching and not
re-download the go dependencies.
2020-04-08 13:01:07 -07:00
dthomson25 38b77a08f7
feat: Improve Prometheus metrics (#461)
* Add metrics on Analysis and Experiments
* Add aborted status to metrics
2020-04-08 09:03:00 -07:00
Kyle Cronin b04dcfe30d
chore: set kubectl flags on root command (#456) 2020-04-06 08:13:11 -07:00
Kyle Cronin 136d1ee0ec
docs: plugin command enhancements (#454)
* docs: plugin command enhancements
* chore: normalize and cleanup cmd docs
2020-04-06 08:12:51 -07:00
Kareena Hirani a43121663e
feat: Introduce Anti-Affinity option to rollout strategies (#445)
* Create AntiAffinity field in spec to allow users to enable anti-affinity rules for Blue-Green and Canary Strategy

* Add preferredDuringSchedulingIgnoredDuringExecution and requiredDuringSchedulingIgnoredDuringExecution to AntiAffinity struct
2020-04-03 12:18:16 -07:00
dthomson25 ebfd2f5c3e
Use managed-by annotation (#448) 2020-04-02 14:45:17 -07:00
dthomson25 7a76fcaed8
feat: Add ALB Ingress controller support (#444) 2020-04-01 16:16:36 -07:00
Le Van Nghia f60a0f6ea3
chore: Fix wrong comment about the formula of calculating the replica number (#447) 2020-03-24 07:58:45 -07:00
dthomson25 355c0c20c1
feat: Add Blue Green Post Promotion Analysis (#442)
* Add Post Analysis to BG types.go
* Implement bg post promotion AnalysisRuns
2020-03-23 13:39:53 -07:00
Kyle Cronin bdb7e9cf3e
docs: fixes and improvements (#437) 2020-03-13 09:02:27 -07:00
khhirani 8d63848313
improvement: Surface failure reasons for Rollouts/AnalysisRuns (#434)
* Create 'worstMessage' in AnalysisRun to set as status.message in case of failed/error/inconclusive metrics

* Create refactored method assessMetricFailureInconclusiveOrError for assessing phase of Metric and creating message for logs and status. Add tests for assessRunStatus and assessMetricFailureInconclusiveOrError

* Add AbortMessage to Rollout config
2020-03-12 15:56:04 -07:00
Samuel Suter cfff733a45
fix: Update Role/ClusterRole for Ingress access (#439) 2020-03-12 10:00:19 -07:00
dthomson25 a67a8f5f21
chore: Add StableRS to rollout status (#441) 2020-03-12 09:40:52 -07:00
Samuel Suter 1240d1b7cd
feat: Nginx canary traffic management (#426) 2020-03-11 16:28:04 -07:00
dthomson25 156ff4d746
Add remote name to 'make release-docs' (#435) 2020-03-11 08:55:50 -07:00
dthomson25 ed3d004f3b
Improve removing k8s 1.18 fields (#436) 2020-03-10 17:46:22 -07:00
dthomson25 4e0d45e44b
feat: Add Pre Promotion Bluegreen Analysis (#415) 2020-03-09 09:49:50 -07:00
dthomson25 77d2d76306
chore: Standardize controller-gen to v0.2.5 (#431) 2020-03-06 14:39:29 -08:00
khhirani 93312ee2e5
feat: Allow AnalysisTemplates to reference secrets (#420)
* Change AnalysisRun spec to allow user to reference secrets. Add SecretInformer to retrieve secrets more efficiently

* Create SecretKeyRef in AnalysisRun spec which requires secret name/key. Modify clusterrole to allow get/watch/list secrets

* Create RedactorFormatter to redact secrets from log messages

* Refactor secret resolution into resolveArgs method in Analysis controller

* Modify RedactorFormatter to ignore empty secrets. Check whether secretKeyRef is valid in resolveArgs

* Modify log tests to each use new logger instance to prevent errors
2020-03-04 15:22:59 -08:00
dthomson25 8aafaedc13
feat: pause duration as string with time unit (#423) 2020-03-04 14:54:02 -08:00
Samuel Suter 4c00d8782c
Fix TestListCmdUsage test (#428) 2020-03-03 19:00:44 -08:00
Kyle Cronin ac9123fd22
docs: generate kubectl plugin docs (#422) 2020-03-03 17:21:38 -08:00
dthomson25 15c2e69669
feat: Add metrics on queues and go client http calls (#416)
* Add metrics on workqueues
* Add metrics on go-client http calls
2020-03-03 08:14:07 -08:00
dthomson25 dc11658be8
Add Go mod download command to contributor docs (#425) 2020-03-02 17:53:35 -08:00
dthomson25 57134f7b78
Rerun codegen (#418) 2020-02-27 13:40:42 -08:00
Samuel Suter f00e92d79a
docs: Use correct podTemplateHashValue attribute for valueFrom (#417) 2020-02-27 13:25:02 -08:00
Liviu Costea aa1dc84317
chore: Migrate from dep to go modules (#331) 2020-02-27 11:31:23 -08:00
Danny Thomson 55f6fd89b9 Update to v0.7.2 2020-02-25 11:43:15 -08:00
dthomson25 ce827d412d
Remove extra comma in docs 2020-02-25 11:42:12 -08:00
Kyle Cronin b9095faa96
feat: Add more command aliases in kubectl plugin (#414) 2020-02-23 16:01:48 -08:00
Saradhi Sreegiriraju b8d30c541d
docs: Update README.md (#411) 2020-02-16 23:23:25 -08:00
dthomson25 f06507b935
feat: Allow Rollout to specify multiples templates (#409)
* Add Templates to RolloutAnalysis in types.go
* Implement Templates to RolloutAnalysis
* Add Docs on Analysis Templates field
2020-02-14 14:41:43 -08:00
khhirani 0f1bb975ff
refactor: Perform arg substitution in Analysis controller (#407)
* refactored argument substitution in analysis controller

* Reformatted and removed extraneous tests from providers

* Reformatted import statements

* Added test for error case
2020-02-13 14:14:44 -08:00
Danny Thomson 94072e9365 Update CHANGELOG 2020-02-10 10:11:01 -08:00
Danny Thomson 0c6a39489a Release v0.7.1 2020-02-10 10:09:53 -08:00
Jesse Suen 4bf6fa30f9
fix: rollout transformer for pod affinity. add new v0.7 name references and testing (#399) 2020-02-07 15:13:54 -08:00
dthomson25 5fa39132d4
Allow ex to use availableAt and finishedAt as args (#400) 2020-02-07 14:16:33 -08:00
dthomson25 737d9cd537
chore: Add autogenerated sites/ to gitignore (#398) 2020-02-06 15:29:51 -08:00
dthomson25 beeeb56f68
Experiments passed duration succeed with running analysis (#392) 2020-02-06 14:27:53 -08:00
khhirani a2bf90dc40
Corrected HPA doc (#396) 2020-02-06 13:49:54 -08:00
Akshay Chitneni d7c7bc7926
fix: Adding ca-certificates to docker image (#393) 2020-02-06 08:34:04 -08:00
Danny Thomson 229b7e4875 Remove v0.7.0 warning for traffic management 2020-02-05 09:53:57 -08:00
khhirani afa3e0b485
Reduce log from error to warning (#394) 2020-02-04 18:03:59 -08:00
dthomson25 2dc5ecceea
refactor: Refactor BlueGreen Strategy (#388) 2020-02-03 22:59:14 -08:00
dthomson25 8b2e66d418
feat: Refactor Experiment handling of pod hashes (#385)
* Add pod hash to rs created from experiments
* Ability to reference an Exeriment template's podTemplateHash
2020-02-03 14:11:45 -08:00
dthomson25 0196c22a44
feat: Add patchMergeKey and patchStrategy struct tags and comments (#386) 2020-01-28 12:54:35 -08:00
Kyle Cronin 1a6273e404 docs: update web metrics section (#381)
* update web metrics example
* fix toc for analysis page by correcting CRD heading
* include command to view docs locally using docker
2020-01-27 18:23:12 -08:00
Kyle Cronin a743d30ec3 feat: Show scale down time for bluegreen replicasets (#370) (#382)
Display time remaining until BlueGreen replicaset scale down deadline
2020-01-27 18:21:17 -08:00
dthomson25 34732b2df2
docs: Correct analysis docs (#378) 2020-01-22 15:51:42 -08:00
920 changed files with 285097 additions and 44276 deletions

View File

@ -1,87 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: argo-rollouts-ci-
spec:
entrypoint: argo-rollouts-ci
arguments:
parameters:
- name: revision
value: master
- name: repo
value: https://github.com/argoproj/argo-rollouts.git
templates:
- name: argo-rollouts-ci
steps:
- - name: build
template: ci-dind
arguments:
parameters:
- name: cmd
value: make image
- name: test
template: ci-builder
arguments:
parameters:
- name: cmd
value: "dep ensure && make lint test && bash <(curl -s https://codecov.io/bash) -f coverage.out"
- name: ci-builder
inputs:
parameters:
- name: cmd
artifacts:
- name: code
path: /go/src/github.com/argoproj/argo-rollouts
git:
repo: "{{workflow.parameters.repo}}"
revision: "{{workflow.parameters.revision}}"
container:
image: argoproj/argo-rollouts-ci-builder:latest
command: [bash, -c]
args: ["{{inputs.parameters.cmd}}"]
workingDir: /go/src/github.com/argoproj/argo-rollouts
env:
- name: CODECOV_TOKEN
valueFrom:
secretKeyRef:
name: argo-rollouts-codecov-token
key: codecov-token
resources:
requests:
memory: 1024Mi
cpu: 200m
archiveLocation:
archiveLogs: true
- name: ci-dind
inputs:
parameters:
- name: cmd
artifacts:
- name: code
path: /go/src/github.com/argoproj/argo-rollouts
git:
repo: "{{workflow.parameters.repo}}"
revision: "{{workflow.parameters.revision}}"
container:
image: argoproj/argo-rollouts-ci-builder:latest
command: [sh, -c]
args: ["until docker ps; do sleep 3; done && {{inputs.parameters.cmd}}"]
workingDir: /go/src/github.com/argoproj/argo-rollouts
env:
- name: DOCKER_HOST
value: 127.0.0.1
resources:
requests:
memory: 1024Mi
cpu: 200m
sidecars:
- name: dind
image: docker:18.09-dind
securityContext:
privileged: true
mirrorVolumeMounts: true
archiveLocation:
archiveLogs: true

30
.chglog/CHANGELOG.tpl.md Executable file
View File

@ -0,0 +1,30 @@
{{ range .Versions }}
<a name="{{ .Tag.Name }}"></a>
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }} ({{ datetime "2006-01-02" .Tag.Date }})
{{ range .CommitGroups -}}
### {{ .Title }}
{{ range .Commits -}}
* {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
{{ end }}
{{ end -}}
{{- if .RevertCommits -}}
### Reverts
{{ range .RevertCommits -}}
* {{ .Revert.Header }}
{{ end }}
{{ end -}}
{{- if .NoteGroups -}}
{{ range .NoteGroups -}}
### {{ .Title }}
{{ range .Notes }}
{{ .Body }}
{{ end }}
{{ end -}}
{{ end -}}
{{ end -}}

28
.chglog/config.yml Executable file
View File

@ -0,0 +1,28 @@
style: github
template: CHANGELOG.tpl.md
info:
title: CHANGELOG
repository_url: https://github.com/argoproj/argo-rollouts
options:
commits:
# filters:
# Type:
# - feat
# - fix
# - perf
# - refactor
commit_groups:
# title_maps:
# feat: Features
# fix: Bug Fixes
# perf: Performance Improvements
# refactor: Code Refactoring
header:
pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$"
pattern_maps:
- Type
- Scope
- Subject
notes:
keywords:
- BREAKING CHANGE

View File

@ -1,48 +0,0 @@
version: 2.1
jobs:
build:
working_directory: /go/src/github.com/argoproj/argo-rollouts
docker:
# CircleCI Go images available at: https://hub.docker.com/r/circleci/golang/
- image: circleci/golang:1.13.1
resource_class: xlarge
environment:
TEST_RESULTS: /tmp/test-results
steps:
- checkout
- run: mkdir -p $TEST_RESULTS
- restore_cache:
keys:
- v3-pkg-cache
- run: go get github.com/jstemmer/go-junit-report
- run: go get github.com/golangci/golangci-lint/cmd/golangci-lint
- run:
command: dep ensure
- run:
name: Run tests
command: |
set -x
trap "go-junit-report <${TEST_RESULTS}/go-test.out > ${TEST_RESULTS}/go-test-report.xml" EXIT
make test | tee ${TEST_RESULTS}/go-test.out
- store_test_results:
path: /tmp/test-results
- run:
name: Uploading code coverage
command: bash <(curl -s https://codecov.io/bash) -f coverage.out
# This occasionally takes 2m
background: true
- run:
command: make lint
- run:
name: Check nothing has changed after lint
command: git diff --exit-code
- save_cache:
key: v3-pkg-cache
paths:
- /go/pkg
- ~/.cache/go-build
workflows:
version: 2
workflow:
jobs:
- build

View File

@ -6,4 +6,18 @@ coverage:
threshold: 0.1
project:
default:
threshold: 0.1
threshold: 0.1
ignore:
- 'pkg/apis/rollouts/v1alpha1'
- 'test'
- '**/*.pb.go'
- '**/*.pb.gw.go'
- '**/*generated.go'
- '**/*generated.deepcopy.go'
- '**/*_test.go'
- 'pkg/apis/client/.*'
- 'pkg/client/.*'
- 'vendor/.*'
- '**/mocks/*'
- 'hack/gen-crd-spec/main.go'
- 'hack/gen-docs/main.go'

View File

@ -1,12 +1,11 @@
# Prevent vendor directory from being copied to ensure we are not not pulling unexpected cruft from
# a user's workspace, and are only building off of what is locked by dep.
.vscode/
.idea/
.DS_Store
vendor/
dist/
ui/dist/
*.iml
# delve debug binaries
cmd/**/debug
debug.test
coverage.*
ui/node_modules

52
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,52 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: 'bug'
assignees: ''
---
<!-- If you are trying to resolve an environment-specific issue or have a one-off question about the edge case that does not require a feature then please consider asking a question in argo rollouts slack [channel](https://argoproj.github.io/community/join-slack). -->
Checklist:
* [ ] I've included steps to reproduce the bug.
* [ ] I've included the version of argo rollouts.
**Describe the bug**
<!-- A clear and concise description of what the bug is. -->
**To Reproduce**
<!-- A list of the steps required to reproduce the issue. Best of all, give us the URL to a repository that exhibits this issue. -->
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Version**
<!-- What version of argo rollouts controller are you running? -->
**Logs**
```
# Paste the logs from the rollout controller
# Logs for the entire controller:
kubectl logs -n argo-rollouts deployment/argo-rollouts
# Logs for a specific rollout:
kubectl logs -n argo-rollouts deployment/argo-rollouts | grep rollout=<ROLLOUTNAME
```
---
<!-- Issue Author: Don't delete this message to encourage other users to support your issue! -->
**Message from the maintainers**:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.

12
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,12 @@
blank_issues_enabled: false
contact_links:
- name: Have you read the docs?
url: https://argo-rollouts.readthedocs.io/
about: Much help can be found in the docs
- name: Ask a question
url: https://github.com/argoproj/argo-rollouts/discussions/new
about: Ask a question or start a discussion about Argo Rollouts
- name: Chat on Slack
url: https://argoproj.github.io/community/join-slack
about: Maybe chatting with the community can help

View File

@ -0,0 +1,18 @@
---
name: Enhancement proposal
about: Propose an enhancement for this project
labels: 'enhancement'
---
# Summary
What change needs making?
# Use Cases
When would you use this?
---
<!-- Issue Author: Don't delete this message to encourage other users to support your issue! -->
**Message from the maintainers**:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.

13
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,13 @@
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "daily"
ignore:
- dependency-name: k8s.io/*
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"

13
.github/no-response.yml vendored Normal file
View File

@ -0,0 +1,13 @@
# Configuration for probot-no-response - https://github.com/probot/no-response
# Number of days of inactivity before an Issue is closed for lack of response
daysUntilClose: 14
# Label requiring a response
responseRequiredLabel: more-information-needed
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
closeComment: >
This issue has been automatically closed because there has been no response
to our request for more information from the original author. With only the
information that is currently in the issue, we don't have enough information
to take action. Please reach out if you have or find the answers we need so
that we can investigate further.

8
.github/pull_request_template.md vendored Normal file
View File

@ -0,0 +1,8 @@
Checklist:
* [ ] Either (a) I've created an [enhancement proposal](https://github.com/argoproj/argo-rollouts/issues/new/choose) and discussed it with the community, (b) this is a bug fix, or (c) this is a chore.
* [ ] The title of the PR is (a) [conventional](https://www.conventionalcommits.org/en/v1.0.0/) with a list of types and scopes found [here](https://github.com/argoproj/argo-rollouts/blob/master/.github/workflows/pr-title-check.yml), (b) states what changed, and (c) suffixes the related issues number. E.g. `"fix(controller): Updates such and such. Fixes #1234"`.
* [ ] I've signed my commits with [DCO](https://github.com/argoproj/argoproj/blob/main/community/CONTRIBUTING.md#legal)
* [ ] I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
* [ ] My builds are green. Try syncing with master if they are not.
* [ ] My organization is added to [USERS.md](https://github.com/argoproj/argo-rollouts/blob/master/USERS.md).

39
.github/workflows/README.md vendored Normal file
View File

@ -0,0 +1,39 @@
# Workflows
| Workflow | Description |
|---------------------|-----------------------------------------------------------------|
| changelog.yml | Updates changelog when a release is published |
| codeql.yaml | CodeQL analysis |
| docker-publish.yaml | Build container image for PR's & publish for push events |
| image-reuse.yaml | Build, push, and Sign container images |
| go.yaml | lint, build, codegen |
| pr-title-check.yaml | Lint PR for semantic information |
| init-release.yaml | Build manifests and version then create a PR for release branch |
| release.yaml | Build images, cli-binaries, provenances, and post actions |
# Reusable workflows
## image-reuse.yaml
- The resuable workflow can be used to publish or build images with multiple container registries(Quay,GHCR, dockerhub), and then sign them with cosign when an image is published.
- A GO version `must` be specified e.g. 1.19
- The image name for each registry *must* contain the tag. Note: multiple tags are allowed for each registry using a CSV type.
- Multiple platforms can be specified e.g. linux/amd64,linux/arm64
- Images are not published by default. A boolean value must be set to `true` to push images.
- An optional target can be specified.
| Inputs | Description | Type | Required | Defaults |
|-------------------|-------------------------------------|-------------|----------|-----------------|
| go-version | Version of Go to be used | string | true | none |
| quay_image_name | Full image name and tag | CSV, string | false | none |
| ghcr_image_name | Full image name and tag | CSV, string | false | none |
| docker_image_name | Full image name and tag | CSV, string | false | none |
| platforms | Platforms to build (linux/amd64) | CSV, string | false | linux/amd64 |
| push | Whether to push image/s to registry | boolean | false | false |
| target | Target build stage | string | false | none |
| Outputs | Description | Type |
|-------------|------------------------------------------|-------|
|image-digest | Image digest of image container created | string|

34
.github/workflows/changelog.yml vendored Normal file
View File

@ -0,0 +1,34 @@
name: Update Changelog
on:
release:
types: [published]
permissions:
contents: read
jobs:
updateChangelog:
permissions:
contents: write # for peter-evans/create-pull-request to create branch
pull-requests: write # for peter-evans/create-pull-request to create a PR
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Update Changelog
run: |
curl -o git-chglog.tar.gz -L https://github.com/git-chglog/git-chglog/releases/download/v0.15.1/git-chglog_0.15.1_linux_amd64.tar.gz
tar -zxvf git-chglog.tar.gz
chmod u+x git-chglog
./git-chglog --sort semver -o CHANGELOG.md v1.3.1..
rm git-chglog
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
commit-message: update changelog
title: "docs: Update Changelog"
body: Update changelog to reflect release changes
branch: update-changelog
base: master
add-paths: |
CHANGELOG.md

56
.github/workflows/codeql.yml vendored Normal file
View File

@ -0,0 +1,56 @@
name: "Code scanning - action"
on:
push:
branches: [master]
pull_request:
branches: [master]
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: # added using https://github.com/step-security/secure-workflows
contents: read
jobs:
CodeQL-Build:
# CodeQL runs on ubuntu-latest and windows-latest
permissions:
actions: read # for github/codeql-action/init to get workflow details
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/autobuild to send a status report
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
# Override language selection by uncommenting this and choosing your languages
# with:
# languages: go, javascript, csharp, python, cpp, java
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

93
.github/workflows/docker-publish.yml vendored Normal file
View File

@ -0,0 +1,93 @@
name: Docker
on:
push:
branches:
- master
- release-*
# Run tests for any PRs.
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
set-vars:
permissions:
contents: read
runs-on: ubuntu-latest
outputs:
controller-meta-tags: ${{ steps.controller-meta.outputs.tags }}
plugin-meta-tags: ${{ steps.plugin-meta.outputs.tags }}
platforms: ${{ steps.platform-matrix.outputs.platform-matrix }}
steps:
- name: Docker meta (controller)
id: controller-meta
uses: docker/metadata-action@v5
with:
images: |
quay.io/argoproj/argo-rollouts
tags: |
type=ref,event=branch,enable=${{ github.ref != 'refs/heads/master'}}
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }}
- name: Docker meta (plugin)
id: plugin-meta
uses: docker/metadata-action@v5
with:
images: |
quay.io/argoproj/kubectl-argo-rollouts
tags: |
type=ref,event=branch,enable=${{ github.ref != 'refs/heads/master'}}
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }}
# avoid building linux/arm64 for PRs since it takes so long
- name: Set Platform Matrix
id: platform-matrix
run: |
PLATFORM_MATRIX=linux/amd64
if [[ "${{ github.event_name }}" == "push" || "${{ contains(github.event.pull_request.labels.*.name, 'test-arm-image') }}" == "true" ]]
then
PLATFORM_MATRIX=$PLATFORM_MATRIX,linux/arm64
fi
echo "platform-matrix=$PLATFORM_MATRIX" >> $GITHUB_OUTPUT
build-and-push-controller-image:
needs: [set-vars]
permissions:
contents: read
packages: write # for pushing packages to GHCR, which is used by cd.apps.argoproj.io to avoid polluting Quay with tags
id-token: write # for creating OIDC tokens for signing.
uses: ./.github/workflows/image-reuse.yaml
with:
quay_image_name: ${{ needs.set-vars.outputs.controller-meta-tags }}
# Note: cannot use env variables to set go-version (https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations)
go-version: '1.23'
platforms: ${{ needs.set-vars.outputs.platforms }}
push: ${{ github.event_name != 'pull_request' }}
secrets:
quay_username: ${{ secrets.QUAY_USERNAME }}
quay_password: ${{ secrets.QUAY_ROBOT_TOKEN }}
build-and-push-plugin-image:
needs: [set-vars]
permissions:
contents: read
packages: write # for pushing packages to GHCR, which is used by cd.apps.argoproj.io to avoid polluting Quay with tags
id-token: write # for creating OIDC tokens for signing.
uses: ./.github/workflows/image-reuse.yaml
with:
quay_image_name: ${{ needs.set-vars.outputs.plugin-meta-tags }}
# Note: cannot use env variables to set go-version (https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations)
go-version: '1.23'
platforms: ${{ needs.set-vars.outputs.platforms }}
push: ${{ github.event_name != 'pull_request' }}
target: kubectl-argo-rollouts
secrets:
quay_username: ${{ secrets.QUAY_USERNAME }}
quay_password: ${{ secrets.QUAY_ROBOT_TOKEN }}

39
.github/workflows/gh-pages.yaml vendored Normal file
View File

@ -0,0 +1,39 @@
name: Deploy-Docs
on:
push:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
deploy:
permissions:
contents: write # for peaceiris/actions-gh-pages to push pages branch
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Set up Go
uses: actions/setup-go@v5.4.0
with:
go-version: '1.23'
- name: build
run: |
pip install mkdocs mkdocs_material
make docs
mkdocs build
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./site

View File

@ -1,28 +1,112 @@
name: Go
on: [push]
jobs:
on:
push:
branches:
- 'master'
- 'release-*'
pull_request:
branches:
- 'master'
env:
# Golang version to use across CI steps
GOLANG_VERSION: '1.23'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
lint-go:
permissions:
contents: read # for actions/checkout to fetch code
pull-requests: read # for golangci/golangci-lint-action to fetch pull requests
name: Lint Go code
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v5.4.0
with:
go-version: ${{ env.GOLANG_VERSION }}
- name: Checkout code
uses: actions/checkout@v4
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.1.6
args: --timeout 6m
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v5.4.0
with:
go-version: ${{ env.GOLANG_VERSION }}
id: go
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Check out code into the Go module directory
uses: actions/checkout@v1
- name: Restore go build cache
uses: actions/cache@v4
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-v1-${{ github.run_id }}
- name: Get dependencies
run: |
go get -v -t -d ./...
if [ -f Gopkg.toml ]; then
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
dep ensure
fi
- name: Download all Go modules
run: |
go mod download
- name: Test
run: go test -failfast -covermode=count -coverprofile=coverage.out
- name: Compile all packages
run: make controller plugin
codegen:
name: Verify Codegen
runs-on: ubuntu-latest
env:
GOPATH: /home/runner/go
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Golang
uses: actions/setup-go@v5.4.0
with:
go-version: ${{ env.GOLANG_VERSION }}
# k8s codegen generates files into GOPATH location instead of the GitHub git checkout location
# This symlink is necessary to ensure that `git diff` detects changes
- name: Create symlink in GOPATH
run: |
mkdir -p ~/go/src/github.com/argoproj
ln -s $(pwd) ~/go/src/github.com/argoproj/argo-rollouts
- uses: actions/cache@v4
with:
path: /home/runner/.cache/go-build
key: GOCACHE-${{ hashFiles('**/go.mod') }}
- uses: actions/cache@v4
with:
path: /home/runner/go/pkg/mod
key: GOMODCACHE-${{ hashFiles('**/go.mod') }}
- uses: actions/cache@v4
with:
path: /home/runner/go/bin
key: go-bin-v1-${{ hashFiles('**/go.mod') }}
- name: Install protoc
run: |
make install-toolchain
- name: Add ~/go/bin to PATH
run: |
echo "/home/runner/go/bin" >> $GITHUB_PATH
- name: Add /usr/local/bin to PATH
run: |
echo "/usr/local/bin" >> $GITHUB_PATH
- name: Run codegen
run: |
make go-mod-vendor
make codegen
- name: Ensure nothing changed
run: git diff --exit-code

153
.github/workflows/image-reuse.yaml vendored Normal file
View File

@ -0,0 +1,153 @@
name: Publish and Sign Container Image
on:
workflow_call:
inputs:
go-version:
required: true
type: string
quay_image_name:
required: false
type: string
ghcr_image_name:
required: false
type: string
docker_image_name:
required: false
type: string
platforms:
required: true
type: string
default: linux/amd64
push:
required: true
type: boolean
default: false
target:
required: false
type: string
secrets:
quay_username:
required: false
quay_password:
required: false
ghcr_username:
required: false
ghcr_password:
required: false
docker_username:
required: false
docker_password:
required: false
outputs:
image-digest:
description: "sha256 digest of container image"
value: ${{ jobs.publish.outputs.image-digest }}
permissions: {}
jobs:
publish:
permissions:
contents: read
packages: write # Used to push images to `ghcr.io` if used.
id-token: write # Needed to create an OIDC token for keyless signing
runs-on: ubuntu-22.04
outputs:
image-digest: ${{ steps.image.outputs.digest }}
steps:
- name: Checkout code
uses: actions/checkout@v4 # v3.3.0
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
if: ${{ github.ref_type == 'tag'}}
- name: Checkout code
uses: actions/checkout@v4 # v3.3.0
if: ${{ github.ref_type != 'tag'}}
- name: Setup Golang
uses: actions/setup-go@v5.4.0 # v3.5.0
with:
go-version: ${{ inputs.go-version }}
- name: Install cosign
uses: sigstore/cosign-installer@3454372f43399081ed03b604cb2d021dabca52bb # v3.8.2
with:
cosign-release: 'v2.2.0'
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Setup tags for container image as a CSV type
run: |
IMAGE_TAGS=$(for str in \
${{ inputs.quay_image_name }} \
${{ inputs.ghcr_image_name }} \
${{ inputs.docker_image_name}}; do
echo -n "${str}",;done | sed 's/,$//')
echo $IMAGE_TAGS
echo "TAGS=$IMAGE_TAGS" >> $GITHUB_ENV
- name: Setup image namespace for signing, strip off the tag
run: |
TAGS=$(for tag in \
${{ inputs.quay_image_name }} \
${{ inputs.ghcr_image_name }} \
${{ inputs.docker_image_name}}; do
echo -n "${tag}" | awk -F ":" '{print $1}' -;done)
echo $TAGS
echo 'SIGNING_TAGS<<EOF' >> $GITHUB_ENV
echo $TAGS >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Login to Quay.io
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
registry: quay.io
username: ${{ secrets.quay_username }}
password: ${{ secrets.quay_password }}
if: ${{ inputs.quay_image_name && inputs.push }}
- name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
registry: ghcr.io
username: ${{ secrets.ghcr_username }}
password: ${{ secrets.ghcr_password }}
if: ${{ inputs.ghcr_image_name && inputs.push }}
- name: Login to dockerhub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
username: ${{ secrets.docker_username }}
password: ${{ secrets.docker_password }}
if: ${{ inputs.docker_image_name && inputs.push }}
- name: Build and push container image
id: image
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 #v6.18.0
with:
context: .
platforms: ${{ inputs.platforms }}
push: ${{ inputs.push }}
tags: ${{ env.TAGS }}
target: ${{ inputs.target }}
provenance: false
sbom: false
- name: Sign container images
run: |
for signing_tag in $SIGNING_TAGS; do
cosign sign \
-a "repo=${{ github.repository }}" \
-a "workflow=${{ github.workflow }}" \
-a "sha=${{ github.sha }}" \
--yes \
"$signing_tag"@${{ steps.image.outputs.digest }}
done
if: ${{ inputs.push }}

53
.github/workflows/pr-title-check.yml vendored Normal file
View File

@ -0,0 +1,53 @@
name: "Lint PR"
on:
pull_request_target:
types:
- opened
- edited
- synchronize
permissions:
contents: read
jobs:
main:
permissions:
pull-requests: read # for amannn/action-semantic-pull-request to analyze PRs
statuses: write # for amannn/action-semantic-pull-request to mark status of analyzed PR
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
with:
# Configure which types are allowed (newline delimited).
# Default: https://github.com/commitizen/conventional-commit-types
types: |
feat
fix
docs
style
refactor
perf
test
build
ci
chore
revert
# Configure which scopes are allowed (newline delimited).
scopes: |
controller
dashboard
trafficrouting
analysis
metricprovider
experiments
deps
example
cli
# Configure that a scope must always be provided.
requireScope: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

269
.github/workflows/release.yaml vendored Normal file
View File

@ -0,0 +1,269 @@
name: Release
on:
push:
tags:
- 'v*'
permissions: {}
env:
GOLANG_VERSION: '1.23' # Note: go-version must also be set in job controller-image.with.go-version & plugin-image.with.go-version.
jobs:
controller-image:
permissions:
contents: read
packages: write # Required and used to push images to `ghcr.io` if used.
id-token: write # For creating OIDC tokens for signing.
uses: ./.github/workflows/image-reuse.yaml
with:
quay_image_name: quay.io/argoproj/argo-rollouts:${{ github.ref_name }}
# Note: cannot use env variables to set go-version (https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations)
go-version: '1.23'
platforms: linux/amd64,linux/arm64
push: true
secrets:
quay_username: ${{ secrets.QUAY_USERNAME }}
quay_password: ${{ secrets.QUAY_ROBOT_TOKEN }}
plugin-image:
permissions:
contents: read
packages: write # Required and used to push images to `ghcr.io` if used.
id-token: write # For creating OIDC tokens for signing.
uses: ./.github/workflows/image-reuse.yaml
with:
quay_image_name: quay.io/argoproj/kubectl-argo-rollouts:${{ github.ref_name }}
# Note: cannot use env variables to set go-version (https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations)
go-version: '1.23'
platforms: linux/amd64,linux/arm64
push: true
target: kubectl-argo-rollouts
secrets:
quay_username: ${{ secrets.QUAY_USERNAME }}
quay_password: ${{ secrets.QUAY_ROBOT_TOKEN }}
controller-image-provenance:
needs:
- controller-image
permissions:
actions: read # for detecting the Github Actions environment.
id-token: write # for creating OIDC tokens for signing.
packages: write # for uploading attestations. (https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#known-issues)
# Must be refernced by a tag. https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#referencing-the-slsa-generator
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@v2.1.0
with:
image: quay.io/argoproj/argo-rollouts
digest: ${{ needs.controller-image.outputs.image-digest }}
secrets:
registry-username: ${{ secrets.QUAY_USERNAME }}
registry-password: ${{ secrets.QUAY_ROBOT_TOKEN }}
plugin-image-provenance:
needs:
- plugin-image
permissions:
actions: read # for detecting the Github Actions environment.
id-token: write # for creating OIDC tokens for signing.
packages: write # for uploading attestations. (https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#known-issues)
# Must be refernced by a tag. https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#referencing-the-slsa-generator
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@v2.1.0
with:
image: quay.io/argoproj/kubectl-argo-rollouts
digest: ${{ needs.plugin-image.outputs.image-digest }}
secrets:
registry-username: ${{ secrets.QUAY_USERNAME }}
registry-password: ${{ secrets.QUAY_ROBOT_TOKEN }}
release-artifacts:
permissions:
contents: write # for softprops/action-gh-release to create GitHub release
runs-on: ubuntu-latest
outputs:
hashes: ${{ steps.hash.outputs.hashes }}
steps:
- name: Checkout
uses: actions/checkout@v4 # v3.5.2
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Golang
uses: actions/setup-go@v5.4.0 # v4.0.1
with:
go-version: ${{ env.GOLANG_VERSION }}
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Generate release artifacts
run: |
make release-plugins
make checksums
make manifests IMAGE_TAG=${{ github.ref_name }}
- name: Draft release
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v0.1.15
with:
tag_name: ${{ github.event.inputs.tag }}
draft: true
files: |
dist/kubectl-argo-rollouts-linux-amd64
dist/kubectl-argo-rollouts-linux-arm64
dist/kubectl-argo-rollouts-darwin-amd64
dist/kubectl-argo-rollouts-darwin-arm64
dist/kubectl-argo-rollouts-windows-amd64
dist/argo-rollouts-checksums.txt
manifests/dashboard-install.yaml
manifests/install.yaml
manifests/namespace-install.yaml
manifests/notifications-install.yaml
docs/features/kustomize/rollout_cr_schema.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate hashes for provenance
id: hash
run: |
echo "hashes=$(sha256sum ./dist/kubectl-argo-rollouts-* ./manifests/*.yaml | base64 -w0)" >> "$GITHUB_OUTPUT"
release-artifacts-provenance:
needs:
- release-artifacts
permissions:
actions: read # for detecting the Github Actions environment
id-token: write # Needed for provenance signing and ID
contents: write # Needed for release uploads
# Must be refernced by a tag. https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#referencing-the-slsa-generator
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
with:
base64-subjects: '${{ needs.release-artifacts.outputs.hashes }}'
provenance-name: 'argo-rollouts.intoto.jsonl'
upload-assets: true
draft-release: true
generate-sbom:
name: Create Sbom and sign assets
needs:
- release-artifacts
- release-artifacts-provenance
permissions:
contents: write # Needed for release uploads
id-token: write # Needed for signing Sbom
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4 # v3.3.0
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Golang
uses: actions/setup-go@v5.4.0 # v4.0.0
with:
go-version: ${{ env.GOLANG_VERSION }}
- name: Install cosign
uses: sigstore/cosign-installer@3454372f43399081ed03b604cb2d021dabca52bb # v3.8.2
with:
cosign-release: 'v2.2.0'
- name: Generate SBOM (spdx)
id: spdx-builder
env:
# defines the spdx/spdx-sbom-generator version to use.
SPDX_GEN_VERSION: v0.0.13
# defines the sigs.k8s.io/bom version to use.
SIGS_BOM_VERSION: v0.2.1
# comma delimited list of project relative folders to inspect for package
# managers (gomod, yarn, npm).
PROJECT_FOLDERS: '.,./ui'
# full qualified name of the container image to be inspected
CONTAINER_IMAGE: quay.io/argoproj/argo-rollouts:${{ github.event.inputs.tag }}
run: |
yarn install --cwd ./ui
go install github.com/spdx/spdx-sbom-generator/cmd/generator@$SPDX_GEN_VERSION
go install sigs.k8s.io/bom/cmd/bom@$SIGS_BOM_VERSION
# Generate SPDX for project dependencies analyzing package managers
for folder in $(echo $PROJECT_FOLDERS | sed "s/,/ /g")
do
generator -p $folder -o /tmp
done
# Generate SPDX for binaries analyzing the container image
if [[ ! -z CONTAINER_IMAGE ]]; then
bom generate -o /tmp/bom-docker-image.spdx -i $CONTAINER_IMAGE
fi
cd /tmp && tar -zcf sbom.tar.gz *.spdx
- name: Sign SBOM
run: |
cosign sign-blob \
--output-certificate=/tmp/sbom.tar.gz.pem \
--output-signature=/tmp/sbom.tar.gz.sig \
--yes \
/tmp/sbom.tar.gz
- name: Upload SBOM and signature assets
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v0.1.15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref_name }}
draft: true
files: |
/tmp/sbom.tar.*
post-release:
needs:
- release-artifacts
- generate-sbom
permissions:
contents: write # Needed to push commit to update stable tag
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4 # v3.3.0
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Git author information
run: |
set -ue
git config --global user.email 'ci@argoproj.com'
git config --global user.name 'CI'
- name: Check if tag is the latest version and not a pre-release
run: |
set -xue
# Fetch all tag information
git fetch --prune --tags --force
LATEST_TAG=$(git -c 'versionsort.suffix=-rc' tag --list --sort=version:refname | tail -n1)
PRE_RELEASE=false
# Check if latest tag is a pre-release
if echo $LATEST_TAG | grep -E -- '-rc[0-9]+$';then
PRE_RELEASE=true
fi
# Ensure latest tag matches github.ref_name & not a pre-release
if [[ $LATEST_TAG == ${{ github.ref_name }} ]] && [[ $PRE_RELEASE != 'true' ]];then
echo "TAG_STABLE=true" >> $GITHUB_ENV
else
echo "TAG_STABLE=false" >> $GITHUB_ENV
fi
- name: Update stable tag to latest version
run: |
git tag -f stable ${{ github.ref_name }}
git push -f origin stable
if: ${{ env.TAG_STABLE == 'true' }}

31
.github/workflows/stale-issues-pr.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '30 1 * * *'
permissions:
contents: read
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v9
with:
operations-per-run: 250
stale-issue-message: 'This issue is stale because it has been open 60 days with no activity.'
stale-pr-message: 'This PR is stale because it has been open 90 days with no activity.'
close-issue-message: 'This issue was closed because it has been stalled for 7 days with no activity.'
close-pr-message: 'This PR was closed because it has been stalled for 14 days with no activity.'
days-before-issue-stale: 60
days-before-pr-stale: 90
days-before-issue-close: -1
days-before-pr-close: -1
stale-issue-label: 'no-issue-activity'
exempt-issue-labels: 'awaiting-approval,work-in-progress'
stale-pr-label: 'no-pr-activity'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
exempt-all-milestones: true

49
.github/workflows/testing-results.yml vendored Normal file
View File

@ -0,0 +1,49 @@
# use separate workflow to support fork repositories and dependabot branches when publishing test results: see https://github.com/EnricoMi/publish-unit-test-result-action#support-fork-repositories-and-dependabot-branches
name: Testing Results
on:
workflow_run:
workflows: ["Testing"]
types:
- completed
permissions: {}
jobs:
test-results:
name: "${{ github.event.workflow.name }} Test Results"
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion != 'skipped'
permissions:
checks: write
pull-requests: write
actions: read
steps:
- name: Download and Extract Artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
run-id: ${{ github.event.workflow_run.id }}
path: artifacts
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish E2E Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
check_name: "Published E2E Test Results"
compare_to_earlier_commit: false
test_changes_limit: 0
fail_on: "errors"
commit: ${{ github.event.workflow_run.head_sha }}
event_file: artifacts/Event File/event.json
event_name: ${{ github.event.workflow_run.event }}
files: "artifacts/**/junit-e2e-test.xml"
- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
check_name: "Published Unit Test Results"
compare_to_earlier_commit: false
test_changes_limit: 0
fail_on: "errors"
commit: ${{ github.event.workflow_run.head_sha }}
event_file: artifacts/Event File/event.json
event_name: ${{ github.event.workflow_run.event }}
files: "artifacts/**/junit-unit-test.xml"

195
.github/workflows/testing.yaml vendored Normal file
View File

@ -0,0 +1,195 @@
name: Testing
on:
push:
branches:
- 'master'
- 'release-*'
pull_request:
branches:
- 'master'
- 'release-*'
workflow_dispatch:
inputs:
debug_enabled:
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false
env:
# Golang version to use across CI steps
GOLANG_VERSION: '1.23'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
event_file:
name: 'Event File'
runs-on: ubuntu-latest
steps:
- name: Upload
uses: actions/upload-artifact@v4
with:
name: Event File
path: ${{ github.event_path }}
test-unit:
name: Run unit tests
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v5.4.0
with:
go-version: ${{ env.GOLANG_VERSION }}
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Restore go build cache
uses: actions/cache@v4
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-v1-${{ github.run_id }}
- name: Download all Go modules
run: |
go mod download
- name: Test
run: make test-unit
- name: Upload Unit Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: Unit Test Results
path: |
junit-unit-test.xml
- name: Generate code coverage artifacts
uses: actions/upload-artifact@v4
with:
name: coverage-output-unit
path: coverage-output-unit
test-e2e:
strategy:
fail-fast: false
matrix:
kubernetes:
- version: '1.28'
latest: false
- version: '1.29'
latest: false
- version: '1.30'
latest: false
- version: '1.31'
latest: true
name: Run end-to-end tests
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v5.4.0
with:
go-version: '1.23'
- uses: actions/checkout@v4
- name: Setup k3s
env:
INSTALL_K3S_CHANNEL: v${{ matrix.kubernetes.version }}
run: |
curl -sfL https://get.k3s.io | sh -
sudo mkdir ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chmod 755 ~/.kube/config
kubectl version
kubectl create ns argo-rollouts
- uses: actions/cache@v4
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Download cache
run: go mod download
- name: Install CRDs
run: |
kubectl apply -k manifests/crds
kubectl apply -f test/e2e/crds
- name: Start controller
run: make start-e2e 2>&1 | sed -r "s/[[:cntrl:]]\[[0-9]{1,3}m//g" > /tmp/e2e-controller.log &
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true'}}
- name: Run e2e tests
run: |
make test-e2e
if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true') }}
- name: Stop e2e tests controller
run: |
pgrep -f go-build -a
pkill -f go-build
sleep 5
echo "done stopping process"
ls -lah coverage-output-e2e/
if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' && matrix.kubernetes.latest)}}
- name: Output Rerun Overview
run: |
[[ -f rerunreport.txt ]] && cat rerunreport.txt || echo "No rerun report found"
- name: Upload E2E Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: E2E Test Results (k8s ${{ matrix.kubernetes.version }})
path: |
junit-e2e-test.xml
- name: Upload e2e-controller logs
uses: actions/upload-artifact@v4
with:
name: e2e-controller-k8s-${{ matrix.kubernetes.version }}.log
path: /tmp/e2e-controller.log
if: ${{ always() }}
- name: Upload code coverage artifacts
uses: actions/upload-artifact@v4
with:
name: coverage-output-e2e
path: coverage-output-e2e
if: ${{ matrix.kubernetes.latest }}
coverage-process:
name: Process Coverage Files
runs-on: ubuntu-latest
needs:
- test-unit
- test-e2e
steps:
- name: Set up Go
uses: actions/setup-go@v5.4.0
with:
go-version: ${{ env.GOLANG_VERSION }}
id: go
- uses: actions/checkout@v4
- name: Get e2e code coverage
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: coverage-output-e2e
path: coverage-output-e2e
- name: Get unit test code coverage
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: coverage-output-unit
path: coverage-output-unit
- name: combine-go-coverage
run: |
go tool covdata textfmt -i=coverage-output-unit/,coverage-output-e2e/ -o full-coverage.out
- name: Upload code coverage information to codecov.io
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
file: full-coverage.out
fail_ci_if_error: false
codecov_yml_path: .codecov.yml
disable_search: true
verbose: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

32
.github/workflows/waiting-issues.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: 'Close stale issues and PRs waiting for response'
on:
schedule:
- cron: '30 1 * * *'
permissions:
contents: read
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v9
with:
operations-per-run: 250
stale-issue-message: 'This issue is stale because it has awaiting-response label for 5 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
stale-pr-message: 'This PR is stale because it has awaiting-response label for 10 days with no activity. Remove stale label or comment or this will be closed in 10 days.'
close-issue-message: 'This issue was closed because it has been stalled for 5 days with no activity and has the awaiting-response label.'
close-pr-message: 'This PR was closed because it has been stalled for 10 days with no activity and has the awaiting-response label.'
days-before-issue-stale: 5
days-before-pr-stale: 10
days-before-issue-close: 5
days-before-pr-close: 10
stale-issue-label: 'no-issue-activity'
exempt-issue-labels: 'awaiting-approval,work-in-progress,enhancement'
stale-pr-label: 'no-pr-activity'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
exempt-all-milestones: true
any-of-labels: 'awaiting-response'

16
.gitignore vendored
View File

@ -1,11 +1,25 @@
.vscode/
.idea/
.DS_Store
vendor/
dist/
github.com/
k8s.io/
*.iml
# delve debug binaries
__debug_bin*
cmd/**/debug
debug.test
coverage.out
coverage.html
junit.xml
rerunreport.txt
site/
vendor/
plugin-bin/
# static
server/static/*
!server/static/.gitkeep
coverage-output-e2e/
coverage-output-unit/
junit*

View File

@ -1,20 +1,41 @@
version: "2"
run:
deadline: 1m
skip-dirs:
- pkg/client
- vendor
linter-settings:
goimports:
local-prefixes: github.com/argoproj/argo-rollouts
modules-download-mode: readonly
timeout: 10m
linters:
default: none
enable:
- govet
- ineffassign
- misspell
- unconvert
- unused
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- .*\.pb\.go
- pkg/client
- third_party$
- builtin$
- examples$
formatters:
enable:
- vet
- gofmt
- goimports
- deadcode
- varcheck
- structcheck
- ineffassign
- unconvert
- misspell
disable-all: true
settings:
goimports:
local-prefixes:
- github.com/argoproj/argo-rollouts
exclusions:
generated: lax
paths:
- .*\.pb\.go
- pkg/client
- third_party$
- builtin$
- examples$

12
.readthedocs.yaml Normal file
View File

@ -0,0 +1,12 @@
version: 2
formats: all
mkdocs:
configuration: mkdocs.yml
fail_on_warning: false
python:
install:
- requirements: docs/requirements.txt
build:
os: "ubuntu-22.04"
tools:
python: "3.7"

839
CHANGELOG-v0.1.0_v1.1.0.md Normal file
View File

@ -0,0 +1,839 @@
# Changelog
# v1.1.0
## Notable Features
* Rollout Notifications
* Dynamic scaling of stable ReplicaSet (dynamicStableScale)
* Automated rollbacks without analysis (progressDeadlineAbort)
* Kustomize Open API Schema
* Rollout Dashboard as a Service
* Controlling Scaledown Behavior During Aborts (abortScaleDownDelaySeconds)
* Analysis: AWS CloudWatch Metric Provider
* AWS TargetGroup IP Verification
* Weighted Experiment Canary Steps
* Istio: Multicluster Support
* Istio: TLS Route Support
* Istio: Multiple VirtualServices
* AnalysisRun GC
* Analysis: Graphite Metric Provider
## Changes since v1.0
### Controller
* feat: support dynamic scaling of stable ReplicaSet as inverse of canary weight (#1430)
* fix: promote nil pointer error when there are no steps (#1510)
* feat: support management of multiple Istio VirtualService objects (#1381)
* feat: verify AWS TargetGroup after updating active/stable services (#1348)
* feat: ALB TrafficRouting with experiment step
* feat: TrafficRouting SMI with Experiment Step in Canary (#1351)
* feat: ability to abort an update when exceeding progressDeadlineSeconds (#1397)
* feat: add support for Istio VirtualService spec.tls[] (#1380)
* feat: configurable and more aggressive cleanup of old AnalysisRuns and Experiments (#1342)
* feat: ability to auto-create Services for each template in an Experiment (#1158)
* feat: introduce abortScaleDownDelaySeconds to control scale down of preview/canary upon abort (#1160)
* feat: argo rollout compatibility with emissary and edge stack v2.0 (#1330)
* feat: Add support for Istio multicluster (#1274)
* feat: add workload-ref/generation to rollout (#1198)
* feat: support notifications on rollout events using notifications-engine (#1175)
* chore: add liveness and readiness probe to the install manifests (#1324)
* fix: Nginx ingressClassName passed to canary ingress (#1448)
* fix: canary scaledown event could violate maxUnavailable (#1429)
* fix: analysis runs to wait for all metrics to complete (#1407)
* fix: Promote full did not work against BlueGreen with previewReplicaCount (#1384)
* fix: retarget blue-green previewService before scaling up preview ReplicaSet (#1368)
* fix: zero-value abortScaleDownDelay was not honored with setCanaryScale (#1375)
* fix: abort scaledown stable RS for canary with traffic routing (#1331)
### Analysis
* feat: add support for Graphite metrics provider (#1406)
* feat: Support CloudWatch as a metric provider (#1338)
* fix: Analysis argument validation (#1412)
### Plugin
* feat: create windows version for CLI (#1517)
* feat: provide shell completion. Closes #619 (#1478)
* fix: create analysisrun cmd using template generated name (#1471)
* fix: nil pointer in create analysisrun cmd (#1399)
* fix: lint subcommand for workload ref rollout (#1328)
* fix: undo referenced object for workloadRef rollout (#1275)
### Dashboard
* feat: allow selection of namespace in rollout dashboard (#1291)
* fix(ui): UI crashes on rollout view due to undefined status (#1287)
### Misc
* feat: kustomize rollout: add openapi to doc and examples (#1371)
* feat: add rollout stat row to grafana dashboard (#1343)
## Upgrade Notes
### Difference in scale down behavior during aborts
The v1.1 `abortScaleDownDelaySeconds` feature now allows users full control over the scaling
behavior of the canary/preview ReplicaSet during an abort. Previously in v1.0, it was not possible
to affect this behavior. As part of this feature, v1.1 also fixes some inconsistencies in behavior
with respect to abort scale down.
The most notable change is that upon an abort, the blue-green preview ReplicaSet in v1.1 will now
scale down 30 seconds after the abort, whereas in v1.0 the preview ReplicaSet was left running
indefinitely (without any option to scale it down). If you prefer the v1.0 behavior, you can set
`abortScaleDownDelaySeconds: 0`, which will leave the preview ReplicaSet running indefinitely
on abort:
```yaml
spec:
strategy:
blueGreen:
abortScaleDownDelaySeconds: 0
```
Please read the full
[documentation](https://argoproj.github.io/argo-rollouts/features/scaledown-aborted-rs/) to understand
the differences in canary/preview scaling behavior for aborted Rollouts from v1.0 to v1.1.
# v1.0.6
## Changes since v1.0.4
### Bug Fixes
- fix: replica count for new deployment (#1449)
- fix: Nginx ingressClassName passed to canary ingress (#1448)
- fix: Analysis argument validation (#1412)
- fix: retarget blue-green previewService before scaling up preview ReplicaSet (#1368)
- fix: analysis runs to wait for all metrics to complete (#1407)
- fix: canary scaledown event could violate maxUnavailable (#1429)
- chore: release workflow docker build context should use local path and not git context (#1388)
- chore: github release action was using incorect docker cache (#1387)
# v1.0.4
## Changes since v1.0.3
### Controller
* fix: Promote full did not work against BlueGreen with previewReplicaCount
# v1.0.3
## Changes since v1.0.2
### Controller
* fix: nil pointer dereference when reconciling paused blue-green rollout (#1378)
* fix: Abort rollout doesn't remove all canary pods for setCanaryScale (#1352)
* fix: unsolicited rollout after upgrade from v0.10->v1.0 when pod was using service account (#1367)
* fix: default replica before resolving workloadRef (#1304)
# v1.0.2
## Changes since v1.0.1
### Controller
* feat: allow VirtualService HTTPRoute to be inferred if there is single route (#1273)
* fix: rollout paused longer than progressDeadlineSeconds would briefly degrade (#1268)
* fix: controller would drop fields when updating DestinationRules (#1253)
* fix: the wrong panel title on the sample dashboard (#1260)
* fix: analysis with multiple metrics (#1261)
* fix: Mitigate the bug where items are re-added constantly to the workqueue. #1193 (#1243)
* fix: workload rollout spec is invalid template is not empty (#1224)
* fix: Fix error check in validation for AnalysisTemplates not found (#1249)
* fix: make function call consistent with otherRSs definition (#1171)
### Plugin
* fix: avoid using root user in plugin container (#1256)
# v1.0.1
## Changes since v1.0.0
### Controller
* feat: WebMetric to support string body responses (#1212)
* fix: Modify validation to check Analysis args passed through RO spec (#1215)
* fix: AnalysisRun args could not be resolved from secret (#1213)
# v1.0.0
## Notable Features
* New Argo Rollouts UI available in `kubectl argo rollouts dashboard`
* Ability to reference existing Deployment workloads instead of inlining a PodTemplate at spec.template
* Richer prometheus stats and Kubernetes events
* Support for Ambassador as a canary traffic router
* Support canarying using Istio DestinationRule subsets
## Upgrade Notes
### Installation Manifests
Installation manifests are now attached as GitHub Release artifacts (as opposed to raw files checked into git)
and can be installed with the release download URL. e.g.:
```
kubectl apply -f https://github.com/argoproj/argo-rollouts/releases/download/v1.0.0/install.yaml
```
### Argo CD OutOfSync status on Rollout v1.0.0 CRDs:
Argo Rollouts v1.0 now vends apiextensions.k8s.io/v1 CustomResourceDefinitions (previously apiextensions.k8s.io/v1beta1).
Kubernetes v1 CRDs no longer supports the preservation of unknown fields in objects, and rejects
attempts to set `spec.preserveUnknownFields: true` (the previous default). In order to support a
smooth upgrade from Argo Rollouts v0.10 to v1.0, `spec.preserveUnknownFields` is explicitly set to
`false` in the manifests, despite `false` being the default, and only option in v1 CRDs. However
this causes diffing tools (such as Argo CD) to report the manifest as OutOfSync (since K8s drops the
false field).
More information:
* https://github.com/kubernetes-sigs/controller-tools/issues/476
* https://github.com/argoproj/argo-rollouts/pull/1069
To avoid the Argo CD OutOfSync conditions, you can remove `spec.preserveUnknownFields` from the manifests
entirely *after upgrading to v1.0*.
Alternatively, you can instruct Argo CD to ignore differences using ignoreDifferences in the Application spec:
```yaml
spec:
ignoreDifferences:
- group: apiextensions.k8s.io
kind: CustomResourceDefinition
jsonPointers:
- /spec/preserveUnknownFields
```
### Deprcation of `kubectl argo rollouts promote --skip-current-step` flag
The promote flag `--skip-current-step` which skips the current running canary step has been
deprecated and will be removed in a future release. Its logic to skipping the current step has
been merged with the existing command:
```shell
kubectl argo rollouts promote ROLLOUT
```
The `promote ROLLOUT` command can now be used to handle both the case where the rollout needs to be
unpaused, as well as to skip the currently running canary step (e.g. an analysis/experirment/pause
step).
## Changes since v0.10
### Controller
* feat: support reference model for workloads (#676) (#1072)
* feat: Implement Ambassador to be used as traffic router for canary deployments (#1025)
* feat: support canarying using Istio DestinationRule subsets (#985)
* feat: istio virtualservice and rollout in different namespaces
* feat: add ability to verify canary weights before advancing steps (#957)
* feat: support scaleDownDelaySeconds in canary w/ traffic routing (#1056)
* feat: Add ability to restart maxUnavailable pods to BlueGreen strategy (#937)
* feat(controller): Add support for ephemeral metadata on BlueGreen rollouts. Fixes #973 (#974)
* feat: Allow user to handle NaN result in Analysis (#977)
* feat: Wait for canary RS to have ready replicas before shifting labels (#1022)
* feat: Create RolloutPaused condition (#1054)
* feat: Add RolloutCompleted condition (#1074)
* feat: add print version flag to rollouts-controller
* feat: calculate rollout phase & message controller side
* fix: Fixes the regression of dropping resources from argo-rollouts crds. Fixes #1043 (#1044)
* fix: Set Canary Strategy default maxUnavailable to 25% (#981)
* fix: blue-green rollouts could pause prematurely during prePromotionAnalysis (#1007)
* fix: Clear ProgressDeadlineExceeded Condition in paused BlueGreen Rollout (#1002)
* fix: analysis template arguments validate (#1038)
* fix: calculate scale down count. (#1047)
* fix: verify analysis arguments name with those in the rollout (#1071)
* fix: rollout status always in progressing if analysis fails (#1099)
* fix: Add edge case handling to traffic routing (#1190)
* fix: unhandled error patchVirtualService (#1168)
* fix: handling error on f.close (#1167)
* fix: rollouts in middle of restart should be considered Progressing
### Analysis
* feat: metric fields can be parameterized by analysis arguments (#901)
* feat: support a custom base URL for the new relic provider (#1053)
* feat: Allow Datadog API and APP keys to be consumed from env vars (#1073)
* fix: Improve validation for AnalysisTemplates referenced by RO (#1094)
* fix: wavefront queries would return no datapoints. surface evaluate errors
* fix: metrics which errored did not retry at error interval
* fix: Improve and refactor validation for AnalysisTemplates
### Plugin
* feat: Argo Rollouts api-server and UI (#1015)
* feat: Implement rollout status command. Fixes #596 (#1001)
* feat: lint supporting rollout in multiple doc
* fix: get rollout always return not found except default namespace (#961)
* fix: create command not support namespace in yaml file (#962)
* fix: kubectl argo create panic: runtime error: invalid memory address or nil pointer dereference
### Misc
* chore: publish plugin image automatically. migrate to quay.io (#1102)
* feat: support ARM builds, remove unused components in Dockerfile (#889)
* chore: update k8s dependencies to v1.20. improve logging (#994)
* fix: add informational exposed ports to deployment (#1066)
* chore: Outsource reusable UI components to argo-ux npm package
* fix: use fixed size int32
# v0.10.2
## Changes since v0.10.1
### Controller
* fix: switch pod restart to use evict API to honor PDBs
* fix: ephemeral metadata injection was dropping metadata injected by mutating webhooks
* fix: requiredForCompletion did not work for an experiment started by a rollout
* fix: Add missing RoleBinding file to namespace installation
# v0.10.1
## Changes since v0.10.0
### Controller
* fix: Correct Istio VirtualService immediately (#874)
* fix: restart was restarting too many pods when available > spec.replicas (#856)
### Plugin
* fix: plugin incorrectly treated v0.9 rollout as v0.10 when it had numeric observedGeneration (#875)
# v0.10.0
## Notable Features
* Ability to set canary vs. stable ephemeral metadata on rollout Pods during an update
* Support new metric providers: New Relic, Datadog
* Ability to control canary scale during an update
* Ability to restart up to maxUnavailable pods at a time for a canary rollout
* Ability to self reference rollout metadata as arguments to analysis
* Ability to fully promote blue-green and canary rollouts (skipping steps, analysis, pauses)
* kubectl-argo-rollouts plugin command to lint rollout
* kubectl-argo-rollouts plugin command to undo a rollout (same as kubectl rollout undo)
## Upgrade Notes
Rollouts v0.10 has switched to using Kubernetes [CRD Status Subresources](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#status-subresource) ([PR #789](https://github.com/argoproj/argo-rollouts/pull/789)). This feature allows the rollout controller to record the numeric `metadata.generation` into `status.observedGeneration` which provides a reliable indicator of a Rollout who's spec has (or has not yet) been observed by the controller (for example if the argo-rollouts controller was down or delayed).
A consequence of this change, is that the v0.10 rollout controller should be used with the v0.10 kubectl-argo-rollouts plugin in order to perform actions such as abort, pause, promote. Similarly, Argo CD v1.8 should be with the v0.10 rollout controller when performing those same actions. Both kubectl-argo-rollouts plugin v0.10 and Argo CD v1.8 are backwards compatible with v0.9 rollouts controller.
## Changes since v0.9
### Controller
* feat: set canary/stable ephemeral metadata to pods during updates (#770)
* feat: add support for valueFrom in analysis arguments. (#797)
* feat: Adding rollout_info_replicas_desired metric. Fixes #748 (#749)
* feat: restart pods up to maxUnavailable at a time
* feat: add full rollout promotion (skip analysis, pause, steps)
* feat: use CRD status subresource (#789)
* feat: Allow setting canary weight without side-effects. Fixes #556 (#677)
* fix: namespaced scoped controller support (#818)
* fix: fetch secrets on-demand to fix controller boot for large clusters (#829)
### Analysis
* feat: Add New Relic metricprovider (#772)
* feat: Add Datadog metric provider. Fixes #702 (#705)
### Plugin
* feat: Implement kubectl argo rollouts lint
* feat: Add undo command in kubectl plugin. Fixes #575 (#812)
* fix: kubectl plugin should use dynamic client
### Misc
* fix: rollout kustomize transform analysis ref should use templateName instead of name (#809)
* fix: add missing Service kustomize name reference in trafficRouting/alb/rootService (#699)
# v0.9.3
## Changes since v0.9.2
### Controller
* fix: scaleDownDelayRevisionLimit was off by one (#816)
* fix: background analysis refs were not verified. requeue InvalidSpec rollouts (#814)
* fix(controller): fix unhandled panic from malformed rollout (#801)
* fix(controller): validation should not consider privileged security context (#802)
# v0.9.2
## Changes since v0.9.1
### Controller
* fix(controller): controller did not honor maxUnavailable during rollback (#786)
* fix(controller): blue-green with analysis was broken (#780)
* fix(controller): blue-green fast-tracked rollbacks would still start analysis templates
* fix(controller): prePromotionAnalysis with previewReplicaCount would pause indefinitely w/o running analysis
* fix(controller): calculate available replicas from active ReplicaSet (#757)
### Plugin
* feat(plugin): indicate the stable ReplicaSet for blue-green rollouts in plugin
* feat(plugin): plugin now surfaces InvalidSpec errors and failed analysisrun messages (#729)
* fix(plugin): bluegreen scaleDownDelay was delaying Healthy status. Present errors in message field (#768)
# v0.9.1
## Changes since v0.9.0
### General
* feat: writeback rollout updates to informer to prevent stale data (#726)
* fix: unavailable stable RS was not scaled down to make room for canary (#739)
* fix: make controllers tolerant to spec marshalling errors (#666)
* perf: Create IstioVirtualServiceLister (#656)
* fix: add missing log message when a controller's syncHandler returns error (#658)
* fix: support azure auth (#664)
### Analysis
* feat: web metrics preserve data types, allow insecure tls, and make jsonPath optional (#731)
* fix: analysis controller could get into a hotloop with terminated run (#724)
* fix: do not create analysisruns with initial deploy (#722)
* fix: add Failed AnalysisRun phase status to analysis_run_metric_phase and analysis_run_phase metrics. (#618)
# v0.9.0
## Changes since v0.8
### General
* fix: Fix various panics #603
* feat: add security context to run as non-root #498
### Rollouts
* feat: Controller Validation #549
* feat: Controller Validation for objects referenced by Rollout #600
* feat: Add Rollout replicas metrics (#507) #581
* feat: Add support for rootService within ALB traffic routing #634
* fix: Populate .spec.template with default values before Rollout Validation #580
* fix: Add Rollout/scale to aggregate roles #637
* Fix: remove hash selector after switching from bg to canary #515
* fix: Set the currentStepIndex to max after bg to canary #558
### Traffic Routing
* feat: SMI TrafficSplit Support for Canary #520
### Kubectl Plugin
* feat: add shortened option -A for --all-namespaces #615
### Analysis
* feat: ClusterAnalysisTemplates (Cluster scoped AnalysisTemplates) #560
* feat: Uplevel AnalysisRun status to Rollout status #578
* fix: Modify arg verification to check ValueFrom #500
* fix: Fix analysis validation to include Kayenta #545
# v0.8.3
## Changes since v0.8.2
### General
* fix: Modify arg verification to check ValueFrom (#500)
* fix: remove hash selector after switching from bg to canary (#515)
# v0.8.2
## Changes since v0.8.1
### Rollouts
* fix: Ensure ALB action with weight 0 marshalls correctly (#493)
* fix: Add missing clusterrole for deleting pods (#490)
# v0.8.1
## Changes since v0.8.0
### General
* fix: Remove validation for limits and requests (#480)
### Rollouts
* fix: Duplicate StableRS to canary.StableRS (#483)
### Kubectl plugin
* fix: Make kubectl plugin backwards compat with canary.stableRS (#482)
# v0.8.0
## Breaking Changes
* The metric `rollout_created_time` is being removed.
* The `.status.canary.stableRS` is being deprecated for `.status.stableRS`. This release has the code to handle the migration, and the Rollout spec will updated to remove `.status.stableRS` in a future release.
## Contributors
Thank you to the following contributors for their work in this release!
* cronik
* dthomson25
* duboisf
* jessesuen
* khhirani
* moensch
* nghialv
## Changes since v0.7.2
### General
* feat: Improve Prometheus metrics (#461)
* feat: Add metrics on queues and go client http calls (#416)
* feat: Add patchMergeKey and patchStrategy struct tags and comments (#386)
* feat: Improve removing k8s 1.18 fields (#436)
* fix: Reduce log from error to warning (#394)
* chore: Download go deps explicitly in Dockerfile (#464)
* chore: Standardize controller-gen to v0.2.5 (#431)
* chore: Migrate from dep to go modules (#331)
* chore: Add auto generated sites/ to gitignore (#398)
* docs: Add remote name to 'make release-docs' (#435)
* docs: Documentation cleanup (#437)
* docs: Add Go mod download command to contributor docs (#425)
* docs: Corrected HPA doc (#396)
* docs: Remove extra comma in docs
* docs: Update README.md (#411)
### Rollouts
* feat: Introduce Anti-Affinity option to rollout strategies (#445)
* feat: Add ability to restart Pods (#453)
* feat: Add ALB Ingress controller support (#444)
* feat: Add Nginx canary traffic management (#426)
* feat: Add BlueGreen Pre Promotion Analysis (#415)
* feat: Add BlueGreen Post Promotion Analysis (#442)
* feat: Allow Rollout to specify multiples templates (#409)
* feat: Make pause duration as string with time unit (#423)
* feat: Use managed-by annotation (#448)
* refactor: Refactor BlueGreen Strategy (#388)
* fix: Update Role/ClusterRole for Ingress access (#439)
* fix: rollout transformer for pod affinity. add new v0.7 name references and testing (#399)
* chore: Add StableRS to rollout status (#441)
* chore: Fix wrong comment about the formula of calculating the replica number (#447)
### Analysis
* feat: Improve wavefront provider (#465)
* feat: Allow AnalysisTemplates to reference secrets (#420)
* improvement: Surface failure reasons for Rollouts/AnalysisRuns (#434)
* refactor: Perform arg substitution in Analysis controller (#407)
* docs: Use correct podTemplateHashValue attribute for valueFrom (#417)
* docs: Update web metrics section (#381)
* docs: Use correct magic value in Analysis docs (#378)
### Experiments
* feat: Experiments passed duration succeed with running analysis (#392)
* feat: Allow ex to use availableAt and finishedAt as args (#400)
* refactor: Refactor Experiment handling of pod hashes (#385)
### Kubectl plugin
* feat: Show scale down time for Blue Green ReplicaSets (#370) (#382)
* feat: Add more command aliases in kubectl plugin (#414)
* chore: Set kubectl flags on root command (#456)
* docs: Generate kubectl plugin docs (#422)
* docs: Plugin command enhancements (#454)
# v0.7.2
## Changes since v0.7.1
### Rollouts
* Update RS if RS's annotations need to be changed #413
# v0.7.1
## Changes since v0.7.0
### General
* Adding ca-certificates to docker image (#393)
* Add patchMergeKey and patchStrategy struct tags and comments (#386)
* Reduce log from error to warning (#394)
### Experiments
* Allow ex to use availableAt and finishedAt as args (#400)
* Experiments passed duration succeed with running analysis (#392)
* Refactor Experiment handling of pod hashes (#385)
# v0.7.0
## Important Notices
- Please upgrade to v0.6.x before upgrading to v0.7. Pre v0.6.0 has a different pausing logic, and v0.7.0 removes the depreciated PauseStartTime field. The v0.6.x versions have a migration script that is removed in v0.7.0.
- This release introduces an alpha implementation of Rollouts leveraging Istio resources for traffic shaping. Check out [traffic management](https://argoproj.github.io/argo-rollouts/features/traffic-management/) for more info.
## Changes since v0.6.3
### General
* Support instance ids for rollout controller segregation #342
* Remove PauseStartTime #349
* Vendor mockery utility #347
* Remove loud log message #333
### Rollouts
#### General
* Add stableService field #337
#### Traffic Routing
* Initial Istio implementation #341
* Implement watch for Istio resources #354
* Add validation to istio virtual services #355
### Kubectl Plugin
* Introduce 'kubectl argo rollouts terminate' command #297
### Analysis
#### General
* Allow controller to delay analysis #350
* Create one background analysis per revision #309
* Allow AnalysisRun to complete an experiment #345
#### Providers
* Wavefront metric provider #338
* Web metric provider #318
* Refactor common logic in providers to library #368
* Allow web provider to be parameterized #368
# v0.6.3
## Changes since v0.6.2
### Bug Fixes
* Fix premature scaledown (#365)
* Add namespace restriction to job informer (#362)
* Fix honoring autoPromotionSeconds (#360)
* Ensure podHash stays on stable-svc selector (#340)
# v0.6.2
## Changes since v0.6.1
### Bug Fixes
* omitted revisionHistoryLimit was not defaulting to 10 (#330)
* Fix panic if rollout cannot create a new RS (#328)
* Enable controller to handle panics with crashing (#328)
# v0.6.1
## Changes since v0.6.0
### Bug Fixes
- Create one background analysis per revision (#309)
- Fix Infinite loop with PreviewReplicaCount set (#308)
- Fix a delete by zero in get command (#310)
- Set StableRS hash to current if replicaset does not actually exist (#320)
- Bluegreen: allow preview service/replica sets to be replaced and fix sg fault in syncReplicasOnly (#314)
# v0.6.0
## Important Notices
- The pause functionality was reworked in the v0.6 release. Previously, the `.spec.paused` field was used by the controller to pause rollouts. However, this was an issue for users who wanted to manually pause the rollout since the controller assumed it was the only entity that set the field. In v0.6, the controller will add a pause condition to the `.status.pauseCondition` to pause a controller instead of setting `spec.paused`. The pause condition has a start time and a reason explaining why it paused. This allows users to set the `spec.paused` field manually and let the controller respect that pause. The v0.6 controller has a migration function to convert pre v0.6 rollouts to the new pause condition. The migration function will be removed in a future release.
- In pre-v0.6 versions, the BlueGreen strategy would have the preview service point at no ReplicaSets if the new ReplicaSet was receiving traffic from the active service. V0.6 changes that behavior to make the preview service always point at the latest ReplicaSet
## Changes since v0.5.0
#### General
- Update k8s library dependencies to v1.16 (##192)
#### Rollouts
###### Enhancements
- Add Rollout Context to reconciliation loop (##205)
- Refactor pausing (##211)
- Allow User pause (##216)
- Stop progress while paused (##193)
- Add pause condition migration (##229)
- Add abort functionality (##224)
- Rollout analysis plumbing (##183)
- Add AnalysisStep for Rollouts (##188)
- Add background analysis runs for rollouts (##196)
- Clean up old Background AnalysisRuns (##246)
- Clean up Experiments and AnalysisRuns (##197)
- Add initial Experiment Step (##165)
- Make specifying replicas/duration optional in the experiment step (##241)
- Terminate experiments from previous steps (##280)
- Add Analysis to RolloutExperimentStep (##238)
- Fix TimeOut check to consider experiment/analysis steps (##278)
- Pause a rollout upon inconclusive experiment (##256)
- Abort a rollout upon a failed experiment (##256)
- Add create AnalysisRun action in clusterrole (##231)
###### Bug Fixes
- Fix nil ptr for newRS (##233)
- Fix Rollout transformer config (##247)
- Always point preview service at the newRS (##217)
- Make active service required (##235)
- Reset ProgressDeadline on retry (##282)
- Ignore old running rs for RolloutCompleted status (##218)
- Remove scale down annot after scaling down (##187)
- Renames golang field names for blueGreen/canary to eliminate two API violations (##206)
#### Experiments
Check out the [Experiment Docs](https://github.com/argoproj/argo-rollouts/blob/release-v0.6/docs/features/experiments.md) for more information.
###### Enhancements
- Refactor experiments to use a context object (##208)
- Allow selectors to be overwritten when starting experiments (##249)
- Simplify experiment replicaset names (##274)
- Integrate Experiments with Analysis (##210)
#### Bug Fixes
- Fix experiment enqueue logic (##239)
- Annotate instead of label experiment names in replicasets (##262)
- Fix issue where a replicaset name collision could cause hot loop (##236)
#### Analysis
Check out the [Analysis Docs](https://github.com/argoproj/argo-rollouts/blob/release-v0.6/docs/features/analysis.md) for more information.
###### Enhancements
- AnalysisRun AnalysisTemplate Spec (##166)
- Initial analysis controller implementation (##168)
- Integrate analysis controller with provider interfaces (##171)
- Add metric knob for maxInconclusive (##181)
- Simplify provider interfaces to set error messages (##189)
- Implement ResumeAt logic (##232)
- Define explicit args in AnalysisTemplates and simplify AnalysisRun spec (##283)
- Use a duration string instead of int to represent duration (##286)
- Truncate measurements when greater than default (10) (##191)
- Add counter for consecutiveError (##191)
###### Prometheus Provider
- Add initial provider and Prometheus implementation (##170)
- Rename prometheus.server to address to better reflect API client interface (##207)
- Treat NaN as inconclusive on Prometheus provider (##275)
###### Job Provider
- Implement job-based metric provider (##186)
- Job metric argument substitution. Simplify metric provider interface (##268)
###### Kayenta Provider
- Initialize check in for kayenta metric provider ##284
#### Kubectl Plugin
Check out the [kubectl plugin docs](https://github.com/argoproj/argo-rollouts/blob/release-v0.6/docs/features/kubectl-plugin.md) for more information.
###### Enhancements
- Implement argo rollouts kubectl plugin (##195)
- Introduce `kubectl argo rollout list rollouts` command (##204)
- Introduce `kubectl argo rollout list experiments` command (##267)
- Introduce `kubectl argo rollout set image` command (##251)
- Introduce `kubectl argo rollout get` command (##230)
- Introduce `kubectl argo rollout promote` command (##277)
- Add ability to `kubectl argo rollouts set image *=myrepo/myimage` (##290)
- Add `get/retry experiment` commands. Support experiment retries (##263)
- Show running jobs as part of analysis runs (##278)
- Surface experiment images to CLI (##274)
# v0.5.0
## Changes since v0.4.2
#### Bug Fixes
- Rollout deletionTimestamp are not honored (##109)
- status.availableReplicas should not count old stacks (##143)
- Fix Infinitely loop on controller loop (##146)
#### Enhancements
- Fast rollback in BlueGreen during scale down period ##127
- Attach independent scaleDownDelays to older ReplicaSets ##145
- Add scaleDownDelayRevisionLimit to limit the number of old ReplicaSets scaled up ##129
#### Experiment CRD
This release of Argo Rollouts introduces the experiment CRD. The experiment CRD allows users to define multiple PodSpec's to run for a specific duration of time. This will help enable the Kayenta use-case where a user will need to start two versions of their application at the same time. Otherwise, the users cannot have an apples-to-apples comparison of these two versions as one will skew as a result of running for a longer period.
# v0.4.2
## Changes since v0.4.1
#### Bug Fixes
- Honor MaxSurge and MaxUnavailable after last step (##141)
- Fix maxSurge maxUnavailable zero check (##135)
- Add .Spec.Replicas if not set in rollouts (##125)
# v0.4.1
## Changes since v0.4.0
#### Bug Fixes
- Workaround K8s inability to properly validate 'items' subfields ##114
# v0.4.0
## Important Notes Before Upgrading
- For the BlueGreen strategy, Argo Rollouts will only pause rollouts that have the field `spec.strategy.blueGreen.autoPromotionEnabled` set to false. The default value of `autoPromotionEnabled` is true and causes the rollout to immediately promote the new version once it is available. This change was implemented to make the pausing behavior of rollouts more straight-forward and you can read more about it at ##80. Argo Rollouts v0.3.2 introduces the `autoPromotionEnabled` flag without making any behavior changes, and those behavior changes are enforced starting at v0.4.0. __In order to upgrade without any issues__, the operator should first upgrade to v0.3.2 and add the `autoPromotionEnabled` flag with the appropriate value. Afterward, they will be safe to upgrade to v0.4.
- For the Canary Strategy, the Argo Rollouts controller stores a hash of the canary steps in the rollout status to be able to detect changes in steps. If the canary steps change during a progressing canary update, the controller will change the hash and restart the steps. If the rollout is in a completed state, the controller will only update the hash. In v0.4.0, the controller changed how the hash of the steps was calculated, and you can read more about that at this issues: ##103. As a result, __the operator should only upgrade Argo Rollouts to v0.4.0 when all the canary rollouts have executed all steps and have completed__. Otherwise, the controller will restart the steps it has executed.
## Changes since v0.3.2
#### Enhancements
- Add Ability to specify canaryService Service object to reach only canary pods ##91
- Simplify unintuitive automatic pause behavior for blue green strategy ##80
- Add back service informer to handle Service recreations quicker ##71
- Use lister instead of kubernetes api call to load service ##98
- Switch to controller-gen to generate crd with complete openapi validation spec ##84
#### Bug Fixes
- Change step hashing function to derive hash from json representation ##103
- CRD validation needs to be removed for resource requests/limits ##101
- Possible to exceed revisionHistoryLimit with canary strategy ##93
- Change in pod template hash after upgrading k8s dependencies ##88
- Controller is missing patch event privileges bug ##86
- Rollouts unprotected from invalid specs ##84
- Fix logging fields ##97
# v0.3.2
## Important BlueGreen Strategy Change
In v0.4.0, Argo Rollouts will have a breaking change where we will only pause BlueGreen rollouts if they have a new field called `autoPromotionEnabled` under the `spec.strategy.blueGreen` set to false. If the field is not listed, the default value will be true, and the rollout will immediately promote the new Rollout. This change was introduced to address https://github.com/argoproj/argo-rollouts/issues/80.
To prepare for v0.4.0, v0.3.2 will introduce the `autoPromotionEnabled` field, but the controller will not act on the field. As a result, you can add the `autoPromotionEnabled` field without breaking your existing rollouts.
## Enhancements
- Add autoPromotionEnabled with no behavior change
## Fixes
- Fix controller crash caused by glog attempting to write to /tmp (##94)
# v0.3.1
## Breaking Changes
Rename autoPromoteActiveServiceDelaySeconds to autoPromotionSeconds ##77
## Changes since v0.3.0
#### Enhancements
* Switch to Scratch final image ##67
#### Fixes
* Enable fast Rollback in BlueGreen ##78
* Respect ScaleDownDelay during non-happy path ##79
* Scale down older RS on non-happy path ##76
* Fix issue where pod template hash could be computed inconsistently ##75
* Cleanup replicasets in canary deployment ##73
* Don't requeue 404 errors ##72
# v0.3.0
## New Features
- HPA Support ##37
- Prometheus Metrics ##29 ##47
- Introduce ProgressDeadlineSeconds ##54
- Improved Scalability ##45
## Breaking Changes
The `status.verifyingPreview` field was depreciated and move to `spec.pause`.
#### BlueGreen Specific
- Add previewReplicaCount ##64
- Add ability to auto-promote active service ##59
- Add ScaleDownDelaySeconds ##57
## Changes since v0.2.2
#### Enchantments
- HPA Support ##37
- Prometheus Metrics ##29
- Add previewReplicaCount ##64
- Add ProgressDeadlineSeconds ##54
- Add Invalid spec checks with regards to ProgressDeadlineSeconds ##62
- Improve eventing and metrics ##61
- Improve Available Condition ##60
- Convert Kustomize V1.0 to Kustomize v2.0 ##56
- Make Metrics port customizable ##55
- Replace gometalinter with golangci ##46
- Add support for gotestsum ##52
- Remove service informer ##45
- Replace verifying preview with Paused ##43
#### Bug fixes
- Prevent early pause before svc change in BG ##51
- Fix aggregate roles naming collision with Argo Workflows ##44
- Use recreate strategy for controller ##44
# v0.2.2
Add missing events permissions to the clusterrole
# v0.2.1
Changes the following clusterroles to prevent name collision with Argo Workflows
- `argo-aggregate-to-admin` to `argo-rollouts-aggregate-to-admin`
- `argo-aggregate-to-edit` to `argo-rollouts-aggregate-to-edit`
- `argo-aggregate-to-view` to `argo-rollouts-aggregate-to-view`
# v0.2.0
- Implements the initial ReplicaSet-based Canary Strategy
- Cleans up Status fields
- Implicit understanding of rollback based on steps completion and pod hash for Blue Green and Canary
# v0.1.0
* Creates a controller that manages a rollout object that mimics a deployment object
* Declaratively offers a Blue Green Strategy by creating the replicaset from the spec and managing an active and preview service to point to the new replicaset

File diff suppressed because it is too large Load Diff

1
CONTRIBUTING.md Normal file
View File

@ -0,0 +1 @@
See [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md).

View File

@ -3,33 +3,16 @@
# Initial stage which pulls prepares build dependencies and CLI tooling we need for our final image
# Also used as the image in CI jobs so needs all dependencies
####################################################################################################
FROM golang:1.13.1 as builder
FROM --platform=$BUILDPLATFORM golang:1.23 AS builder
RUN apt-get update && apt-get install -y \
git \
make \
wget \
gcc \
zip && \
ca-certificates && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Install docker
ENV DOCKER_VERSION=18.06.0
RUN curl -O https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}-ce.tgz && \
tar -xzf docker-${DOCKER_VERSION}-ce.tgz && \
mv docker/docker /usr/local/bin/docker && \
rm -rf ./docker
# Install dep
ENV DEP_VERSION=0.5.0
RUN wget https://github.com/golang/dep/releases/download/v${DEP_VERSION}/dep-linux-amd64 -O /usr/local/bin/dep && \
chmod +x /usr/local/bin/dep
# Install golangci-lint
RUN wget https://install.goreleaser.com/github.com/golangci/golangci-lint.sh && \
chmod +x ./golangci-lint.sh && \
./golangci-lint.sh -b $GOPATH/bin && \
RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.1.6 && \
golangci-lint linters
COPY .golangci.yml ${GOPATH}/src/dummy/.golangci.yml
@ -38,48 +21,77 @@ RUN cd ${GOPATH}/src/dummy && \
touch dummy.go \
golangci-lint run
####################################################################################################
# UI build stage
####################################################################################################
FROM --platform=$BUILDPLATFORM docker.io/library/node:18 AS argo-rollouts-ui
WORKDIR /src
ADD ["ui/package.json", "ui/yarn.lock", "./"]
RUN yarn install --network-timeout 300000
ADD ["ui/", "."]
ARG ARGO_VERSION=latest
ENV ARGO_VERSION=$ARGO_VERSION
RUN NODE_ENV='production' yarn build
####################################################################################################
# Rollout Controller Build stage which performs the actual build of argo-rollouts binaries
####################################################################################################
FROM golang:1.12.6 as argo-rollouts-build
FROM --platform=$BUILDPLATFORM golang:1.23 AS argo-rollouts-build
COPY --from=builder /usr/local/bin/dep /usr/local/bin/dep
WORKDIR /go/src/github.com/argoproj/argo-rollouts
# Copy only go.mod and go.sum files. This way on subsequent docker builds if the
# dependencies didn't change it won't re-download the dependencies for nothing.
COPY go.mod go.sum ./
RUN go mod download
# A dummy directory is created under $GOPATH/src/dummy so we are able to use dep
# to install all the packages of our dep lock file
COPY Gopkg.toml ${GOPATH}/src/dummy/Gopkg.toml
COPY Gopkg.lock ${GOPATH}/src/dummy/Gopkg.lock
RUN cd ${GOPATH}/src/dummy && \
dep ensure -vendor-only && \
mv vendor/* ${GOPATH}/src/ && \
rmdir vendor
# Copy UI files for plugin build
COPY --from=argo-rollouts-ui /src/dist/app ./ui/dist/app
# Perform the build
WORKDIR /go/src/github.com/argoproj/argo-rollouts
COPY . .
ARG MAKE_TARGET="controller plugin-linux plugin-darwin"
RUN make ${MAKE_TARGET}
# stop make from trying to re-build this without yarn installed
RUN touch ui/dist/node_modules.marker && \
mkdir -p ui/dist/app && \
touch ui/dist/app/index.html && \
find ui/dist
RUN groupadd -g 999 argo-rollouts && \
useradd -r -u 999 -g argo-rollouts argo-rollouts && \
mkdir -p /home/argo-rollouts && \
chown argo-rollouts:argo-rollouts /home/argo-rollouts
ARG TARGETOS
ARG TARGETARCH
ARG MAKE_TARGET="controller plugin"
RUN GOOS=$TARGETOS GOARCH=$TARGETARCH make ${MAKE_TARGET}
####################################################################################################
# Kubectl plugin image
####################################################################################################
FROM gcr.io/distroless/static-debian11 AS kubectl-argo-rollouts
COPY --from=argo-rollouts-build /go/src/github.com/argoproj/argo-rollouts/dist/kubectl-argo-rollouts /bin/kubectl-argo-rollouts
USER 999
WORKDIR /home/argo-rollouts
ENTRYPOINT ["/bin/kubectl-argo-rollouts"]
CMD ["dashboard"]
####################################################################################################
# Final image
####################################################################################################
FROM scratch
FROM gcr.io/distroless/static-debian11
COPY --from=argo-rollouts-build /go/src/github.com/argoproj/argo-rollouts/dist/rollouts-controller /bin/
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
# Import the user and group files from the builder.
COPY --from=argo-rollouts-build /etc/passwd /etc/passwd
USER argo-rollouts
# Use numeric user, allows kubernetes to identify this user as being
# non-root when we use a security context with runAsNonRoot: true
USER 999
WORKDIR /home/argo-rollouts

View File

@ -1,6 +1,23 @@
####################################################################################################
# argo-rollouts-dev
####################################################################################################
FROM scratch
COPY dist/rollouts-controller-linux-amd64 /bin/rollouts-controller
FROM golang:1.20 AS builder
RUN apt-get update && apt-get install -y \
ca-certificates && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
FROM gcr.io/distroless/static-debian11
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY rollouts-controller-linux-amd64 /bin/rollouts-controller
COPY step-plugin-e2e-linux-amd64 /bin/plugin-files/step-plugin-e2e
# Use numeric user, allows kubernetes to identify this user as being
# non-root when we use a security context with runAsNonRoot: true
USER 999
WORKDIR /home/argo-rollouts
ENTRYPOINT [ "/bin/rollouts-controller" ]

1419
Gopkg.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,65 +0,0 @@
required = [
"k8s.io/code-generator/cmd/client-gen",
"github.com/emicklei/go-restful",
"github.com/go-openapi/spec",
"k8s.io/kube-openapi/cmd/openapi-gen",
"github.com/vektra/mockery",
]
[[constraint]]
name = "k8s.io/client-go"
branch = "release-13.0"
[[constraint]]
name = "k8s.io/code-generator"
branch = "release-1.16"
[[constraint]]
branch = "release-1.16"
name = "k8s.io/api"
[[constraint]]
name = "k8s.io/apiserver"
branch = "release-1.16"
[[constraint]]
name = "k8s.io/apimachinery"
branch = "release-1.16"
[[constraint]]
name = "k8s.io/kubernetes"
branch = "release-1.16"
[[constraint]]
name = "k8s.io/apiextensions-apiserver"
branch = "release-1.16"
[[constraint]]
name = "k8s.io/cli-runtime"
branch = "release-1.16"
[[constraint]]
name = "k8s.io/kubectl"
branch = "release-1.16"
[[constraint]]
name = "github.com/bouk/monkey"
version = "1.0.0"
# vendor/k8s.io/kubectl/pkg/util/term/resize.go:30:23: undefined: term.GetFdInfo
[[override]]
name = "github.com/docker/docker"
revision = "be7ac8be2ae072032a4005e8f232be3fc57e4127"
# vendor/k8s.io/kubectl/pkg/util/templates/markdown.go:66:11: undefined: blackfriday.LIST_ITEM_BEGINNING_OF_LIST
[[override]]
name = "github.com/russross/blackfriday"
version = "v1.5.2"
[[override]]
name = "github.com/ghodss/yaml"
branch = "master"
[[constraint]]
name = "github.com/vektra/mockery"
revision = "e78b021dcbb558a8e7ac1fc5bc757ad7c277bb81"

319
Makefile
View File

@ -1,17 +1,36 @@
PACKAGE=github.com/argoproj/argo-rollouts
CURRENT_DIR=$(shell pwd)
DIST_DIR=${CURRENT_DIR}/dist
PATH := $(DIST_DIR):$(PATH)
PLUGIN_CLI_NAME?=kubectl-argo-rollouts
TEST_TARGET ?= ./...
VERSION=$(shell cat ${CURRENT_DIR}/VERSION)
BUILD_DATE=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
GIT_COMMIT=$(shell git rev-parse HEAD)
GIT_TAG=$(shell if [ -z "`git status --porcelain`" ]; then git describe --exact-match --tags HEAD 2>/dev/null; fi)
GIT_TREE_STATE=$(shell if [ -z "`git status --porcelain`" ]; then echo "clean" ; else echo "dirty"; fi)
GIT_REMOTE_REPO=upstream
VERSION=$(shell if [ ! -z "${GIT_TAG}" ] ; then echo "${GIT_TAG}" | sed -e "s/^v//" ; else cat VERSION ; fi)
TARGET_ARCH?=linux/amd64
# docker image publishing options
DOCKER_PUSH ?= false
IMAGE_TAG ?= latest
# build development images
DEV_IMAGE=false
DEV_IMAGE ?= false
# E2E variables
E2E_K8S_CONTEXT ?= rancher-desktop
E2E_INSTANCE_ID ?= argo-rollouts-e2e
E2E_TEST_OPTIONS ?=
E2E_PARALLEL ?= 1
E2E_WAIT_TIMEOUT ?= 90
GOPATH ?= $(shell go env GOPATH)
# Global toolchain configuration
NODE_OPTIONS=""
override LDFLAGS += \
-X ${PACKAGE}/utils/version.version=${VERSION} \
@ -19,23 +38,14 @@ override LDFLAGS += \
-X ${PACKAGE}/utils/version.gitCommit=${GIT_COMMIT} \
-X ${PACKAGE}/utils/version.gitTreeState=${GIT_TREE_STATE}
# docker image publishing options
DOCKER_PUSH=false
IMAGE_TAG=latest
ifneq (${GIT_TAG},)
IMAGE_TAG=${GIT_TAG}
LDFLAGS += -X ${PACKAGE}.gitTag=${GIT_TAG}
endif
ifneq (${IMAGE_NAMESPACE},)
override LDFLAGS += -X ${PACKAGE}/install.imageNamespace=${IMAGE_NAMESPACE}
endif
ifneq (${IMAGE_TAG},)
override LDFLAGS += -X ${PACKAGE}/install.imageTag=${IMAGE_TAG}
override LDFLAGS += -X ${PACKAGE}.gitTag=${GIT_TAG}
endif
ifeq (${DOCKER_PUSH},true)
ifndef IMAGE_NAMESPACE
$(error IMAGE_NAMESPACE must be set to push images (e.g. IMAGE_NAMESPACE=argoproj))
$(error IMAGE_NAMESPACE must be set to push images (e.g. IMAGE_NAMESPACE=quay.io/argoproj))
endif
endif
@ -43,88 +53,293 @@ ifdef IMAGE_NAMESPACE
IMAGE_PREFIX=${IMAGE_NAMESPACE}/
endif
## protoc,my.proto
define protoc
# protoc $(1)
PATH=${DIST_DIR}:$$PATH protoc \
-I /usr/local/include \
-I ${DIST_DIR}/protoc-include \
-I . \
-I ./vendor \
-I ${GOPATH}/src \
-I ${GOPATH}/pkg/mod/github.com/gogo/protobuf@v1.3.2/gogoproto \
-I ${GOPATH}/pkg/mod/github.com/grpc-ecosystem/grpc-gateway@v1.16.0/third_party/googleapis \
--gogofast_out=plugins=grpc:${CURDIR} \
--grpc-gateway_out=logtostderr=true:${CURDIR} \
--swagger_out=logtostderr=true,fqn_for_swagger_name=true:. \
$(1)
endef
.PHONY: all
all: controller image
.PHONY: codegen
codegen: mocks
./hack/update-codegen.sh
./hack/update-openapigen.sh
go run ./hack/gen-crd-spec/main.go
##@ Development
.PHONY: go-mod-vendor
go-mod-vendor: ## downloads vendor files needed by tools.go (i.e. go_install)
go mod tidy
go mod vendor
.PHONY: controller
controller: clean-debug
CGO_ENABLED=0 go build -v -i -ldflags '${LDFLAGS}' -o ${DIST_DIR}/rollouts-controller ./cmd/rollouts-controller
.PHONY: lint
lint: go-mod-vendor ## run all linters
golangci-lint run --fix
.PHONY: install-go-tools-local
install-go-tools-local: go-mod-vendor ## install all go tools
./hack/installers/install-codegen-go-tools.sh
.PHONY: install-protoc-local
install-protoc-local: ## install protoc tool
./hack/installers/install-protoc.sh
.PHONY: install-devtools-local
install-devtools-local: ## install dev tools
./hack/installers/install-dev-tools.sh
# Installs all tools required to build and test locally
.PHONY: install-tools-local
install-tools-local: install-go-tools-local install-protoc-local install-devtools-local
TYPES := $(shell find pkg/apis/rollouts/v1alpha1 -type f -name '*.go' -not -name openapi_generated.go -not -name '*generated*' -not -name '*test.go')
APIMACHINERY_PKGS=k8s.io/apimachinery/pkg/util/intstr,+k8s.io/apimachinery/pkg/api/resource,+k8s.io/apimachinery/pkg/runtime/schema,+k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/api/core/v1,k8s.io/api/batch/v1
PKG := $(shell go list ./pkg/apis/rollouts/v1alpha1)
.PHONY: install-toolchain
install-toolchain: install-go-tools-local install-protoc-local
##@ Code Generation
# generates all auto-generated code
.PHONY: codegen
codegen: go-mod-vendor gen-proto gen-k8scodegen gen-openapi gen-mocks gen-crd manifests docs
# generates all files related to proto files
.PHONY: gen-proto
gen-proto: k8s-proto api-proto ui-proto
# generates the .proto files affected by changes to types.go
.PHONY: k8s-proto
k8s-proto: go-mod-vendor install-protoc-local install-go-tools-local $(TYPES) ## generate kubernetes protobuf files
mkdir -p ${PKG}
cp -f $(CURDIR)/pkg/apis/rollouts/v1alpha1/*.* ${PKG}/
PATH=${DIST_DIR}:$$PATH GOPATH=${GOPATH} go-to-protobuf \
--go-header-file=./hack/custom-boilerplate.go.txt \
--packages=${PKG} \
--apimachinery-packages=${APIMACHINERY_PKGS} \
--proto-import=${CURDIR}/vendor \
--proto-import=${GOPATH}/src \
--proto-import=${DIST_DIR}/protoc-include
touch pkg/apis/rollouts/v1alpha1/generated.proto
cp -Rf $(CURDIR)/github.com/argoproj/argo-rollouts/pkg . | true
# cleaning up
rm -Rf $(CURDIR)/github.com/
rm -Rf $(CURDIR)/k8s.io/
# generates *.pb.go, *.pb.gw.go, swagger from .proto files
.PHONY: api-proto
api-proto: go-mod-vendor k8s-proto ## generate api protobuf files
mkdir -p ${PKG}
cp -f $(CURDIR)/pkg/apis/rollouts/v1alpha1/generated.proto ${PKG}
$(call protoc,pkg/apiclient/rollout/rollout.proto)
cp -Rf $(CURDIR)/github.com/argoproj/argo-rollouts/pkg . | true
# cleaning up
rm -Rf $(CURDIR)/github.com/
# generates ui related proto files
.PHONY: ui-proto
ui-proto: ## generate ui protobuf files
yarn --cwd ui run protogen
# generates k8s client, informer, lister, deepcopy from types.go
.PHONY: gen-k8scodegen
gen-k8scodegen: go-mod-vendor ## generate kubernetes codegen files
./hack/update-codegen.sh
# generates ./manifests/crds/
.PHONY: gen-crd
gen-crd: go-mod-vendor install-go-tools-local ## generate crd manifests
go run -mod=mod ./hack/gen-crd-spec/main.go
# generates mock files from interfaces
.PHONY: gen-mocks
gen-mocks: install-go-tools-local ## generate mock files
./hack/update-mocks.sh
gen-mocks-fast:
./hack/update-mocks.sh
# generates openapi_generated.go
.PHONY: gen-openapi
gen-openapi: install-go-tools-local $(DIST_DIR)/openapi-gen ## generate openapi files
PATH=${DIST_DIR}:$$PATH GOPATH=${GOPATH} openapi-gen ${CURRENT_DIR}/pkg/apis/rollouts/v1alpha1 \
--go-header-file ${CURRENT_DIR}/hack/custom-boilerplate.go.txt \
--output-pkg github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1 \
--output-dir ${CURRENT_DIR}/pkg/apis/rollouts/v1alpha1 \
--output-file openapi_generated.go \
--report-filename ${CURRENT_DIR}/pkg/apis/api-rules/violation_exceptions.list
##@ Plugins
.PHONY: plugin
plugin:
CGO_ENABLED=0 go build -v -i -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME} ./cmd/kubectl-argo-rollouts
plugin: ui/dist ## build plugin
cp -r ui/dist/app/* server/static
CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME} ./cmd/kubectl-argo-rollouts
ui/dist:
yarn --cwd ui install
yarn --cwd ui build
.PHONY: plugin-linux
plugin-linux:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -i -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME}-linux-amd64 ./cmd/kubectl-argo-rollouts
plugin-linux: ui/dist ## build plugin for linux
cp -r ui/dist/app/* server/static
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME}-linux-amd64 ./cmd/kubectl-argo-rollouts
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME}-linux-arm64 ./cmd/kubectl-argo-rollouts
.PHONY: plugin-darwin
plugin-darwin:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -v -i -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME}-darwin-amd64 ./cmd/kubectl-argo-rollouts
plugin-darwin: ui/dist ## build plugin for darwin
cp -r ui/dist/app/* server/static
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME}-darwin-amd64 ./cmd/kubectl-argo-rollouts
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME}-darwin-arm64 ./cmd/kubectl-argo-rollouts
.PHONY: plugin-windows
plugin-windows: ui/dist ## build plugin for windows
cp -r ui/dist/app/* server/static
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME}-windows-amd64 ./cmd/kubectl-argo-rollouts
##@ Build
.PHONY: controller
controller: ## build controller binary
CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/rollouts-controller ./cmd/rollouts-controller
.PHONY: builder-image
builder-image:
docker build -t $(IMAGE_PREFIX)argo-rollouts-ci-builder:$(IMAGE_TAG) --target builder .
builder-image: ## build builder image
DOCKER_BUILDKIT=1 docker build -t $(IMAGE_PREFIX)argo-rollouts-ci-builder:$(IMAGE_TAG) --target builder .
@if [ "$(DOCKER_PUSH)" = "true" ] ; then docker push $(IMAGE_PREFIX)argo-rollouts:$(IMAGE_TAG) ; fi
.PHONY: image
image:
ifeq ($(DEV_IMAGE), true)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -i -ldflags '${LDFLAGS}' -o ${DIST_DIR}/rollouts-controller-linux-amd64 ./cmd/rollouts-controller
docker build -t $(IMAGE_PREFIX)argo-rollouts:$(IMAGE_TAG) -f Dockerfile.dev .
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/step-plugin-e2e-linux-amd64 ./test/cmd/step-plugin-e2e
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/rollouts-controller-linux-amd64 ./cmd/rollouts-controller
DOCKER_BUILDKIT=1 docker build --platform=$(TARGET_ARCH) -t $(IMAGE_PREFIX)argo-rollouts:$(IMAGE_TAG) -f Dockerfile.dev ${DIST_DIR}
else
docker build -t $(IMAGE_PREFIX)argo-rollouts:$(IMAGE_TAG) .
DOCKER_BUILDKIT=1 docker build --platform=$(TARGET_ARCH) -t $(IMAGE_PREFIX)argo-rollouts:$(IMAGE_TAG) .
endif
@if [ "$(DOCKER_PUSH)" = "true" ] ; then docker push $(IMAGE_PREFIX)argo-rollouts:$(IMAGE_TAG) ; fi
.PHONY: lint
lint:
golangci-lint run --fix
# Build sample plugin with debug info
# https://www.jetbrains.com/help/go/attach-to-running-go-processes-with-debugger.html
.PHONY: build-sample-metric-plugin-debug
build-sample-metric-plugin-debug: ## build sample metric plugin with debug info
go build -gcflags="all=-N -l" -o plugin-bin/metric-plugin test/cmd/metrics-plugin-sample/main.go
.PHONY: build-sample-traffic-plugin-debug
build-sample-traffic-plugin-debug: ## build sample traffic plugin with debug info
go build -gcflags="all=-N -l" -o plugin-bin/traffic-plugin test/cmd/trafficrouter-plugin-sample/main.go
.PHONY: build-sample-step-plugin-debug
build-sample-step-plugin-debug: ## build sample traffic plugin with debug info
go build -gcflags="all=-N -l" -o plugin-bin/step-plugin test/cmd/step-plugin-sample/main.go
.PHONY: plugin-image
plugin-image: ## build plugin image
DOCKER_BUILDKIT=1 docker build --platform=$(TARGET_ARCH) --target kubectl-argo-rollouts -t $(IMAGE_PREFIX)kubectl-argo-rollouts:$(IMAGE_TAG) .
if [ "$(DOCKER_PUSH)" = "true" ] ; then docker push $(IMAGE_PREFIX)kubectl-argo-rollouts:$(IMAGE_TAG) ; fi
##@ Test
.PHONY: test
test:
go test -failfast -covermode=count -coverprofile=coverage.out ${TEST_TARGET}
test: test-kustomize ## run all tests
@make test-unit
.PHONY: test-kustomize
test-kustomize: ## run kustomize tests
./test/kustomize/test.sh
setup-e2e:
@kubectl apply --context='${E2E_K8S_CONTEXT}' -f manifests/crds/rollout-crd.yaml
@kubectl apply --context='${E2E_K8S_CONTEXT}' -n argo-rollouts -f test/e2e/step-plugin/argo-rollouts-config.yaml
@rm -rf plugin-bin
@go build -gcflags="all=-N -l" -o plugin-bin/e2e-step-plugin test/cmd/step-plugin-e2e/main.go
.PHONY: start-e2e
start-e2e: ## start e2e test environment
mkdir -p coverage-output-e2e
GOCOVERDIR=coverage-output-e2e go run -cover ./cmd/rollouts-controller/main.go --instance-id ${E2E_INSTANCE_ID} --loglevel debug --kloglevel 6
.PHONY: test-e2e
test-e2e: install-devtools-local
${DIST_DIR}/gotestsum --rerun-fails-report=rerunreport.txt --junitfile=junit-e2e-test.xml --format=testname --packages="./test/e2e" --rerun-fails=5 -- -timeout 60m -count 1 --tags e2e -p ${E2E_PARALLEL} -parallel ${E2E_PARALLEL} -v --short ./test/e2e ${E2E_TEST_OPTIONS}
.PHONY: test-unit
test-unit: install-devtools-local ## run unit tests
mkdir -p coverage-output-unit
${DIST_DIR}/gotestsum --junitfile=junit-unit-test.xml --format=testname -- `go list ./... | grep -v ./test/cmd/metrics-plugin-sample` -cover -test.gocoverdir=$(CURDIR)/coverage-output-unit
.PHONY: coverage
coverage: test
coverage: test ## run coverage tests
go tool cover -html=coverage.out -o coverage.html
open coverage.html
.PHONY: mocks
mocks:
go run ./vendor/github.com/vektra/mockery/cmd/mockery/mockery.go -dir ./metricproviders -name Provider -output ./metricproviders/mocks
.PHONY: manifests
manifests:
manifests: ## generate manifests e.g. CRD, RBAC etc.
./hack/update-manifests.sh
# Cleans VSCode debug.test files from sub-dirs to prevent them from being included in packr boxes
.PHONY: clean-debug
clean-debug:
-find ${CURRENT_DIR} -name debug.test | xargs rm -f
.PHONY: clean
clean: clean-debug
clean: ## clean up build artifacts
-rm -rf ${CURRENT_DIR}/dist
-rm -rf ${CURRENT_DIR}/ui/dist
-rm -Rf ${CURRENT_DIR}/github.com/
-rm -Rf ${CURRENT_DIR}/k8s.io/
.PHONY: precheckin
precheckin: test lint
##@ Docs
# convenience target to run `mkdocs serve` using a docker container
.PHONY: serve-docs
serve-docs: docs ## serve docs locally
docker run --rm -it -p 8000:8000 -v ${CURRENT_DIR}:/docs squidfunk/mkdocs-material serve -a 0.0.0.0:8000
.PHONY: docs
docs: go-mod-vendor install-go-tools-local ## build docs
go run -mod=mod ./hack/gen-docs/main.go
##@ Release
.PHONY: release-docs
release-docs: docs ## build and deploy docs
docker run --rm -it \
-v ~/.ssh:/root/.ssh \
-v ${CURRENT_DIR}:/docs \
-v ~/.gitconfig:/root/.gitconfig \
squidfunk/mkdocs-material gh-deploy -r ${GIT_REMOTE_REPO}
.PHONY: release-precheck
release-precheck: manifests
release-precheck: manifests ## precheck release
@if [ "$(GIT_TREE_STATE)" != "clean" ]; then echo 'git tree state is $(GIT_TREE_STATE)' ; exit 1; fi
@if [ -z "$(GIT_TAG)" ]; then echo 'commit must be tagged to perform release' ; exit 1; fi
@if [ "$(GIT_TAG)" != "v`cat VERSION`" ]; then echo 'VERSION does not match git tag'; exit 1; fi
.PHONY: release-plugins
release-plugins:
release-plugins: ## build and push plugins
./hack/build-release-plugins.sh
.PHONY: release
release: release-precheck precheckin image release-plugins
release: release-precheck precheckin image plugin-image release-plugins
.PHONY: trivy
trivy: ## run trivy scan
@trivy fs --clear-cache
@trivy fs .
.PHONY: checksums
checksums:
shasum -a 256 ./dist/kubectl-argo-rollouts-* | awk -F './dist/' '{print $$1 $$2}' > ./dist/argo-rollouts-checksums.txt
help: ## Display this help.
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

13
OWNERS
View File

@ -1,9 +1,18 @@
owners:
- alexmt
- dthomson25
- jessesuen
- zachaller
approvers:
- alexmt
- dthomson25
- huikang
- jessesuen
- khhirani
- leoluz
reviewers:
- agrawroh
- dthomson25
- harikrongali
- kostis-codefresh
- perenesenko

View File

@ -1,22 +1,106 @@
# Argo Rollouts - Advanced Kubernetes Deployment Controller
# Argo Rollouts - Progressive Delivery for Kubernetes
[![codecov](https://codecov.io/gh/argoproj/argo-rollouts/branch/master/graph/badge.svg)](https://codecov.io/gh/argoproj/argo-rollouts)
[![slack](https://img.shields.io/badge/slack-argoproj-brightgreen.svg?logo=slack)](https://argoproj.github.io/community/join-slack)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3834/badge)](https://bestpractices.coreinfrastructure.org/projects/3834)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/argoproj/argo-rollouts/badge)](https://api.securityscorecards.dev/projects/github.com/argoproj/argo-rollouts)
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/argo-rollouts)](https://artifacthub.io/packages/helm/argo/argo-rollouts)
## What is Argo Rollouts?
Argo Rollouts controller, uses the Rollout custom resource to provide additional deployment strategies such as Blue Green and Canary to Kubernetes. The Rollout custom resource provides feature parity with the deployment resource but with additional deployment strategies.
## Why use Argo Rollouts?
Deployments resources offer two strategies to deploy changes: `RollingUpdate` and `Recreate`. While these strategies can solve a wide number of use cases, large scale production deployments use additional strategies, such as blue-green or canary, that are missing from the Deployment controller. In order to use these strategies in Kubernetes, users are forced to build scripts on top of their deployments. The Argo Rollouts controller provides these strategies as simple declarative, configurable options.
Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes.
Argo Rollouts (optionally) integrates with ingress controllers and service meshes, leveraging their traffic shaping abilities to gradually shift traffic to the new version during an update. Additionally, Rollouts can query and interpret metrics from various providers to verify key KPIs and drive automated promotion or rollback during an update.
[![Argo Rollotus Demo](https://img.youtube.com/vi/hIL0E2gLkf8/0.jpg)](https://youtu.be/hIL0E2gLkf8)
## Quick Start
```bash
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
```
Follow the full [getting started guide](docs/getting-started.md) to walk through creating and then updating a rollout object.
## Why Argo Rollouts?
Kubernetes Deployments provides the `RollingUpdate` strategy which provide a basic set of safety guarantees (readiness probes) during an update. However the rolling update strategy faces many limitations:
* Few controls over the speed of the rollout
* Inability to control traffic flow to the new version
* Readiness probes are unsuitable for deeper, stress, or one-time checks
* No ability to query external metrics to verify an update
* Can halt the progression, but unable to automatically abort and rollback the update
For these reasons, in large scale high-volume production environments, a rolling update is often considered too risky of an update procedure since it provides no control over the blast radius, may rollout too aggressively, and provides no automated rollback upon failures.
## Features
* Blue-Green update strategy
* Canary update strategy
* Fine-grained, weighted traffic shifting
* Automated rollbacks and promotions
* Manual judgement
* Customizable metric queries and analysis of business KPIs
* Ingress controller integration: NGINX, ALB, Apache APISIX
* Service Mesh integration: Istio, Linkerd, SMI
* Metric provider integration: Prometheus, Wavefront, Kayenta, Web, Kubernetes Jobs, Datadog, New Relic, InfluxDB
## Supported Traffic Shaping Integrations
| Traffic Shaping Integration | SetWeight | SetWeightExperiments | SetMirror | SetHeader | Implemented As Plugin |
|-----------------------------------|------------------------------|-----------------------------|----------------------------|----------------------------|-----------------------------|
| ALB Ingress Controller | :white_check_mark: (stable) | :white_check_mark: (stable) | :x: | :white_check_mark: (alpha) | |
| Ambassador | :white_check_mark: (stable) | :x: | :x: | :x: | |
| Apache APISIX Ingress Controller | :white_check_mark: (alpha) | :x: | :x: | :white_check_mark: (alpha) | |
| Istio | :white_check_mark: (stable) | :white_check_mark: (stable) | :white_check_mark: (alpha) | :white_check_mark: (alpha) | |
| Nginx Ingress Controller | :white_check_mark: (stable) | :x: | :x: | :x: | |
| SMI | :white_check_mark: (stable) | :white_check_mark: (stable) | :x: | :x: | |
| Traefik | :white_check_mark: (beta) | :x: | :x: | :x: | |
| Contour | :white_check_mark: (beta) | :x: | :x: | :x: | :heavy_check_mark: |
| Gateway API | :white_check_mark: (alpha) | :x: | :x: | :x: | :heavy_check_mark: |
:white_check_mark: = Supported
:x: = Not Supported
:heavy_check_mark: = Yes
## Documentation
To learn more about Argo Rollouts go to the [complete documentation](https://argoproj.github.io/argo-rollouts/).
To learn more about Argo Rollouts go to the [complete documentation](https://argo-rollouts.readthedocs.io/en/stable/).
## Community
You can reach the Argo Rollouts community and developers via the following channels:
* Q & A: [Github Discussions](https://github.com/argoproj/argo-rollouts/discussions)
* Chat: [The #argo-rollouts Slack channel](https://argoproj.github.io/community/join-slack)
* Contributors Office Hours: [Every Thursday](https://calendar.google.com/calendar/u/0/embed?src=argoproj@gmail.com) | [Agenda](https://docs.google.com/document/d/1xkoFkVviB70YBzSEa4bDnu-rUZ1sIFtwKKG1Uw8XsY8)
* User Community meeting: [First Wednesday of each month](https://calendar.google.com/calendar/u/0/embed?src=argoproj@gmail.com) | [Agenda](https://docs.google.com/document/d/1ttgw98MO45Dq7ZUHpIiOIEfbyeitKHNfMjbY5dLLMKQ)
## Who uses Argo Rollouts?
Organizations below are **officially** using Argo Rollouts. Please send a PR with your organization name if you are using Argo Rollouts.
1. [Intuit](https://www.intuit.com/)
[Official Argo Rollouts User List](https://github.com/argoproj/argo-rollouts/blob/master/USERS.md)
## Community Blogs and Presentations
* [Awesome-Argo: A Curated List of Awesome Projects and Resources Related to Argo](https://github.com/terrytangyuan/awesome-argo)
* [Automation of Everything - How To Combine Argo Events, Workflows & Pipelines, CD, and Rollouts](https://youtu.be/XNXJtxkUKeY)
* [Argo Rollouts - Canary Deployments Made Easy In Kubernetes](https://youtu.be/84Ky0aPbHvY)
* [How Intuit Does Canary and Blue Green Deployments](https://www.youtube.com/watch?v=yeVkTTO9nOA)
* [Leveling Up Your CD: Unlocking Progressive Delivery on Kubernetes](https://www.youtube.com/watch?v=Nv0PPwbIEkY)
* [Minimize failed deployments with Argo Rollouts and Smoke tests](https://codefresh.io/continuous-deployment/minimize-failed-deployments-argo-rollouts-smoke-tests/)
* [Recover automatically from failed deployments with Argo Rollouts and Prometheus metrics](https://codefresh.io/continuous-deployment/recover-automatically-from-failed-deployments/)
* [Kubernetes Blue-Green deployments with Argo Rollouts](https://www.youtube.com/watch?v=krDxDz4V4Tg)
* [Kubernetes canary deployments with Argo Rollouts](https://www.youtube.com/watch?v=fviYWA2mcF8)
* [GitOps with Argo CD and an Argo Rollouts canary release](https://www.youtube.com/watch?v=35Qimb_AZ8U)
* [Multi-Stage Delivery with Keptn and Argo Rollouts](https://www.youtube.com/watch?v=w-E8FzTbN3g&t=1s)
* [Gradual Code Releases Using an In-House Kubernetes Canary Controller on top of Argo Rollouts](https://doordash.engineering/2021/04/14/gradual-code-releases-using-an-in-house-kubernetes-canary-controller/)
* [How Scalable is Argo-Rollouts: A Cloud Operators Perspective](https://www.youtube.com/watch?v=rCEhxJ2NSTI)
* [Minimize Impact in Kubernetes Using Argo Rollouts](https://medium.com/@arielsimhon/minimize-impact-in-kubernetes-using-argo-rollouts-992fb9519969)
* [Progressive Application Delivery with GitOps on Red Hat OpenShift](https://www.youtube.com/watch?v=DfeL7cdTx4c)
* [Progressive delivery for Kubernetes Config Maps using Argo Rollouts](https://codefresh.io/blog/progressive-delivery-for-kubernetes-config-maps-using-argo-rollouts/)
* [Multi-Service Progressive Delivery with Argo Rollouts](https://codefresh.io/blog/multi-service-progressive-delivery-with-argo-rollouts/)
* [Progressive Delivery for Stateful Services Using Argo Rollouts](https://codefresh.io/blog/progressive-delivery-for-stateful-services-using-argo-rollouts/)

78
USERS.md Normal file
View File

@ -0,0 +1,78 @@
## Who uses Argo Rollouts?
Organizations below are **officially** using Argo Rollouts. Please send a PR with your organization name if you are using Argo Rollouts.
1. [7shifts](https://www.7shifts.com)
1. [Ada](https://www.ada.cx)
1. [ADP](https://www.adp.com)
1. [Akuity](https://akuity.io/)
1. [Alibaba Group](https://www.alibabagroup.com/)
1. [Amadeus IT Group](https://amadeus.com/)
1. [Ambassador Labs](https://www.getambassador.io)
1. [Ant Group](https://www.antgroup.com/)
1. [AppsFlyer](https://www.appsflyer.com/)
1. [Batumbu](https://batumbu.id/)
1. [Bucketplace](https://www.bucketplace.co.kr/)
1. [BukuKas](https://bukukas.co.id/)
1. [Calm](https://www.calm.com/)
1. [CarGurus](https://www.cargurus.com/)
1. [CircleCI](https://circleci.com/)
1. [Cloudflare](https://cloudflare.com/)
1. [Codefresh](https://codefresh.io/)
1. [Credit Karma](https://creditkarma.com/)
1. [DaoCloud](https://daocloud.io)
1. [Databricks](https://github.com/databricks)
1. [Devtron Labs](https://github.com/devtron-labs/devtron)
1. [Doubble](https://www.doubble.app)
1. [Factorial](https://factorialhr.com)
1. [Farfetch](https://www.farfetch.com/)
1. [Flipkart](https://flipkart.com)
1. [GetYourGuide](https://www.getyourguide.com)
1. [Gllue](https://gllue.com)
1. [Groww](https://groww.in/)
1. [HashiCorp](https://www.hashicorp.com/)
1. [Hepsiburada](https://hepsiburada.com/)
1. [Ibotta](https://home.ibotta.com/)
1. [Intuit](https://www.intuit.com/)
1. [Microsoft](https://microsoft.com/)
1. [New Relic](https://newrelic.com/)
1. [Nextdoor](https://nextdoor.com)
1. [Nitro](https://www.gonitro.com)
1. [Nozzle](https://nozzle.io)
1. [Opensurvey Inc.](https://opensurvey.co.kr)
1. [OpsMx](https://opsmx.io)
1. [OpsVerse](https://opsverse.io)
1. [Optum](https://www.optum.com)
1. [Outreach](https://www.outreach.io)
1. [PagerDuty](https://www.pagerduty.com/)
1. [PayPal](https://www.paypal.com/)
1. [PayPay](https://paypay.ne.jp/)
1. [Plaid](https://plaid.com/)
1. [Priceline](https://priceline.com)
1. [Productboard](https://www.productboard.com)
1. [Quipper](https://www.quipper.com/)
1. [Quizlet](https://quizlet.com)
1. [Red Hat](https://www.redhat.com/)
1. [Salesforce](https://www.salesforce.com/)
1. [SAP Concur](https://www.concur.com/)
1. [Schneider Electric](https://www.se.com)
1. [Shipt](https://www.shipt.com/)
1. [Skillz](https://www.skillz.com)
1. [Spotify](https://www.spotify.com/)
1. [suXess-it](https://www.suxess-it.com/)
1. [Synamedia](https://www.synamedia.com)
1. [StormForge](https://www.stormforge.io)
1. [Taboola](https://www.taboola.com)
1. [TBC Bank](https://tbcbank.ge/)
1. [Trustly](https://www.trustly.com/)
1. [Tuhu](https://www.tuhu.cn/)
1. [Twilio SendGrid](https://sendgrid.com)
1. [Ubie](https://ubie.life/)
1. [Verkada](https://verkada.com)
1. [VISITS Technologies](https://visits.world/en)
1. [WeLab Bank](https://www.welab.bank/)
1. [Wolt](https://wolt.com/)
1. [Yotpo](https://www.yotpo.com/)
1. [Yuno](https://y.uno/)
1. [VGS](https://www.vgs.io)
1. [X3M ads](https://x3mads.com)

View File

@ -1 +1 @@
0.7.0
1.2.0

View File

@ -1,35 +1,36 @@
package analysis
import (
"context"
"fmt"
"strings"
"sync"
"time"
log "github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/utils/ptr"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
analysisutil "github.com/argoproj/argo-rollouts/utils/analysis"
"github.com/argoproj/argo-rollouts/utils/defaults"
logutil "github.com/argoproj/argo-rollouts/utils/log"
"github.com/argoproj/argo-rollouts/utils/record"
timeutil "github.com/argoproj/argo-rollouts/utils/time"
)
const (
// DefaultMeasurementHistoryLimit is the default maximum number of measurements to retain per metric,
// before trimming the list.
DefaultMeasurementHistoryLimit = 10
// DefaultConsecutiveErrorLimit is the default number times a metric can error in sequence before
// erroring the entire metric.
DefaultConsecutiveErrorLimit int32 = 4
// DefaultErrorRetryInterval is the default interval to retry a measurement upon error, in the
// event an interval was not specified
DefaultErrorRetryInterval time.Duration = 10 * time.Second
)
// Event reasons for analysis events
const (
EventReasonStatusFailed = "Failed"
EventReasonStatusCompleted = "Complete"
DefaultErrorRetryInterval = 10 * time.Second
// SuccessfulAssessmentRunTerminatedResult is used for logging purposes when the metrics evaluation
// is successful and the run is terminated.
SuccessfulAssessmentRunTerminatedResult = "Metric Assessment Result - Successful: Run Terminated"
)
// metricTask holds the metric which need to be measured during this reconciliation along with
@ -39,91 +40,165 @@ type metricTask struct {
incompleteMeasurement *v1alpha1.Measurement
}
func (c *AnalysisController) reconcileAnalysisRun(origRun *v1alpha1.AnalysisRun) *v1alpha1.AnalysisRun {
func (c *Controller) reconcileAnalysisRun(origRun *v1alpha1.AnalysisRun) *v1alpha1.AnalysisRun {
logger := logutil.WithAnalysisRun(origRun)
if origRun.Status.Phase.Completed() {
err := c.maybeGarbageCollectAnalysisRun(origRun, logger)
if err != nil {
// TODO(jessesuen): surface errors to controller so they can be retried
logger.Warnf("Failed to garbage collect analysis run: %v", err)
}
return origRun
}
log := logutil.WithAnalysisRun(origRun)
run := origRun.DeepCopy()
if run.Status.MetricResults == nil {
run.Status.MetricResults = make([]v1alpha1.MetricResult, 0)
err := analysisutil.ValidateMetrics(run.Spec.Metrics)
if err != nil {
message := fmt.Sprintf("analysis spec invalid: %v", err)
log.Warn(message)
run.Status.Phase = v1alpha1.AnalysisPhaseError
run.Status.Message = message
c.recorder.Eventf(run, corev1.EventTypeWarning, EventReasonStatusFailed, "analysis completed %s", run.Status.Phase)
return run
}
}
tasks := generateMetricTasks(run)
log.Infof("taking %d measurements", len(tasks))
c.runMeasurements(run, tasks)
newStatus := c.asssessRunStatus(run)
resolvedMetrics, err := getResolvedMetricsWithoutSecrets(run.Spec.Metrics, run.Spec.Args)
if err != nil {
message := fmt.Sprintf("Unable to resolve metric arguments: %v", err)
logger.Warn(message)
run.Status.Phase = v1alpha1.AnalysisPhaseError
run.Status.Message = message
c.recordAnalysisRunCompletionEvent(run)
return run
}
err = analysisutil.ValidateMetrics(resolvedMetrics)
if err != nil {
message := fmt.Sprintf("Analysis spec invalid: %v", err)
logger.Warn(message)
run.Status.Phase = v1alpha1.AnalysisPhaseError
run.Status.Message = message
c.recordAnalysisRunCompletionEvent(run)
return run
}
dryRunMetricsMap, err := analysisutil.GetDryRunMetrics(run.Spec.DryRun, resolvedMetrics)
if err != nil {
message := fmt.Sprintf("Analysis spec invalid: %v", err)
logger.Warn(message)
run.Status.Phase = v1alpha1.AnalysisPhaseError
run.Status.Message = message
c.recordAnalysisRunCompletionEvent(run)
return run
}
measurementRetentionMetricsMap, err := analysisutil.GetMeasurementRetentionMetrics(run.Spec.MeasurementRetention, resolvedMetrics)
if err != nil {
message := fmt.Sprintf("Analysis spec invalid: %v", err)
logger.Warn(message)
run.Status.Phase = v1alpha1.AnalysisPhaseError
run.Status.Message = message
c.recordAnalysisRunCompletionEvent(run)
return run
}
tasks := generateMetricTasks(run, resolvedMetrics)
logger.Infof("Taking %d Measurement(s)...", len(tasks))
err = c.runMeasurements(run, tasks, dryRunMetricsMap)
if err != nil {
message := fmt.Sprintf("Unable to resolve metric arguments: %v", err)
logger.Warn(message)
run.Status.Phase = v1alpha1.AnalysisPhaseError
run.Status.Message = message
c.recordAnalysisRunCompletionEvent(run)
return run
}
newStatus, newMessage := c.assessRunStatus(run, resolvedMetrics, dryRunMetricsMap)
if newStatus != run.Status.Phase {
message := fmt.Sprintf("analysis transitioned from %s -> %s", run.Status.Phase, newStatus)
run.Status.Phase = newStatus
run.Status.Message = newMessage
if newStatus.Completed() {
switch newStatus {
case v1alpha1.AnalysisPhaseError, v1alpha1.AnalysisPhaseFailed:
c.recorder.Eventf(run, corev1.EventTypeWarning, EventReasonStatusFailed, "analysis completed %s", newStatus)
default:
c.recorder.Eventf(run, corev1.EventTypeNormal, EventReasonStatusCompleted, "analysis completed %s", newStatus)
c.recordAnalysisRunCompletionEvent(run)
if run.Status.CompletedAt == nil {
now := timeutil.MetaNow()
run.Status.CompletedAt = &now
}
}
log.Info(message)
run.Status.Phase = newStatus
}
err := c.garbageCollectMeasurements(run, DefaultMeasurementHistoryLimit)
err = c.garbageCollectMeasurements(run, measurementRetentionMetricsMap, DefaultMeasurementHistoryLimit)
if err != nil {
// TODO(jessesuen): surface errors to controller so they can be retried
log.Warnf("Failed to garbage collect measurements: %v", err)
logger.Warnf("Failed to garbage collect measurements: %v", err)
}
nextReconcileTime := calculateNextReconcileTime(run)
nextReconcileTime := calculateNextReconcileTime(run, resolvedMetrics)
if nextReconcileTime != nil {
enqueueSeconds := nextReconcileTime.Sub(time.Now())
enqueueSeconds := nextReconcileTime.Sub(timeutil.Now())
if enqueueSeconds < 0 {
enqueueSeconds = 0
}
log.Infof("enqueuing analysis after %v", enqueueSeconds)
logger.Infof("Enqueueing analysis after %v", enqueueSeconds)
c.enqueueAnalysisAfter(run, enqueueSeconds)
}
return run
}
func getResolvedMetricsWithoutSecrets(metrics []v1alpha1.Metric, args []v1alpha1.Argument) ([]v1alpha1.Metric, error) {
newArgs := make([]v1alpha1.Argument, 0)
for _, arg := range args {
newArg := arg.DeepCopy()
if newArg.ValueFrom != nil && newArg.ValueFrom.SecretKeyRef != nil {
newArg.ValueFrom = nil
newArg.Value = ptr.To[string]("temp-for-secret")
}
newArgs = append(newArgs, *newArg)
}
resolvedMetrics := make([]v1alpha1.Metric, 0)
for _, metric := range metrics {
resolvedMetric, err := analysisutil.ResolveMetricArgs(metric, newArgs)
if err != nil {
return nil, err
}
resolvedMetrics = append(resolvedMetrics, *resolvedMetric)
}
return resolvedMetrics, nil
}
func (c *Controller) recordAnalysisRunCompletionEvent(run *v1alpha1.AnalysisRun) {
eventType := corev1.EventTypeNormal
switch run.Status.Phase {
case v1alpha1.AnalysisPhaseError, v1alpha1.AnalysisPhaseFailed:
eventType = corev1.EventTypeWarning
}
c.recorder.Eventf(run, record.EventOptions{EventType: eventType, EventReason: "AnalysisRun" + string(run.Status.Phase)}, "Analysis Completed. Result: %s", run.Status.Phase)
}
// generateMetricTasks generates a list of metrics tasks needed to be measured as part of this
// sync, based on the last completion times that metric was measured (if ever). If the run is
// terminating (e.g. due to manual termination or failing metric), will not schedule further
// measurements other than to resume any in-flight measurements.
func generateMetricTasks(run *v1alpha1.AnalysisRun) []metricTask {
log := logutil.WithAnalysisRun(run)
func generateMetricTasks(run *v1alpha1.AnalysisRun, metrics []v1alpha1.Metric) []metricTask {
logger := logutil.WithAnalysisRun(run)
var tasks []metricTask
terminating := analysisutil.IsTerminating(run)
for _, metric := range run.Spec.Metrics {
for i, metric := range metrics {
if analysisutil.MetricCompleted(run, metric.Name) {
continue
}
logCtx := log.WithField("metric", metric.Name)
logCtx := logger.WithField("metric", metric.Name)
lastMeasurement := analysisutil.LastMeasurement(run, metric.Name)
if lastMeasurement != nil && lastMeasurement.FinishedAt == nil {
now := metav1.Now()
now := timeutil.MetaNow()
if lastMeasurement.ResumeAt != nil && lastMeasurement.ResumeAt.After(now.Time) {
continue
}
// last measurement is still in-progress. need to complete it
logCtx.Infof("resuming in-progress measurement")
logCtx.Infof("Resuming in-progress measurement")
tasks = append(tasks, metricTask{
metric: metric,
metric: run.Spec.Metrics[i],
incompleteMeasurement: lastMeasurement,
})
continue
}
if terminating {
logCtx.Infof("skipping measurement: run is terminating")
logCtx.Infof("Skipping measurement: run is terminating")
continue
}
if lastMeasurement == nil {
@ -136,19 +211,19 @@ func generateMetricTasks(run *v1alpha1.AnalysisRun) []metricTask {
logCtx.Warnf("failed to parse duration: %v", err)
continue
}
if run.Status.StartedAt.Add(duration).After(time.Now()) {
logCtx.Infof("waiting until start delay duration passes")
if run.Status.StartedAt.Add(duration).After(timeutil.Now()) {
logCtx.Infof("Waiting until start delay duration passes")
continue
}
}
// measurement never taken
tasks = append(tasks, metricTask{metric: metric})
logCtx.Infof("running initial measurement")
tasks = append(tasks, metricTask{metric: run.Spec.Metrics[i]})
logCtx.Infof("Running initial measurement")
continue
}
metricResult := analysisutil.GetResult(run, metric.Name)
effectiveCount := metric.EffectiveCount()
if effectiveCount != nil && metricResult.Count >= *effectiveCount {
if effectiveCount != nil && metricResult.Count >= int32(effectiveCount.IntValue()) {
// we have reached desired count
continue
}
@ -156,70 +231,128 @@ func generateMetricTasks(run *v1alpha1.AnalysisRun) []metricTask {
// to decide if it should be taken now. metric.Interval can be null because we may be
// retrying a metric due to error.
interval := DefaultErrorRetryInterval
if metric.Interval != "" {
metricInterval, err := metric.Interval.Duration()
if lastMeasurement.Phase == v1alpha1.AnalysisPhaseError {
interval = DefaultErrorRetryInterval
} else if metric.Interval != "" {
parsedInterval, err := parseMetricInterval(*logCtx, metric.Interval)
if err != nil {
logCtx.Warnf("failed to parse interval: %v", err)
continue
}
interval = metricInterval
interval = parsedInterval
}
if time.Now().After(lastMeasurement.FinishedAt.Add(interval)) {
tasks = append(tasks, metricTask{metric: metric})
logCtx.Infof("running overdue measurement")
if timeutil.Now().After(lastMeasurement.FinishedAt.Add(interval)) {
tasks = append(tasks, metricTask{metric: run.Spec.Metrics[i]})
logCtx.Infof("Running overdue measurement")
continue
}
}
return tasks
}
// parseMetricInterval is a helper method to parse the given metric interval and return the
// parsed duration or error (if any)
func parseMetricInterval(logCtx log.Entry, metricDurationString v1alpha1.DurationString) (time.Duration, error) {
metricInterval, err := metricDurationString.Duration()
if err != nil {
logCtx.Warnf("Failed to parse interval: %v", err)
return -1, err
}
return metricInterval, nil
}
// resolveArgs resolves args for metricTasks, including secret references
// returns resolved metricTasks and secrets for log redaction
func (c *Controller) resolveArgs(tasks []metricTask, args []v1alpha1.Argument, namespace string) ([]metricTask, []string, error) {
//create set of secret values for redaction
secretSet := map[string]bool{}
for i, arg := range args {
//if secret specified in valueFrom, replace value with secret value
//error if arg has both value and valueFrom
if arg.ValueFrom != nil && arg.ValueFrom.SecretKeyRef != nil {
name := arg.ValueFrom.SecretKeyRef.Name
secret, err := c.kubeclientset.CoreV1().Secrets(namespace).Get(context.TODO(), name, metav1.GetOptions{})
if err != nil {
return nil, nil, err
}
secretContentBytes, ok := secret.Data[arg.ValueFrom.SecretKeyRef.Key]
if !ok {
err := fmt.Errorf("key '%s' does not exist in secret '%s'", arg.ValueFrom.SecretKeyRef.Key, arg.ValueFrom.SecretKeyRef.Name)
return nil, nil, err
}
secretContent := string(secretContentBytes)
secretSet[secretContent] = true
resolvedArg := arg.DeepCopy()
resolvedArg.Value = &secretContent
args[i] = *resolvedArg
} else {
args[i] = arg
}
}
// creates list of secret values from secretSet for RedactorFormatter
secrets := make([]string, 0, len(secretSet))
for k := range secretSet {
secrets = append(secrets, k)
}
// resolves arguments in each metric task
for i, task := range tasks {
resolvedMetric, err := analysisutil.ResolveMetricArgs(task.metric, args)
if err != nil {
return nil, nil, err
}
tasks[i].metric = *resolvedMetric
}
return tasks, secrets, nil
}
// runMeasurements iterates a list of metric tasks, and runs, resumes, or terminates measurements
func (c *AnalysisController) runMeasurements(run *v1alpha1.AnalysisRun, tasks []metricTask) {
func (c *Controller) runMeasurements(run *v1alpha1.AnalysisRun, tasks []metricTask, dryRunMetricsMap map[string]bool) error {
var wg sync.WaitGroup
// resultsLock should be held whenever we are accessing or setting status.metricResults since
// we are performing queries in parallel
var resultsLock sync.Mutex
terminating := analysisutil.IsTerminating(run)
// resolve args for metric tasks
// get list of secret values for log redaction
tasks, secrets, err := c.resolveArgs(tasks, run.Spec.Args, run.Namespace)
if err != nil {
return err
}
for _, task := range tasks {
wg.Add(1)
go func(t metricTask) {
go func(t metricTask) error {
defer wg.Done()
log := logutil.WithAnalysisRun(run).WithField("metric", t.metric.Name)
resultsLock.Lock()
metricResult := analysisutil.GetResult(run, t.metric.Name)
resultsLock.Unlock()
if metricResult == nil {
metricResult = &v1alpha1.MetricResult{
Name: t.metric.Name,
Phase: v1alpha1.AnalysisPhaseRunning,
}
}
//redact secret values from logs
logger := logutil.WithRedactor(*logutil.WithAnalysisRun(run).WithField("metric", t.metric.Name), secrets)
var newMeasurement v1alpha1.Measurement
provider, err := c.newProvider(*log, t.metric)
if err != nil {
provider, providerErr := c.newProvider(*logger, run.Namespace, t.metric)
if providerErr != nil {
log.Errorf("Error in getting metric provider :%v", providerErr)
if t.incompleteMeasurement != nil {
newMeasurement = *t.incompleteMeasurement
} else {
startedAt := metav1.Now()
startedAt := timeutil.MetaNow()
newMeasurement.StartedAt = &startedAt
}
newMeasurement.Phase = v1alpha1.AnalysisPhaseError
newMeasurement.Message = err.Error()
newMeasurement.Message = providerErr.Error()
} else {
if t.incompleteMeasurement == nil {
newMeasurement = provider.Run(run, t.metric)
} else {
// metric is incomplete. either terminate or resume it
if terminating {
log.Infof("terminating in-progress measurement")
logger.Infof("Terminating in-progress measurement")
newMeasurement = provider.Terminate(run, t.metric, *t.incompleteMeasurement)
if newMeasurement.Phase == v1alpha1.AnalysisPhaseSuccessful {
newMeasurement.Message = "metric terminated"
newMeasurement.Message = "Metric Terminated"
}
} else {
newMeasurement = provider.Resume(run, t.metric, *t.incompleteMeasurement)
@ -227,31 +360,59 @@ func (c *AnalysisController) runMeasurements(run *v1alpha1.AnalysisRun, tasks []
}
}
resultsLock.Lock()
metricResult := analysisutil.GetResult(run, t.metric.Name)
resultsLock.Unlock()
if metricResult == nil {
metricResult = &v1alpha1.MetricResult{
Name: t.metric.Name,
Phase: v1alpha1.AnalysisPhaseRunning,
DryRun: dryRunMetricsMap[t.metric.Name],
}
if provider != nil && providerErr == nil {
metricResult.Metadata = provider.GetMetadata(t.metric)
}
}
if newMeasurement.Phase.Completed() {
log.Infof("measurement completed %s", newMeasurement.Phase)
logger.Infof("Measurement Completed. Result: %s", newMeasurement.Phase)
if newMeasurement.FinishedAt == nil {
finishedAt := metav1.Now()
finishedAt := timeutil.MetaNow()
newMeasurement.FinishedAt = &finishedAt
}
switch newMeasurement.Phase {
case v1alpha1.AnalysisPhaseSuccessful:
metricResult.Successful++
metricResult.Count++
metricResult.ConsecutiveError = 0
metricResult.ConsecutiveSuccess++
case v1alpha1.AnalysisPhaseFailed:
metricResult.Failed++
metricResult.Count++
metricResult.ConsecutiveError = 0
metricResult.ConsecutiveSuccess = 0
case v1alpha1.AnalysisPhaseInconclusive:
metricResult.Inconclusive++
metricResult.Count++
metricResult.ConsecutiveError = 0
metricResult.ConsecutiveSuccess = 0
case v1alpha1.AnalysisPhaseError:
metricResult.Error++
metricResult.ConsecutiveError++
log.Warnf("measurement had error: %s", newMeasurement.Message)
metricResult.ConsecutiveSuccess = 0
logger.Warnf("Measurement had error: %s", newMeasurement.Message)
}
}
//redact secret values from measurement message
for _, secret := range secrets {
if secret != "" {
newMeasurement.Message = strings.ReplaceAll(newMeasurement.Message, secret, "*****")
}
}
if t.incompleteMeasurement == nil {
metricResult.Measurements = append(metricResult.Measurements, newMeasurement)
} else {
@ -261,39 +422,67 @@ func (c *AnalysisController) runMeasurements(run *v1alpha1.AnalysisRun, tasks []
resultsLock.Lock()
analysisutil.SetResult(run, *metricResult)
resultsLock.Unlock()
return nil
}(task)
}
wg.Wait()
return nil
}
// asssessRunStatus assesses the overall status of this AnalysisRun
// assessRunStatus assesses the overall status of this AnalysisRun
// If any metric is not yet completed, the AnalysisRun is still considered Running
// Once all metrics are complete, the worst status is used as the overall AnalysisRun status
func (c *AnalysisController) asssessRunStatus(run *v1alpha1.AnalysisRun) v1alpha1.AnalysisPhase {
func (c *Controller) assessRunStatus(run *v1alpha1.AnalysisRun, metrics []v1alpha1.Metric, dryRunMetricsMap map[string]bool) (v1alpha1.AnalysisPhase, string) {
var worstStatus v1alpha1.AnalysisPhase
var worstMessage string
terminating := analysisutil.IsTerminating(run)
everythingCompleted := true
if run.Status.StartedAt == nil {
now := metav1.Now()
now := timeutil.MetaNow()
run.Status.StartedAt = &now
}
if run.Spec.Terminate {
worstMessage = "Run Terminated"
}
// Iterate all metrics and update MetricResult.Phase fields based on lastest measurement(s)
for _, metric := range run.Spec.Metrics {
// Initialize Run & Dry-Run summary object
runSummary := v1alpha1.RunSummary{
Count: 0,
Successful: 0,
Failed: 0,
Inconclusive: 0,
Error: 0,
}
dryRunSummary := v1alpha1.RunSummary{
Count: 0,
Successful: 0,
Failed: 0,
Inconclusive: 0,
Error: 0,
}
// Iterate all metrics and update `MetricResult.Phase` fields based on latest measurement(s)
for _, metric := range metrics {
if dryRunMetricsMap[metric.Name] {
log.Infof("Metric '%s' is running in the Dry-Run mode.", metric.Name)
dryRunSummary.Count++
} else {
runSummary.Count++
}
if result := analysisutil.GetResult(run, metric.Name); result != nil {
log := logutil.WithAnalysisRun(run).WithField("metric", metric.Name)
logger := logutil.WithAnalysisRun(run).WithField("metric", metric.Name)
metricStatus := assessMetricStatus(metric, *result, terminating)
if result.Phase != metricStatus {
log.Infof("metric transitioned from %s -> %s", result.Phase, metricStatus)
logger.Infof("Metric '%s' transitioned from %s -> %s", metric.Name, result.Phase, metricStatus)
if metricStatus.Completed() {
eventType := corev1.EventTypeNormal
switch metricStatus {
case v1alpha1.AnalysisPhaseError, v1alpha1.AnalysisPhaseFailed:
c.recorder.Eventf(run, corev1.EventTypeWarning, EventReasonStatusFailed, "metric '%s' completed %s", metric.Name, metricStatus)
default:
c.recorder.Eventf(run, corev1.EventTypeNormal, EventReasonStatusCompleted, "metric '%s' completed %s", metric.Name, metricStatus)
eventType = corev1.EventTypeWarning
}
c.recorder.Eventf(run, record.EventOptions{EventType: eventType, EventReason: "Metric" + string(metricStatus)}, "Metric '%s' Completed. Result: %s", metric.Name, metricStatus)
}
if lastMeasurement := analysisutil.LastMeasurement(run, metric.Name); lastMeasurement != nil {
result.Message = lastMeasurement.Message
@ -305,82 +494,203 @@ func (c *AnalysisController) asssessRunStatus(run *v1alpha1.AnalysisRun) v1alpha
// if any metric is in-progress, then entire analysis run will be considered running
everythingCompleted = false
} else {
phase, message := assessMetricFailureInconclusiveOrError(metric, *result)
// NOTE: We don't care about the status if the metric is marked as a Dry-Run
// otherwise, remember the worst status of all completed metric results
if worstStatus == "" {
worstStatus = metricStatus
} else {
if analysisutil.IsWorse(worstStatus, metricStatus) {
if !dryRunMetricsMap[metric.Name] {
if worstStatus == "" || analysisutil.IsWorse(worstStatus, metricStatus) {
worstStatus = metricStatus
if message != "" {
worstMessage = fmt.Sprintf("Metric \"%s\" assessed %s due to %s", metric.Name, metricStatus, message)
if result.Message != "" {
worstMessage += fmt.Sprintf(": \"Error Message: %s\"", result.Message)
}
}
}
// Update Run Summary
switch phase {
case v1alpha1.AnalysisPhaseError:
runSummary.Error++
case v1alpha1.AnalysisPhaseFailed:
runSummary.Failed++
case v1alpha1.AnalysisPhaseInconclusive:
runSummary.Inconclusive++
case v1alpha1.AnalysisPhaseSuccessful:
runSummary.Successful++
default:
// We'll mark the status as success by default if it doesn't match anything.
runSummary.Successful++
}
} else {
// We don't really care about the failures from dry-runs and hence, if there is no current status
// found then we just set it to `AnalysisPhaseSuccessful`
if worstStatus == "" {
worstStatus = v1alpha1.AnalysisPhaseSuccessful
}
// Update metric result message
if message != "" {
result.Message = fmt.Sprintf("Metric assessed %s due to %s", metricStatus, message)
analysisutil.SetResult(run, *result)
}
// Update DryRun Summary
switch phase {
case v1alpha1.AnalysisPhaseError:
dryRunSummary.Error++
case v1alpha1.AnalysisPhaseFailed:
dryRunSummary.Failed++
case v1alpha1.AnalysisPhaseInconclusive:
dryRunSummary.Inconclusive++
case v1alpha1.AnalysisPhaseSuccessful:
dryRunSummary.Successful++
default:
// We'll mark the status as success by default if it doesn't match anything.
dryRunSummary.Successful++
}
}
}
} else {
// metric hasn't started running. possible cases where some metrics starts with delay
everythingCompleted = false
}
}
if !everythingCompleted || worstStatus == "" {
return v1alpha1.AnalysisPhaseRunning
// Append Dry-Run metrics results if any.
worstMessage = strings.TrimSpace(worstMessage)
run.Status.RunSummary = runSummary
run.Status.DryRunSummary = &dryRunSummary
if terminating {
if worstStatus == "" {
// we have yet to take a single measurement, but have already been instructed to stop
log.Infof(SuccessfulAssessmentRunTerminatedResult)
return v1alpha1.AnalysisPhaseSuccessful, worstMessage
}
log.Infof("Metric Assessment Result - %s: Run Terminated", worstStatus)
return worstStatus, worstMessage
}
return worstStatus
if !everythingCompleted || worstStatus == "" {
return v1alpha1.AnalysisPhaseRunning, ""
}
return worstStatus, worstMessage
}
// assessMetricStatus assesses the status of a single metric based on:
// * current/latest measurement status
// * current or latest measurement status
// * parameters given by the metric (failureLimit, count, etc...)
// * whether or not we are terminating (e.g. due to failing run, or termination request)
// * whether we are terminating (e.g. due to failing run, or termination request)
func assessMetricStatus(metric v1alpha1.Metric, result v1alpha1.MetricResult, terminating bool) v1alpha1.AnalysisPhase {
if result.Phase.Completed() {
return result.Phase
}
log := log.WithField("metric", metric.Name)
logger := log.WithField("metric", metric.Name)
if len(result.Measurements) == 0 {
if terminating {
// we have yet to take a single measurement, but have already been instructed to stop
log.Infof("metric assessed %s: run terminated", v1alpha1.AnalysisPhaseSuccessful)
logger.Infof(SuccessfulAssessmentRunTerminatedResult)
return v1alpha1.AnalysisPhaseSuccessful
}
return v1alpha1.AnalysisPhasePending
}
lastMeasurement := result.Measurements[len(result.Measurements)-1]
if !lastMeasurement.Phase.Completed() {
// we still have a in-flight measurement
// we still have an in-flight measurement
return v1alpha1.AnalysisPhaseRunning
}
if result.Failed > metric.FailureLimit {
log.Infof("metric assessed %s: failed (%d) > failureLimit (%d)", v1alpha1.AnalysisPhaseFailed, result.Failed, metric.FailureLimit)
return v1alpha1.AnalysisPhaseFailed
// Check if metric was considered Failed, Inconclusive, or Error
// If true, then return AnalysisRunPhase as Failed, Inconclusive, or Error respectively
phaseFailureInconclusiveOrError, message := assessMetricFailureInconclusiveOrError(metric, result)
if phaseFailureInconclusiveOrError != "" {
logger.Infof("Metric Assessment Result - %s: %s", phaseFailureInconclusiveOrError, message)
return phaseFailureInconclusiveOrError
}
if result.Inconclusive > metric.InconclusiveLimit {
log.Infof("metric assessed %s: inconclusive (%d) > inconclusiveLimit (%d)", v1alpha1.AnalysisPhaseInconclusive, result.Inconclusive, metric.InconclusiveLimit)
return v1alpha1.AnalysisPhaseInconclusive
}
consecutiveErrorLimit := DefaultConsecutiveErrorLimit
if metric.ConsecutiveErrorLimit != nil {
consecutiveErrorLimit = *metric.ConsecutiveErrorLimit
}
if result.ConsecutiveError > consecutiveErrorLimit {
log.Infof("metric assessed %s: consecutiveErrors (%d) > consecutiveErrorLimit (%d)", v1alpha1.AnalysisPhaseError, result.ConsecutiveError, consecutiveErrorLimit)
return v1alpha1.AnalysisPhaseError
// Check if consecutiveSuccessLimit is applicable and was reached.
if metric.ConsecutiveSuccessLimit != nil && metric.ConsecutiveSuccessLimit.IntValue() > 0 && result.ConsecutiveSuccess >= int32(metric.ConsecutiveSuccessLimit.IntValue()) {
logger.Infof("Metric Assessment Result - %s: ConsecutiveSuccessLimit (%s) Reached", v1alpha1.AnalysisPhaseSuccessful, metric.ConsecutiveSuccessLimit.String())
return v1alpha1.AnalysisPhaseSuccessful
}
// If a count was specified, and we reached that count, then metric is considered Successful.
// The Error, Failed, Inconclusive counters are ignored because those checks have already been
// taken into consideration above, and we do not want to fail if failures < failureLimit.
effectiveCount := metric.EffectiveCount()
if effectiveCount != nil && result.Count >= *effectiveCount {
log.Infof("metric assessed %s: count (%d) reached", v1alpha1.AnalysisPhaseSuccessful, *effectiveCount)
if effectiveCount != nil && result.Count >= int32(effectiveCount.IntValue()) {
failureApplicable := (metric.FailureLimit != nil && metric.FailureLimit.IntValue() >= 0) || metric.FailureLimit == nil
successApplicable := metric.ConsecutiveSuccessLimit != nil && metric.ConsecutiveSuccessLimit.IntValue() > 0
if failureApplicable && successApplicable {
// failureLimit was checked above and not reached.
// consecutiveSuccessLimit was checked above and not reached.
failureLimit := "0"
if metric.FailureLimit != nil {
failureLimit = metric.FailureLimit.String()
}
logger.Infof("Metric Assessment Result - %s: ConsecutiveSuccessLimit (%s) Not Reached and FailureLimit (%s) Not Violated", v1alpha1.AnalysisPhaseInconclusive, metric.ConsecutiveSuccessLimit.String(), failureLimit)
return v1alpha1.AnalysisPhaseInconclusive
} else if successApplicable {
logger.Infof("Metric Assessment Result - %s: ConsecutiveSuccessLimit (%s) Not Reached", v1alpha1.AnalysisPhaseFailed, metric.ConsecutiveSuccessLimit.String())
return v1alpha1.AnalysisPhaseFailed
} else if failureApplicable {
// failureLimit was not reached in assessMetricFailureInconclusiveOrError above.
// AnalysisPhaseSuccessful below.
} else {
// This cannot happen, since one of failureLimit or consecutiveSuccessLimit will be applicable
// We validate that failureLimit >= 0 when consecutiveSuccessLimit == 0
}
logger.Infof("Metric Assessment Result - %s: Count (%s) Reached", v1alpha1.AnalysisPhaseSuccessful, effectiveCount.String())
return v1alpha1.AnalysisPhaseSuccessful
}
// if we get here, this metric runs indefinitely
if terminating {
log.Infof("metric assessed %s: run terminated", v1alpha1.AnalysisPhaseSuccessful)
logger.Infof(SuccessfulAssessmentRunTerminatedResult)
return v1alpha1.AnalysisPhaseSuccessful
}
return v1alpha1.AnalysisPhaseRunning
}
func assessMetricFailureInconclusiveOrError(metric v1alpha1.Metric, result v1alpha1.MetricResult) (v1alpha1.AnalysisPhase, string) {
var message string
var phase v1alpha1.AnalysisPhase
failureLimit := int32(0)
if metric.FailureLimit != nil {
failureLimit = int32(metric.FailureLimit.IntValue())
}
// If failureLimit is negative, that means it isn't applicable.
if failureLimit >= 0 && result.Failed > failureLimit {
phase = v1alpha1.AnalysisPhaseFailed
message = fmt.Sprintf("failed (%d) > failureLimit (%d)", result.Failed, failureLimit)
}
inconclusiveLimit := int32(0)
if metric.InconclusiveLimit != nil {
inconclusiveLimit = int32(metric.InconclusiveLimit.IntValue())
}
if result.Inconclusive > inconclusiveLimit {
phase = v1alpha1.AnalysisPhaseInconclusive
message = fmt.Sprintf("inconclusive (%d) > inconclusiveLimit (%d)", result.Inconclusive, inconclusiveLimit)
}
consecutiveErrorLimit := defaults.GetConsecutiveErrorLimitOrDefault(&metric)
if result.ConsecutiveError > consecutiveErrorLimit {
phase = v1alpha1.AnalysisPhaseError
message = fmt.Sprintf("consecutiveErrors (%d) > consecutiveErrorLimit (%d)", result.ConsecutiveError, consecutiveErrorLimit)
}
return phase, message
}
// calculateNextReconcileTime calculates the next time that this AnalysisRun should be reconciled,
// based on the earliest time of all metrics intervals, counts, and their finishedAt timestamps
func calculateNextReconcileTime(run *v1alpha1.AnalysisRun) *time.Time {
func calculateNextReconcileTime(run *v1alpha1.AnalysisRun, metrics []v1alpha1.Metric) *time.Time {
var reconcileTime *time.Time
for _, metric := range run.Spec.Metrics {
for _, metric := range metrics {
if analysisutil.MetricCompleted(run, metric.Name) {
// NOTE: this also covers the case where metric.Count is reached
continue
@ -389,23 +699,22 @@ func calculateNextReconcileTime(run *v1alpha1.AnalysisRun) *time.Time {
lastMeasurement := analysisutil.LastMeasurement(run, metric.Name)
if lastMeasurement == nil {
if metric.InitialDelay != "" {
startTime := metav1.Now()
startTime := timeutil.MetaNow()
if run.Status.StartedAt != nil {
startTime = *run.Status.StartedAt
}
duration, err := metric.InitialDelay.Duration()
parsedInterval, err := parseMetricInterval(*logCtx, metric.InitialDelay)
if err != nil {
logCtx.Warnf("failed to parse interval: %v", err)
continue
}
endInitialDelay := startTime.Add(duration)
endInitialDelay := startTime.Add(parsedInterval)
if reconcileTime == nil || reconcileTime.After(endInitialDelay) {
reconcileTime = &endInitialDelay
}
continue
}
// no measurement was started . we should never get here
logCtx.Warnf("metric never started. not factored into enqueue time")
logCtx.Warnf("Metric never started. Not factored into enqueue time.")
continue
}
if lastMeasurement.FinishedAt == nil {
@ -419,26 +728,25 @@ func calculateNextReconcileTime(run *v1alpha1.AnalysisRun) *time.Time {
}
metricResult := analysisutil.GetResult(run, metric.Name)
effectiveCount := metric.EffectiveCount()
if effectiveCount != nil && metricResult.Count >= *effectiveCount {
if effectiveCount != nil && metricResult.Count >= int32(effectiveCount.IntValue()) {
// we have reached desired count
continue
}
var interval time.Duration
if metric.Interval != "" {
metricInterval, err := metric.Interval.Duration()
if lastMeasurement.Phase == v1alpha1.AnalysisPhaseError {
interval = DefaultErrorRetryInterval
} else if metric.Interval != "" {
parsedInterval, err := parseMetricInterval(*logCtx, metric.Interval)
if err != nil {
logCtx.Warnf("failed to parse interval: %v", err)
continue
}
interval = metricInterval
} else if lastMeasurement.Phase == v1alpha1.AnalysisPhaseError {
interval = DefaultErrorRetryInterval
interval = parsedInterval
} else {
// if we get here, an interval was not set (meaning reoccurrence was not desired), and
// there was no error (meaning we don't need to retry). no need to requeue this metric.
// NOTE: we shouldn't ever get here since it means we are not doing proper bookkeeping
// of count.
logCtx.Warnf("skipping requeue. no interval or error (count: %d, effectiveCount: %d)", metricResult.Count, metric.EffectiveCount())
logCtx.Warnf("Skipping requeue. No interval or error (count: %d, effectiveCount: %s)", metricResult.Count, metric.EffectiveCount().String())
continue
}
// Take the earliest time of all metrics
@ -451,32 +759,42 @@ func calculateNextReconcileTime(run *v1alpha1.AnalysisRun) *time.Time {
}
// garbageCollectMeasurements trims the measurement history to the specified limit and GCs old measurements
func (c *AnalysisController) garbageCollectMeasurements(run *v1alpha1.AnalysisRun, limit int) error {
func (c *Controller) garbageCollectMeasurements(run *v1alpha1.AnalysisRun, measurementRetentionMetricNamesMap map[string]*v1alpha1.MeasurementRetention, limit int) error {
var errors []error
resolvedArgsMetric, err := getResolvedMetricsWithoutSecrets(run.Spec.Metrics, run.Spec.Args)
if err != nil {
return fmt.Errorf("failed to resolve args on metrics during garbage collection: %w", err)
}
metricsByName := make(map[string]v1alpha1.Metric)
for _, metric := range run.Spec.Metrics {
for _, metric := range resolvedArgsMetric {
metricsByName[metric.Name] = metric
}
for i, result := range run.Status.MetricResults {
length := len(result.Measurements)
if length > limit {
measurementRetentionObject := measurementRetentionMetricNamesMap[result.Name]
measurementsLimit := limit
if measurementRetentionObject != nil && measurementRetentionObject.Limit > 0 {
measurementsLimit = int(measurementRetentionObject.Limit)
}
if length > measurementsLimit {
metric, ok := metricsByName[result.Name]
if !ok {
continue
}
log := logutil.WithAnalysisRun(run).WithField("metric", metric.Name)
provider, err := c.newProvider(*log, metric)
logger := logutil.WithAnalysisRun(run).WithField("metric", metric.Name)
provider, err := c.newProvider(*logger, run.Namespace, metric)
if err != nil {
errors = append(errors, err)
continue
}
err = provider.GarbageCollect(run, metric, limit)
err = provider.GarbageCollect(run, metric, measurementsLimit)
if err != nil {
return err
}
result.Measurements = result.Measurements[length-limit : length]
result.Measurements = result.Measurements[length-measurementsLimit : length]
}
run.Status.MetricResults[i] = result
}
@ -485,3 +803,40 @@ func (c *AnalysisController) garbageCollectMeasurements(run *v1alpha1.AnalysisRu
}
return nil
}
func (c *Controller) maybeGarbageCollectAnalysisRun(run *v1alpha1.AnalysisRun, logger *log.Entry) error {
ctx := context.TODO()
if run.DeletionTimestamp != nil || !isAnalysisRunTtlExceeded(run) {
return nil
}
logger.Infof("Trying to cleanup TTL exceeded analysis run")
err := c.argoProjClientset.ArgoprojV1alpha1().AnalysisRuns(run.Namespace).Delete(ctx, run.Name, metav1.DeleteOptions{})
if err != nil && !k8serrors.IsNotFound(err) {
return err
}
return nil
}
func isAnalysisRunTtlExceeded(run *v1alpha1.AnalysisRun) bool {
// TTL only counted for completed runs with TTL strategy.
if !run.Status.Phase.Completed() || run.Spec.TTLStrategy == nil {
return false
}
// Cannot determine TTL if run has no completion time.
if run.Status.CompletedAt == nil {
return false
}
secondsCompleted := timeutil.MetaNow().Sub(run.Status.CompletedAt.Time).Seconds()
var ttlSeconds *int32
if run.Status.Phase == v1alpha1.AnalysisPhaseSuccessful && run.Spec.TTLStrategy.SecondsAfterSuccess != nil {
ttlSeconds = run.Spec.TTLStrategy.SecondsAfterSuccess
} else if run.Status.Phase == v1alpha1.AnalysisPhaseFailed && run.Spec.TTLStrategy.SecondsAfterFailure != nil {
ttlSeconds = run.Spec.TTLStrategy.SecondsAfterFailure
} else if run.Spec.TTLStrategy.SecondsAfterCompletion != nil {
ttlSeconds = run.Spec.TTLStrategy.SecondsAfterCompletion
}
if ttlSeconds == nil {
return false
}
return int32(secondsCompleted) > *ttlSeconds
}

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,19 @@
package analysis
import (
"context"
"sync"
"time"
"github.com/aws/smithy-go/ptr"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"github.com/argoproj/argo-rollouts/metric"
jobProvider "github.com/argoproj/argo-rollouts/metricproviders/job"
unstructuredutil "github.com/argoproj/argo-rollouts/utils/unstructured"
log "github.com/sirupsen/logrus"
batchv1 "k8s.io/api/batch/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
@ -10,7 +21,6 @@ import (
batchinformers "k8s.io/client-go/informers/batch/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/util/workqueue"
"github.com/argoproj/argo-rollouts/controller/metrics"
@ -22,10 +32,16 @@ import (
listers "github.com/argoproj/argo-rollouts/pkg/client/listers/rollouts/v1alpha1"
controllerutil "github.com/argoproj/argo-rollouts/utils/controller"
logutil "github.com/argoproj/argo-rollouts/utils/log"
"github.com/argoproj/argo-rollouts/utils/record"
timeutil "github.com/argoproj/argo-rollouts/utils/time"
)
// AnalysisController is the controller implementation for Analysis resources
type AnalysisController struct {
var (
analysisRunGVK = v1alpha1.SchemeGroupVersion.WithKind("AnalysisRun")
)
// Controller is the controller implementation for Analysis resources
type Controller struct {
// kubeclientset is a standard kubernetes clientset
kubeclientset kubernetes.Interface
// analysisclientset is a clientset for our own API group
@ -39,11 +55,11 @@ type AnalysisController struct {
metricsServer *metrics.MetricsServer
newProvider func(logCtx log.Entry, metric v1alpha1.Metric) (metricproviders.Provider, error)
newProvider func(logCtx log.Entry, namespace string, metric v1alpha1.Metric) (metric.Provider, error)
// used for unit testing
enqueueAnalysis func(obj interface{})
enqueueAnalysisAfter func(obj interface{}, duration time.Duration)
enqueueAnalysis func(obj any)
enqueueAnalysisAfter func(obj any, duration time.Duration)
// workqueue is a rate limited work queue. This is used to queue work to be
// processed instead of performing it as soon as a change happens. This
@ -57,82 +73,98 @@ type AnalysisController struct {
resyncPeriod time.Duration
}
// NewAnalysisController returns a new analysis controller
func NewAnalysisController(
kubeclientset kubernetes.Interface,
argoProjClientset clientset.Interface,
analysisRunInformer informers.AnalysisRunInformer,
jobInformer batchinformers.JobInformer,
resyncPeriod time.Duration,
analysisRunWorkQueue workqueue.RateLimitingInterface,
metricsServer *metrics.MetricsServer,
recorder record.EventRecorder) *AnalysisController {
// ControllerConfig describes the data required to instantiate a new analysis controller
type ControllerConfig struct {
KubeClientSet kubernetes.Interface
ArgoProjClientset clientset.Interface
AnalysisRunInformer informers.AnalysisRunInformer
JobInformer batchinformers.JobInformer
ResyncPeriod time.Duration
AnalysisRunWorkQueue workqueue.RateLimitingInterface
MetricsServer *metrics.MetricsServer
Recorder record.EventRecorder
}
controller := &AnalysisController{
kubeclientset: kubeclientset,
argoProjClientset: argoProjClientset,
analysisRunLister: analysisRunInformer.Lister(),
metricsServer: metricsServer,
analysisRunWorkQueue: analysisRunWorkQueue,
jobInformer: jobInformer,
analysisRunSynced: analysisRunInformer.Informer().HasSynced,
recorder: recorder,
resyncPeriod: resyncPeriod,
// NewController returns a new analysis controller
func NewController(cfg ControllerConfig) *Controller {
controller := &Controller{
kubeclientset: cfg.KubeClientSet,
argoProjClientset: cfg.ArgoProjClientset,
analysisRunLister: cfg.AnalysisRunInformer.Lister(),
metricsServer: cfg.MetricsServer,
analysisRunWorkQueue: cfg.AnalysisRunWorkQueue,
jobInformer: cfg.JobInformer,
analysisRunSynced: cfg.AnalysisRunInformer.Informer().HasSynced,
recorder: cfg.Recorder,
resyncPeriod: cfg.ResyncPeriod,
}
controller.enqueueAnalysis = func(obj interface{}) {
controllerutil.Enqueue(obj, analysisRunWorkQueue)
controller.enqueueAnalysis = func(obj any) {
controllerutil.Enqueue(obj, cfg.AnalysisRunWorkQueue)
}
controller.enqueueAnalysisAfter = func(obj interface{}, duration time.Duration) {
controllerutil.EnqueueAfter(obj, duration, analysisRunWorkQueue)
controller.enqueueAnalysisAfter = func(obj any, duration time.Duration) {
controllerutil.EnqueueAfter(obj, duration, cfg.AnalysisRunWorkQueue)
}
providerFactory := metricproviders.ProviderFactory{
KubeClient: controller.kubeclientset,
JobLister: jobInformer.Lister(),
JobLister: cfg.JobInformer.Lister(),
}
controller.newProvider = providerFactory.NewProvider
jobInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: func(obj interface{}) {
controller.enqueueIfCompleted(obj)
cfg.JobInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: func(obj any) {
controller.enqueueJobIfCompleted(obj)
},
UpdateFunc: func(oldObj, newObj interface{}) {
controller.enqueueIfCompleted(newObj)
UpdateFunc: func(oldObj, newObj any) {
controller.enqueueJobIfCompleted(newObj)
},
DeleteFunc: func(obj interface{}) {
controller.enqueueIfCompleted(obj)
DeleteFunc: func(obj any) {
controller.enqueueJobIfCompleted(obj)
},
})
log.Info("Setting up analysis event handlers")
// Set up an event handler for when analysis resources change
analysisRunInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
cfg.AnalysisRunInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: controller.enqueueAnalysis,
UpdateFunc: func(old, new interface{}) {
UpdateFunc: func(old, new any) {
controller.enqueueAnalysis(new)
},
DeleteFunc: controller.enqueueAnalysis,
DeleteFunc: func(obj any) {
controller.enqueueAnalysis(obj)
if ar := unstructuredutil.ObjectToAnalysisRun(obj); ar != nil {
logCtx := logutil.WithAnalysisRun(ar)
logCtx.Info("analysis run deleted")
controller.metricsServer.Remove(ar.Namespace, ar.Name, logutil.AnalysisRunKey)
}
},
})
return controller
}
func (c *AnalysisController) Run(threadiness int, stopCh <-chan struct{}) error {
func (c *Controller) Run(ctx context.Context, threadiness int) error {
log.Info("Starting analysis workers")
wg := sync.WaitGroup{}
for i := 0; i < threadiness; i++ {
wg.Add(1)
go wait.Until(func() {
controllerutil.RunWorker(c.analysisRunWorkQueue, logutil.AnalysisRunKey, c.syncHandler, c.metricsServer)
}, time.Second, stopCh)
controllerutil.RunWorker(ctx, c.analysisRunWorkQueue, logutil.AnalysisRunKey, c.syncHandler, c.metricsServer)
log.Debug("Analysis worker has stopped")
wg.Done()
}, time.Second, ctx.Done())
}
log.Infof("Started %d analysis workers", threadiness)
<-stopCh
log.Info("Shutting down analysis workers")
<-ctx.Done()
wg.Wait()
log.Info("All analysis workers have stopped")
return nil
}
func (c *AnalysisController) syncHandler(key string) error {
startTime := time.Now()
func (c *Controller) syncHandler(ctx context.Context, key string) error {
startTime := timeutil.Now()
namespace, name, err := cache.SplitMetaNamespaceKey(key)
if err != nil {
return err
@ -149,8 +181,7 @@ func (c *AnalysisController) syncHandler(key string) error {
defer func() {
duration := time.Since(startTime)
//TODO(jessesuen) Add metrics for analysis
//arc.metricsServer.IncReconcile(r, duration)
c.metricsServer.IncAnalysisRunReconcile(run, duration)
logCtx := logutil.WithAnalysisRun(run).WithField("time_ms", duration.Seconds()*1e3)
logCtx.Info("Reconciliation completed")
}()
@ -164,7 +195,35 @@ func (c *AnalysisController) syncHandler(key string) error {
return c.persistAnalysisRunStatus(run, newRun.Status)
}
func (c *AnalysisController) enqueueIfCompleted(obj interface{}) {
func (c *Controller) jobParentReference(obj any) (*v1.OwnerReference, string) {
job, ok := obj.(*batchv1.Job)
if !ok {
return nil, ""
}
// if it has owner reference, return it as is
ownerRef := v1.GetControllerOf(job)
// else if it's missing owner reference check if analysis run uid is set and
// if it is there use labels/annotations to create owner reference
if ownerRef == nil && job.Labels[jobProvider.AnalysisRunUIDLabelKey] != "" {
ownerRef = &v1.OwnerReference{
APIVersion: analysisRunGVK.GroupVersion().String(),
Kind: analysisRunGVK.Kind,
Name: job.Annotations[jobProvider.AnalysisRunNameAnnotationKey],
UID: types.UID(job.Labels[jobProvider.AnalysisRunUIDLabelKey]),
BlockOwnerDeletion: ptr.Bool(true),
Controller: ptr.Bool(true),
}
}
ns := job.GetNamespace()
if job.Annotations != nil {
if job.Annotations[jobProvider.AnalysisRunNamespaceAnnotationKey] != "" {
ns = job.Annotations[jobProvider.AnalysisRunNamespaceAnnotationKey]
}
}
return ownerRef, ns
}
func (c *Controller) enqueueJobIfCompleted(obj any) {
job, ok := obj.(*batchv1.Job)
if !ok {
return
@ -172,7 +231,7 @@ func (c *AnalysisController) enqueueIfCompleted(obj interface{}) {
for _, condition := range job.Status.Conditions {
switch condition.Type {
case batchv1.JobFailed, batchv1.JobComplete:
controllerutil.EnqueueParentObject(job, register.AnalysisRunKind, c.enqueueAnalysis)
controllerutil.EnqueueParentObject(job, register.AnalysisRunKind, c.enqueueAnalysis, c.jobParentReference)
return
}
}

View File

@ -1,12 +1,20 @@
package analysis
import (
"context"
"encoding/json"
"fmt"
"reflect"
"sync"
"testing"
"time"
"github.com/bouk/monkey"
"github.com/argoproj/argo-rollouts/metric"
timeutil "github.com/argoproj/argo-rollouts/utils/time"
"github.com/argoproj/argo-rollouts/utils/queue"
log "github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"k8s.io/apimachinery/pkg/api/equality"
@ -18,15 +26,14 @@ import (
k8sfake "k8s.io/client-go/kubernetes/fake"
core "k8s.io/client-go/testing"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/util/workqueue"
"github.com/argoproj/argo-rollouts/controller/metrics"
"github.com/argoproj/argo-rollouts/metricproviders"
"github.com/argoproj/argo-rollouts/metricproviders/mocks"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
"github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned/fake"
informers "github.com/argoproj/argo-rollouts/pkg/client/informers/externalversions"
"github.com/argoproj/argo-rollouts/utils/record"
)
var (
@ -44,11 +51,18 @@ type fixture struct {
// Actions expected to happen on the client.
actions []core.Action
// Objects from here preloaded into NewSimpleFake.
objects []runtime.Object
enqueuedObjects map[string]int
unfreezeTime func()
objects []runtime.Object
// Acquire 'enqueuedObjectMutex' before accessing enqueuedObjects
enqueuedObjects map[string]int
enqueuedObjectMutex sync.Mutex
unfreezeTime func() error
// fake provider
provider *mocks.Provider
// Reference to frozen now
now time.Time
}
func newFixture(t *testing.T) *fixture {
@ -56,11 +70,14 @@ func newFixture(t *testing.T) *fixture {
f.t = t
f.objects = []runtime.Object{}
f.enqueuedObjects = make(map[string]int)
now := time.Now()
patch := monkey.Patch(time.Now, func() time.Time {
return now
f.now = time.Now()
timeutil.SetNowTimeFunc(func() time.Time {
return f.now
})
f.unfreezeTime = patch.Unpatch
f.unfreezeTime = func() error {
timeutil.SetNowTimeFunc(time.Now)
return nil
}
return f
}
@ -79,31 +96,41 @@ func getKey(analysisRun *v1alpha1.AnalysisRun, t *testing.T) string {
type resyncFunc func() time.Duration
func (f *fixture) newController(resync resyncFunc) (*AnalysisController, informers.SharedInformerFactory, kubeinformers.SharedInformerFactory) {
func (f *fixture) newController(resync resyncFunc) (*Controller, informers.SharedInformerFactory, kubeinformers.SharedInformerFactory) {
f.client = fake.NewSimpleClientset(f.objects...)
f.kubeclient = k8sfake.NewSimpleClientset()
i := informers.NewSharedInformerFactory(f.client, resync())
k8sI := kubeinformers.NewSharedInformerFactory(f.kubeclient, resync())
jobI := kubeinformers.NewSharedInformerFactory(f.kubeclient, resync())
analysisRunWorkqueue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "AnalysisRuns")
analysisRunWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "AnalysisRuns")
c := NewAnalysisController(
f.kubeclient,
f.client,
i.Argoproj().V1alpha1().AnalysisRuns(),
jobI.Batch().V1().Jobs(),
resync(),
analysisRunWorkqueue,
metrics.NewMetricsServer("localhost:8080", i.Argoproj().V1alpha1().Rollouts().Lister()),
&record.FakeRecorder{})
metricsServer := metrics.NewMetricsServer(metrics.ServerConfig{
Addr: "localhost:8080",
K8SRequestProvider: &metrics.K8sRequestsCountProvider{},
})
c.enqueueAnalysis = func(obj interface{}) {
c := NewController(ControllerConfig{
KubeClientSet: f.kubeclient,
ArgoProjClientset: f.client,
AnalysisRunInformer: i.Argoproj().V1alpha1().AnalysisRuns(),
JobInformer: k8sI.Batch().V1().Jobs(),
ResyncPeriod: resync(),
AnalysisRunWorkQueue: analysisRunWorkqueue,
MetricsServer: metricsServer,
Recorder: record.NewFakeEventRecorder(),
})
c.enqueueAnalysis = func(obj any) {
var key string
var err error
if key, err = cache.MetaNamespaceKeyFunc(obj); err != nil {
panic(err)
}
f.enqueuedObjectMutex.Lock()
defer f.enqueuedObjectMutex.Unlock()
count, ok := f.enqueuedObjects[key]
if !ok {
count = 0
@ -112,11 +139,11 @@ func (f *fixture) newController(resync resyncFunc) (*AnalysisController, informe
f.enqueuedObjects[key] = count
c.analysisRunWorkQueue.Add(obj)
}
c.enqueueAnalysisAfter = func(obj interface{}, duration time.Duration) {
c.enqueueAnalysisAfter = func(obj any, duration time.Duration) {
c.enqueueAnalysis(obj)
}
f.provider = &mocks.Provider{}
c.newProvider = func(logCtx log.Entry, metric v1alpha1.Metric) (metricproviders.Provider, error) {
c.newProvider = func(logCtx log.Entry, namespace string, metric v1alpha1.Metric) (metric.Provider, error) {
return f.provider, nil
}
@ -132,12 +159,12 @@ func (f *fixture) run(analysisRunName string) {
f.runController(analysisRunName, true, false, c, i, k8sI)
}
func (f *fixture) runExpectError(analysisRunName string, startInformers bool) {
func (f *fixture) runExpectError(analysisRunName string, startInformers bool) { //nolint:unused
c, i, k8sI := f.newController(noResyncPeriodFunc)
f.runController(analysisRunName, startInformers, true, c, i, k8sI)
}
func (f *fixture) runController(analysisRunName string, startInformers bool, expectError bool, c *AnalysisController, i informers.SharedInformerFactory, k8sI kubeinformers.SharedInformerFactory) *AnalysisController {
func (f *fixture) runController(analysisRunName string, startInformers bool, expectError bool, c *Controller, i informers.SharedInformerFactory, k8sI kubeinformers.SharedInformerFactory) *Controller {
if startInformers {
stopCh := make(chan struct{})
defer close(stopCh)
@ -147,7 +174,7 @@ func (f *fixture) runController(analysisRunName string, startInformers bool, exp
assert.True(f.t, cache.WaitForCacheSync(stopCh, c.analysisRunSynced))
}
err := c.syncHandler(analysisRunName)
err := c.syncHandler(context.Background(), analysisRunName)
if !expectError && err != nil {
f.t.Errorf("error syncing experiment: %v", err)
} else if expectError && err == nil {
@ -167,7 +194,7 @@ func (f *fixture) runController(analysisRunName string, startInformers bool, exp
}
if len(f.actions) > len(actions) {
f.t.Errorf("%d additional expected actions:%+v", len(f.actions)-len(actions), f.actions[len(actions):])
f.t.Errorf("%d expected actions did not occur:%+v", len(f.actions)-len(actions), f.actions[len(actions):])
}
// k8sActions := filterInformerActions(f.kubeclient.Actions())
@ -182,7 +209,7 @@ func (f *fixture) runController(analysisRunName string, startInformers bool, exp
// }
// if len(f.kubeactions) > len(k8sActions) {
// f.t.Errorf("%d additional expected actions:%+v", len(f.kubeactions)-len(k8sActions), f.kubeactions[len(k8sActions):])
// f.t.Errorf("%d expected actions did not occur:%+v", len(f.kubeactions)-len(k8sActions), f.kubeactions[len(k8sActions):])
// }
return c
}
@ -226,14 +253,14 @@ func filterInformerActions(actions []core.Action) []core.Action {
return ret
}
func (f *fixture) expectUpdateAnalysisRunAction(analysisRun *v1alpha1.AnalysisRun) int {
func (f *fixture) expectUpdateAnalysisRunAction(analysisRun *v1alpha1.AnalysisRun) int { //nolint:unused
action := core.NewUpdateAction(schema.GroupVersionResource{Resource: "analysisrun"}, analysisRun.Namespace, analysisRun)
len := len(f.actions)
f.actions = append(f.actions, action)
return len
}
func (f *fixture) getUpdatedAnalysisRun(index int) *v1alpha1.AnalysisRun {
func (f *fixture) getUpdatedAnalysisRun(index int) *v1alpha1.AnalysisRun { //nolint:unused
action := filterInformerActions(f.client.Actions())[index]
updateAction, ok := action.(core.UpdateAction)
if !ok {
@ -247,7 +274,7 @@ func (f *fixture) getUpdatedAnalysisRun(index int) *v1alpha1.AnalysisRun {
return ar
}
func (f *fixture) expectPatchAnalysisRunAction(analysisRun *v1alpha1.AnalysisRun) int {
func (f *fixture) expectPatchAnalysisRunAction(analysisRun *v1alpha1.AnalysisRun) int { //nolint:unused
analysisRunSchema := schema.GroupVersionResource{
Resource: "analysisruns",
Version: "v1alpha1",
@ -257,7 +284,7 @@ func (f *fixture) expectPatchAnalysisRunAction(analysisRun *v1alpha1.AnalysisRun
return len
}
func (f *fixture) getPatchedAnalysisRun(index int) v1alpha1.AnalysisRun {
func (f *fixture) getPatchedAnalysisRun(index int) v1alpha1.AnalysisRun { //nolint:unused
action := filterInformerActions(f.client.Actions())[index]
patchAction, ok := action.(core.PatchAction)
if !ok {
@ -271,6 +298,22 @@ func (f *fixture) getPatchedAnalysisRun(index int) v1alpha1.AnalysisRun {
return ar
}
func (f *fixture) expectDeleteAnalysisRunAction(analysisRun *v1alpha1.AnalysisRun) int { //nolint:unused
action := core.NewDeleteAction(schema.GroupVersionResource{Resource: "analysisrun"}, analysisRun.Namespace, analysisRun.Name)
len := len(f.actions)
f.actions = append(f.actions, action)
return len
}
func (f *fixture) getDeletedAnalysisRunNamespaceAndName(index int) string { //nolint:unused
action := filterInformerActions(f.client.Actions())[index]
deleteAction, ok := action.(core.DeleteAction)
if !ok {
f.t.Fatalf("Expected Patch action, not %s", action.GetVerb())
}
return fmt.Sprintf("%s/%s", deleteAction.GetNamespace(), deleteAction.GetName())
}
func TestNoReconcileForNotFoundAnalysisRun(t *testing.T) {
f := newFixture(t)
defer f.Close()
@ -302,3 +345,57 @@ func TestNoReconcileForAnalysisRunWithDeletionTimestamp(t *testing.T) {
f.run(getKey(ar, t))
}
func TestFailedToCreateProviderError(t *testing.T) {
f := newFixture(t)
defer f.Close()
ar := &v1alpha1.AnalysisRun{
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
Namespace: metav1.NamespaceDefault,
},
Spec: v1alpha1.AnalysisRunSpec{
Metrics: []v1alpha1.Metric{
{
Name: "metric1",
Provider: v1alpha1.MetricProvider{
Plugin: map[string]json.RawMessage{"mypluginns/myplugin": []byte(`{"invalid": "json"}`)},
},
},
},
},
}
f.analysisRunLister = append(f.analysisRunLister, ar)
f.objects = append(f.objects, ar)
c, i, k8sI := f.newController(noResyncPeriodFunc)
c.newProvider = func(logCtx log.Entry, namespace string, metric v1alpha1.Metric) (metric.Provider, error) {
return nil, fmt.Errorf("failed to create provider")
}
pi := f.expectPatchAnalysisRunAction(ar)
f.runController(getKey(ar, t), true, false, c, i, k8sI)
updatedAr := f.getPatchedAnalysisRun(pi)
assert.Equal(t, v1alpha1.AnalysisPhaseError, updatedAr.Status.MetricResults[0].Measurements[0].Phase)
assert.Equal(t, "failed to create provider", updatedAr.Status.MetricResults[0].Measurements[0].Message)
}
func TestRun(t *testing.T) {
f := newFixture(t)
defer f.Close()
// make sure we can start and top the controller
c, _, _ := f.newController(noResyncPeriodFunc)
ctx, cancel := context.WithCancel(context.TODO())
defer cancel()
go func() {
time.Sleep(1000 * time.Millisecond)
c.analysisRunWorkQueue.ShutDownWithDrain()
cancel()
}()
c.Run(ctx, 1)
}

View File

@ -1,6 +1,9 @@
package analysis
import (
"context"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
patchtypes "k8s.io/apimachinery/pkg/types"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
@ -8,7 +11,8 @@ import (
logutil "github.com/argoproj/argo-rollouts/utils/log"
)
func (c *AnalysisController) persistAnalysisRunStatus(orig *v1alpha1.AnalysisRun, newStatus v1alpha1.AnalysisRunStatus) error {
func (c *Controller) persistAnalysisRunStatus(orig *v1alpha1.AnalysisRun, newStatus v1alpha1.AnalysisRunStatus) error {
ctx := context.TODO()
logCtx := logutil.WithAnalysisRun(orig)
patch, modified, err := diff.CreateTwoWayMergePatch(
&v1alpha1.AnalysisRun{
@ -26,7 +30,7 @@ func (c *AnalysisController) persistAnalysisRunStatus(orig *v1alpha1.AnalysisRun
return nil
}
logCtx.Debugf("AnalysisRun Patch: %s", patch)
_, err = c.argoProjClientset.ArgoprojV1alpha1().AnalysisRuns(orig.Namespace).Patch(orig.Name, patchtypes.MergePatchType, patch)
_, err = c.argoProjClientset.ArgoprojV1alpha1().AnalysisRuns(orig.Namespace).Patch(ctx, orig.Name, patchtypes.MergePatchType, patch, metav1.PatchOptions{})
if err != nil {
logCtx.Warningf("Error updating analysisRun: %v", err)
return err

View File

@ -3,10 +3,14 @@ package main
import (
"os"
log "github.com/sirupsen/logrus"
"k8s.io/cli-runtime/pkg/genericclioptions"
_ "k8s.io/client-go/plugin/pkg/client/auth/azure"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
"k8s.io/klog"
"k8s.io/klog/v2"
logutil "github.com/argoproj/argo-rollouts/utils/log"
"github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd"
"github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options"
@ -14,6 +18,7 @@ import (
func main() {
klog.InitFlags(nil)
logutil.SetKLogLogger(log.New())
streams := genericclioptions.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr}
o := options.NewArgoRolloutsOptions(streams)
root := cmd.NewCmdArgoRollouts(o)

View File

@ -1,143 +1,340 @@
package main
import (
"flag"
"fmt"
"net/http"
"os"
"strconv"
"strings"
"time"
"github.com/argoproj/pkg/kubeclientmetrics"
smiclientset "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/split/clientset/versioned"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/discovery"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/dynamic/dynamicinformer"
kubeinformers "k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes"
_ "k8s.io/client-go/plugin/pkg/client/auth/azure"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/klog"
"github.com/argoproj/argo-rollouts/metricproviders"
"github.com/argoproj/argo-rollouts/rollout"
"github.com/argoproj/argo-rollouts/utils/errors"
"github.com/argoproj/argo-rollouts/utils/record"
"github.com/argoproj/argo-rollouts/controller"
"github.com/argoproj/argo-rollouts/controller/metrics"
jobprovider "github.com/argoproj/argo-rollouts/metricproviders/job"
clientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned"
informers "github.com/argoproj/argo-rollouts/pkg/client/informers/externalversions"
"github.com/argoproj/argo-rollouts/pkg/signals"
controllerutil "github.com/argoproj/argo-rollouts/utils/controller"
"github.com/argoproj/argo-rollouts/utils/defaults"
ingressutil "github.com/argoproj/argo-rollouts/utils/ingress"
istioutil "github.com/argoproj/argo-rollouts/utils/istio"
logutil "github.com/argoproj/argo-rollouts/utils/log"
"github.com/argoproj/argo-rollouts/utils/tolerantinformer"
"github.com/argoproj/argo-rollouts/utils/version"
)
const (
// CLIName is the name of the CLI
cliName = "argo-rollouts"
cliName = "argo-rollouts"
jsonFormat = "json"
textFormat = "text"
defaultIstioVersion = "v1alpha3"
controllerAnalysis = "analysis"
)
var supportedControllers = map[string]bool{controllerAnalysis: true}
func newCommand() *cobra.Command {
var (
clientConfig clientcmd.ClientConfig
rolloutResyncPeriod int64
logLevel string
glogLevel int
metricsPort int
instanceID string
rolloutThreads int
experimentThreads int
analysisThreads int
serviceThreads int
istioVersion string
clientConfig clientcmd.ClientConfig
rolloutResyncPeriod int64
logLevel string
logFormat string
klogLevel int
metricsPort int
healthzPort int
instanceID string
qps float32
burst int
rolloutThreads int
experimentThreads int
analysisThreads int
serviceThreads int
ingressThreads int
ephemeralMetadataThreads int
targetGroupBindingVersion string
albTagKeyResourceID string
istioVersion string
trafficSplitVersion string
traefikAPIGroup string
traefikVersion string
ambassadorVersion string
ingressVersion string
appmeshCRDVersion string
albIngressClasses []string
nginxIngressClasses []string
awsVerifyTargetGroup bool
namespaced bool
printVersion bool
selfServiceNotificationEnabled bool
controllersEnabled []string
pprofAddress string
)
electOpts := controller.NewLeaderElectionOptions()
var command = cobra.Command{
Use: cliName,
Short: "argo-rollouts is a controller to operate on rollout CRD",
RunE: func(c *cobra.Command, args []string) error {
setLogLevel(logLevel)
formatter := &log.TextFormatter{
FullTimestamp: true,
if printVersion {
fmt.Println(version.GetVersion())
return nil
}
log.SetFormatter(formatter)
setGLogLevel(glogLevel)
logger := log.New()
setLogLevel(logLevel)
if logFormat != "" {
log.SetFormatter(createFormatter(logFormat))
logger.SetFormatter(createFormatter(logFormat))
}
logutil.SetKLogLogger(logger)
logutil.SetKLogLevel(klogLevel)
// set up signals so we handle the first shutdown signal gracefully
stopCh := signals.SetupSignalHandler()
ctx := signals.SetupSignalHandlerContext()
defaults.SetVerifyTargetGroup(awsVerifyTargetGroup)
defaults.SetTargetGroupBindingAPIVersion(targetGroupBindingVersion)
defaults.SetalbTagKeyResourceID(albTagKeyResourceID)
defaults.SetIstioAPIVersion(istioVersion)
defaults.SetAmbassadorAPIVersion(ambassadorVersion)
defaults.SetSMIAPIVersion(trafficSplitVersion)
defaults.SetAppMeshCRDVersion(appmeshCRDVersion)
defaults.SetTraefikAPIGroup(traefikAPIGroup)
defaults.SetTraefikVersion(traefikVersion)
// cfg, err := clientcmd.BuildConfigFromFlags(masterURL, kubeconfig)
config, err := clientConfig.ClientConfig()
checkError(err)
errors.CheckError(err)
config.QPS = qps
config.Burst = burst
namespace := metav1.NamespaceAll
configNS, modified, err := clientConfig.Namespace()
checkError(err)
if modified {
configNS, _, err := clientConfig.Namespace()
errors.CheckError(err)
if namespaced {
namespace = configNS
log.Infof("Using namespace %s", namespace)
}
log.WithFields(log.Fields{
"version": version.GetVersion(),
"namespace": namespace,
"instanceID": instanceID,
"metricsPort": metricsPort,
"healthzPort": healthzPort,
}).Info("Argo Rollouts controller starting")
k8sRequestProvider := &metrics.K8sRequestsCountProvider{}
kubeclientmetrics.AddMetricsTransportWrapper(config, k8sRequestProvider.IncKubernetesRequest)
kubeClient, err := kubernetes.NewForConfig(config)
checkError(err)
rolloutClient, err := clientset.NewForConfig(config)
checkError(err)
errors.CheckError(err)
argoprojClient, err := clientset.NewForConfig(config)
errors.CheckError(err)
dynamicClient, err := dynamic.NewForConfig(config)
checkError(err)
errors.CheckError(err)
discoveryClient, err := discovery.NewDiscoveryClientForConfig(config)
errors.CheckError(err)
smiClient, err := smiclientset.NewForConfig(config)
errors.CheckError(err)
resyncDuration := time.Duration(rolloutResyncPeriod) * time.Second
kubeInformerFactory := kubeinformers.NewSharedInformerFactoryWithOptions(
kubeClient,
resyncDuration,
kubeinformers.WithNamespace(namespace))
instanceIDSelector := controllerutil.InstanceIDRequirement(instanceID)
argoRolloutsInformerFactory := informers.NewSharedInformerFactoryWithOptions(
rolloutClient,
resyncDuration,
informers.WithNamespace(namespace),
informers.WithTweakListOptions(func(options *metav1.ListOptions) {
options.LabelSelector = instanceIDSelector.String()
}))
instanceIDTweakListFunc := func(options *metav1.ListOptions) {
options.LabelSelector = instanceIDSelector.String()
}
jobKubeClient, _, err := metricproviders.GetAnalysisJobClientset(kubeClient)
errors.CheckError(err)
jobNs := metricproviders.GetAnalysisJobNamespace()
if jobNs == "" {
// if not set explicitly use the configured ns
jobNs = namespace
}
jobInformerFactory := kubeinformers.NewSharedInformerFactoryWithOptions(
kubeClient,
jobKubeClient,
resyncDuration,
kubeinformers.WithNamespace(namespace),
kubeinformers.WithNamespace(jobNs),
kubeinformers.WithTweakListOptions(func(options *metav1.ListOptions) {
options.LabelSelector = jobprovider.AnalysisRunUIDLabelKey
}))
cm := controller.NewManager(
namespace,
// We need three dynamic informer factories:
// 1. The first is the dynamic informer for rollouts, analysisruns, analysistemplates, experiments
dynamicInformerFactory := dynamicinformer.NewFilteredDynamicSharedInformerFactory(dynamicClient, resyncDuration, namespace, instanceIDTweakListFunc)
// 2. The second is for the clusteranalysistemplate. Notice we must instantiate this with
// metav1.NamespaceAll. The reason why we need a cluster specific dynamic informer factory
// is to support the mode when the rollout controller is started and only operating against
// a single namespace (i.e. rollouts-controller --namespace foo).
clusterDynamicInformerFactory := dynamicinformer.NewFilteredDynamicSharedInformerFactory(dynamicClient, resyncDuration, metav1.NamespaceAll, instanceIDTweakListFunc)
// 3. We finally need an istio dynamic informer factory which does not use a tweakListFunc.
_, istioPrimaryDynamicClient := istioutil.GetPrimaryClusterDynamicClient(kubeClient, namespace)
if istioPrimaryDynamicClient == nil {
istioPrimaryDynamicClient = dynamicClient
}
istioDynamicInformerFactory := dynamicinformer.NewFilteredDynamicSharedInformerFactory(istioPrimaryDynamicClient, resyncDuration, namespace, nil)
var notificationConfigNamespace string
if selfServiceNotificationEnabled {
notificationConfigNamespace = metav1.NamespaceAll
} else {
notificationConfigNamespace = defaults.Namespace()
}
notificationSecretInformerFactory := kubeinformers.NewSharedInformerFactoryWithOptions(
kubeClient,
rolloutClient,
dynamicClient,
kubeInformerFactory.Apps().V1().ReplicaSets(),
kubeInformerFactory.Core().V1().Services(),
jobInformerFactory.Batch().V1().Jobs(),
argoRolloutsInformerFactory.Argoproj().V1alpha1().Rollouts(),
argoRolloutsInformerFactory.Argoproj().V1alpha1().Experiments(),
argoRolloutsInformerFactory.Argoproj().V1alpha1().AnalysisRuns(),
argoRolloutsInformerFactory.Argoproj().V1alpha1().AnalysisTemplates(),
resyncDuration,
instanceID,
metricsPort,
defaultIstioVersion)
kubeinformers.WithNamespace(notificationConfigNamespace),
kubeinformers.WithTweakListOptions(func(options *metav1.ListOptions) {
options.Kind = "Secret"
options.FieldSelector = fmt.Sprintf("metadata.name=%s", record.NotificationSecret)
}),
)
// notice that there is no need to run Start methods in a separate goroutine. (i.e. go kubeInformerFactory.Start(stopCh)
// Start method is non-blocking and runs all registered informers in a dedicated goroutine.
kubeInformerFactory.Start(stopCh)
argoRolloutsInformerFactory.Start(stopCh)
jobInformerFactory.Start(stopCh)
notificationConfigMapInformerFactory := kubeinformers.NewSharedInformerFactoryWithOptions(
kubeClient,
resyncDuration,
kubeinformers.WithNamespace(notificationConfigNamespace),
kubeinformers.WithTweakListOptions(func(options *metav1.ListOptions) {
options.Kind = "ConfigMap"
options.FieldSelector = fmt.Sprintf("metadata.name=%s", record.NotificationConfigMap)
}),
)
if err = cm.Run(rolloutThreads, serviceThreads, experimentThreads, analysisThreads, stopCh); err != nil {
mode, err := ingressutil.DetermineIngressMode(ingressVersion, kubeClient.DiscoveryClient)
errors.CheckError(err)
ingressWrapper, err := ingressutil.NewIngressWrapper(mode, kubeClient, kubeInformerFactory)
errors.CheckError(err)
if pprofAddress != "" {
mux := controller.NewPProfServer()
go func() { log.Println(http.ListenAndServe(pprofAddress, mux)) }()
}
var cm *controller.Manager
enabledControllers, err := getEnabledControllers(controllersEnabled)
errors.CheckError(err)
// currently only supports running analysis controller independently
if enabledControllers[controllerAnalysis] {
log.Info("Running only analysis controller")
cm = controller.NewAnalysisManager(
namespace,
kubeClient,
argoprojClient,
jobInformerFactory.Batch().V1().Jobs(),
tolerantinformer.NewTolerantAnalysisRunInformer(dynamicInformerFactory),
tolerantinformer.NewTolerantAnalysisTemplateInformer(dynamicInformerFactory),
tolerantinformer.NewTolerantClusterAnalysisTemplateInformer(clusterDynamicInformerFactory),
resyncDuration,
metricsPort,
healthzPort,
k8sRequestProvider,
dynamicInformerFactory,
clusterDynamicInformerFactory,
namespaced,
kubeInformerFactory,
jobInformerFactory)
} else {
cm = controller.NewManager(
namespace,
kubeClient,
argoprojClient,
dynamicClient,
smiClient,
discoveryClient,
kubeInformerFactory.Apps().V1().ReplicaSets(),
kubeInformerFactory.Core().V1().Services(),
ingressWrapper,
jobInformerFactory.Batch().V1().Jobs(),
tolerantinformer.NewTolerantRolloutInformer(dynamicInformerFactory),
tolerantinformer.NewTolerantExperimentInformer(dynamicInformerFactory),
tolerantinformer.NewTolerantAnalysisRunInformer(dynamicInformerFactory),
tolerantinformer.NewTolerantAnalysisTemplateInformer(dynamicInformerFactory),
tolerantinformer.NewTolerantClusterAnalysisTemplateInformer(clusterDynamicInformerFactory),
istioPrimaryDynamicClient,
istioDynamicInformerFactory.ForResource(istioutil.GetIstioVirtualServiceGVR()).Informer(),
istioDynamicInformerFactory.ForResource(istioutil.GetIstioDestinationRuleGVR()).Informer(),
notificationConfigMapInformerFactory,
notificationSecretInformerFactory,
resyncDuration,
instanceID,
metricsPort,
healthzPort,
k8sRequestProvider,
nginxIngressClasses,
albIngressClasses,
dynamicInformerFactory,
clusterDynamicInformerFactory,
istioDynamicInformerFactory,
namespaced,
kubeInformerFactory,
jobInformerFactory,
ephemeralMetadataThreads)
}
if err = cm.Run(ctx, rolloutThreads, serviceThreads, ingressThreads, experimentThreads, analysisThreads, electOpts); err != nil {
log.Fatalf("Error running controller: %s", err.Error())
}
return nil
},
}
defaultALBIngressClass := []string{"alb"}
defaultNGINXIngressClass := []string{"nginx"}
clientConfig = addKubectlFlagsToCmd(&command)
command.Flags().Int64Var(&rolloutResyncPeriod, "rollout-resync", controller.DefaultRolloutResyncPeriod, "Time period in seconds for rollouts resync.")
command.Flags().BoolVar(&namespaced, "namespaced", false, "runs controller in namespaced mode (does not require cluster RBAC)")
command.Flags().StringVar(&logLevel, "loglevel", "info", "Set the logging level. One of: debug|info|warn|error")
command.Flags().IntVar(&glogLevel, "gloglevel", 0, "Set the glog logging level")
command.Flags().IntVar(&metricsPort, "metricsport", controller.DefaultMetricsPort, "Set the port the metrics endpoint should be exposed over")
command.Flags().StringVar(&logFormat, "logformat", "", "Set the logging format. One of: text|json")
command.Flags().IntVar(&klogLevel, "kloglevel", 0, "Set the klog logging level")
command.Flags().IntVar(&metricsPort, "metricsPort", controller.DefaultMetricsPort, "Set the port the metrics endpoint should be exposed over")
command.Flags().IntVar(&healthzPort, "healthzPort", controller.DefaultHealthzPort, "Set the port the healthz endpoint should be exposed over")
command.Flags().StringVar(&instanceID, "instance-id", "", "Indicates which argo rollout objects the controller should operate on")
command.Flags().Float32Var(&qps, "qps", defaults.DefaultQPS, "Maximum QPS (queries per second) to the K8s API server")
command.Flags().IntVar(&burst, "burst", defaults.DefaultBurst, "Maximum burst for throttle.")
command.Flags().IntVar(&rolloutThreads, "rollout-threads", controller.DefaultRolloutThreads, "Set the number of worker threads for the Rollout controller")
command.Flags().IntVar(&experimentThreads, "experiment-threads", controller.DefaultExperimentThreads, "Set the number of worker threads for the Experiment controller")
command.Flags().IntVar(&analysisThreads, "analysis-threads", controller.DefaultAnalysisThreads, "Set the number of worker threads for the Experiment controller")
command.Flags().IntVar(&serviceThreads, "service-threads", controller.DefaultServiceThreads, "Set the number of worker threads for the Service controller")
command.Flags().StringVar(&istioVersion, "istio-api-version", defaultIstioVersion, "Set the default Istio apiVersion that controller should look when manipulating VirtualServices.")
command.Flags().IntVar(&ingressThreads, "ingress-threads", controller.DefaultIngressThreads, "Set the number of worker threads for the Ingress controller")
command.Flags().IntVar(&ephemeralMetadataThreads, "ephemeral-metadata-threads", rollout.DefaultEphemeralMetadataThreads, "Set the number of worker threads for the Ephemeral Metadata reconciler")
command.Flags().StringVar(&targetGroupBindingVersion, "aws-target-group-binding-api-version", defaults.DefaultTargetGroupBindingAPIVersion, "Set the default AWS TargetGroupBinding apiVersion that controller uses when verifying target group weights.")
command.Flags().StringVar(&albTagKeyResourceID, "alb-tag-key-resource-id", defaults.DefaultAlbTagKeyResourceID, "Set the default AWS LoadBalancer tag key for resource ID that controller uses when verifying target group weights.")
command.Flags().StringVar(&istioVersion, "istio-api-version", defaults.DefaultIstioVersion, "Set the default Istio apiVersion that controller should look when manipulating VirtualServices.")
command.Flags().StringVar(&ambassadorVersion, "ambassador-api-version", defaults.DefaultAmbassadorVersion, "Set the Ambassador apiVersion that controller should look when manipulating Ambassador Mappings.")
command.Flags().StringVar(&trafficSplitVersion, "traffic-split-api-version", defaults.DefaultSMITrafficSplitVersion, "Set the default TrafficSplit apiVersion that controller uses when creating TrafficSplits.")
command.Flags().StringVar(&traefikAPIGroup, "traefik-api-group", defaults.DefaultTraefikAPIGroup, "Set the default Traefik apiGroup that controller uses.")
command.Flags().StringVar(&traefikVersion, "traefik-api-version", defaults.DefaultTraefikVersion, "Set the default Traefik apiVersion that controller uses.")
command.Flags().StringVar(&ingressVersion, "ingress-api-version", "", "Set the Ingress apiVersion that the controller should use.")
command.Flags().StringVar(&appmeshCRDVersion, "appmesh-crd-version", defaults.DefaultAppMeshCRDVersion, "Set the default AppMesh CRD Version that controller uses when manipulating resources.")
command.Flags().StringArrayVar(&albIngressClasses, "alb-ingress-classes", defaultALBIngressClass, "Defines all the ingress class annotations that the alb ingress controller operates on. Defaults to alb")
command.Flags().StringArrayVar(&nginxIngressClasses, "nginx-ingress-classes", defaultNGINXIngressClass, "Defines all the ingress class annotations that the nginx ingress controller operates on. Defaults to nginx")
command.Flags().BoolVar(&awsVerifyTargetGroup, "alb-verify-weight", false, "Verify ALB target group weights before progressing through steps (requires AWS privileges)")
command.Flags().MarkDeprecated("alb-verify-weight", "Use --aws-verify-target-group instead")
command.Flags().BoolVar(&awsVerifyTargetGroup, "aws-verify-target-group", false, "Verify ALB target group before progressing through steps (requires AWS privileges)")
command.Flags().BoolVar(&printVersion, "version", false, "Print version")
command.Flags().BoolVar(&electOpts.LeaderElect, "leader-elect", controller.DefaultLeaderElect, "If true, controller will perform leader election between instances to ensure no more than one instance of controller operates at a time")
command.Flags().DurationVar(&electOpts.LeaderElectionLeaseDuration, "leader-election-lease-duration", controller.DefaultLeaderElectionLeaseDuration, "The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled.")
command.Flags().DurationVar(&electOpts.LeaderElectionRenewDeadline, "leader-election-renew-deadline", controller.DefaultLeaderElectionRenewDeadline, "The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled.")
command.Flags().DurationVar(&electOpts.LeaderElectionRetryPeriod, "leader-election-retry-period", controller.DefaultLeaderElectionRetryPeriod, "The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled.")
command.Flags().BoolVar(&selfServiceNotificationEnabled, "self-service-notification-enabled", false, "Allows rollouts controller to pull notification config from the namespace that the rollout resource is in. This is useful for self-service notification.")
command.Flags().StringSliceVar(&controllersEnabled, "controllers", nil, "Explicitly specify the list of controllers to run, currently only supports 'analysis', eg. --controller=analysis. Default: all controllers are enabled")
command.Flags().StringVar(&pprofAddress, "enable-pprof-address", "", "Enable pprof profiling on controller by providing a server address.")
return &command
}
@ -167,15 +364,33 @@ func setLogLevel(logLevel string) {
log.SetLevel(level)
}
// setGLogLevel set the glog level for the k8s go-client
func setGLogLevel(glogLevel int) {
klog.InitFlags(nil)
_ = flag.Set("logtostderr", "true")
_ = flag.Set("v", strconv.Itoa(glogLevel))
func createFormatter(logFormat string) log.Formatter {
var formatType log.Formatter
switch strings.ToLower(logFormat) {
case jsonFormat:
formatType = &log.JSONFormatter{}
case textFormat:
formatType = &log.TextFormatter{
FullTimestamp: true,
}
default:
log.Infof("Unknown format: %s. Using text logformat", logFormat)
formatType = &log.TextFormatter{
FullTimestamp: true,
}
}
return formatType
}
func checkError(err error) {
if err != nil {
log.Fatal(err)
func getEnabledControllers(controllersEnabled []string) (map[string]bool, error) {
enabledControllers := make(map[string]bool)
for _, controller := range controllersEnabled {
if supportedControllers[controller] {
enabledControllers[controller] = true
} else {
return nil, fmt.Errorf("unsupported controller: %s", controller)
}
}
return enabledControllers, nil
}

View File

@ -1,80 +1,250 @@
package controller
import (
"context"
"encoding/json"
"fmt"
"net/http"
"os"
"sync"
"time"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"github.com/argoproj/argo-rollouts/utils/plugin"
istioutil "github.com/argoproj/argo-rollouts/utils/istio"
goPlugin "github.com/hashicorp/go-plugin"
rolloutsConfig "github.com/argoproj/argo-rollouts/utils/config"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/dynamic/dynamicinformer"
kubeinformers "k8s.io/client-go/informers"
notificationapi "github.com/argoproj/notifications-engine/pkg/api"
notificationcontroller "github.com/argoproj/notifications-engine/pkg/controller"
"github.com/pkg/errors"
smiclientset "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/split/clientset/versioned"
log "github.com/sirupsen/logrus"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/client-go/discovery"
"k8s.io/client-go/dynamic"
appsinformers "k8s.io/client-go/informers/apps/v1"
batchinformers "k8s.io/client-go/informers/batch/v1"
coreinformers "k8s.io/client-go/informers/core/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/scheme"
typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/leaderelection"
"k8s.io/client-go/tools/leaderelection/resourcelock"
"k8s.io/client-go/util/workqueue"
"github.com/argoproj/argo-rollouts/analysis"
"github.com/argoproj/argo-rollouts/controller/metrics"
"github.com/argoproj/argo-rollouts/experiments"
"github.com/argoproj/argo-rollouts/ingress"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
clientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned"
rolloutscheme "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned/scheme"
informers "github.com/argoproj/argo-rollouts/pkg/client/informers/externalversions/rollouts/v1alpha1"
"github.com/argoproj/argo-rollouts/rollout"
"github.com/argoproj/argo-rollouts/service"
"github.com/argoproj/argo-rollouts/utils/defaults"
ingressutil "github.com/argoproj/argo-rollouts/utils/ingress"
"github.com/argoproj/argo-rollouts/utils/queue"
"github.com/argoproj/argo-rollouts/utils/record"
)
const controllerAgentName = "rollouts-controller"
const (
// DefaultRolloutResyncPeriod Default time in seconds for rollout resync period
// DefaultRolloutResyncPeriod is the default time in seconds for rollout resync period
DefaultRolloutResyncPeriod = 15 * 60
// DefaultMetricsPort Default port to expose the metrics endpoint
// DefaultHealthzPort is the default port to check controller's health
DefaultHealthzPort = 8080
// DefaultMetricsPort is the default port to expose the metrics endpoint
DefaultMetricsPort = 8090
// DefaultRolloutThreads Default number of rollout worker threads to start with the controller
// DefaultRolloutThreads is the default number of rollout worker threads to start with the controller
DefaultRolloutThreads = 10
// DefaultExperimentThreads Default number of experiment worker threads to start with the controller
// DefaultExperimentThreads is the default number of experiment worker threads to start with the controller
DefaultExperimentThreads = 10
// DefaultAnalysisThreads Default number of analysis worker threads to start with the controller
// DefaultAnalysisThreads is the default number of analysis worker threads to start with the controller
DefaultAnalysisThreads = 30
// DefaultServiceThreads Default number of service worker threads to start with the controller
// DefaultServiceThreads is the default number of service worker threads to start with the controller
DefaultServiceThreads = 10
// DefaultIngressThreads is the default number of ingress worker threads to start with the controller
DefaultIngressThreads = 10
// DefaultLeaderElect is the default true leader election should be enabled
DefaultLeaderElect = true
// DefaultLeaderElectionLeaseDuration is the default time in seconds that non-leader candidates will wait to force acquire leadership
DefaultLeaderElectionLeaseDuration = 15 * time.Second
// DefaultLeaderElectionRenewDeadline is the default time in seconds that the acting master will retry refreshing leadership before giving up
DefaultLeaderElectionRenewDeadline = 10 * time.Second
// DefaultLeaderElectionRetryPeriod is the default time in seconds that the leader election clients should wait between tries of actions
DefaultLeaderElectionRetryPeriod = 2 * time.Second
defaultLeaderElectionLeaseLockName = "argo-rollouts-controller-lock"
listenAddr = "0.0.0.0:%d"
)
type LeaderElectionOptions struct {
LeaderElect bool
LeaderElectionNamespace string
LeaderElectionLeaseDuration time.Duration
LeaderElectionRenewDeadline time.Duration
LeaderElectionRetryPeriod time.Duration
}
func NewLeaderElectionOptions() *LeaderElectionOptions {
return &LeaderElectionOptions{
LeaderElect: DefaultLeaderElect,
LeaderElectionNamespace: defaults.Namespace(),
LeaderElectionLeaseDuration: DefaultLeaderElectionLeaseDuration,
LeaderElectionRenewDeadline: DefaultLeaderElectionRenewDeadline,
LeaderElectionRetryPeriod: DefaultLeaderElectionRetryPeriod,
}
}
// Manager is the controller implementation for Argo-Rollout resources
type Manager struct {
metricsServer *metrics.MetricsServer
rolloutController *rollout.RolloutController
experimentController *experiments.ExperimentController
analysisController *analysis.AnalysisController
serviceController *service.ServiceController
wg *sync.WaitGroup
metricsServer *metrics.MetricsServer
healthzServer *http.Server
rolloutController *rollout.Controller
experimentController *experiments.Controller
analysisController *analysis.Controller
serviceController *service.Controller
ingressController *ingress.Controller
notificationsController notificationcontroller.NotificationController
rolloutSynced cache.InformerSynced
experimentSynced cache.InformerSynced
analysisRunSynced cache.InformerSynced
analysisTemplateSynced cache.InformerSynced
serviceSynced cache.InformerSynced
jobSynced cache.InformerSynced
replicasSetSynced cache.InformerSynced
rolloutSynced cache.InformerSynced
experimentSynced cache.InformerSynced
analysisRunSynced cache.InformerSynced
analysisTemplateSynced cache.InformerSynced
clusterAnalysisTemplateSynced cache.InformerSynced
serviceSynced cache.InformerSynced
ingressSynced cache.InformerSynced
jobSynced cache.InformerSynced
replicasSetSynced cache.InformerSynced
configMapSynced cache.InformerSynced
secretSynced cache.InformerSynced
rolloutWorkqueue workqueue.RateLimitingInterface
serviceWorkqueue workqueue.RateLimitingInterface
ingressWorkqueue workqueue.RateLimitingInterface
experimentWorkqueue workqueue.RateLimitingInterface
analysisRunWorkqueue workqueue.RateLimitingInterface
defaultIstioVersion string
refResolver rollout.TemplateRefResolver
kubeClientSet kubernetes.Interface
namespace string
dynamicInformerFactory dynamicinformer.DynamicSharedInformerFactory
clusterDynamicInformerFactory dynamicinformer.DynamicSharedInformerFactory
istioDynamicInformerFactory dynamicinformer.DynamicSharedInformerFactory
namespaced bool
kubeInformerFactory kubeinformers.SharedInformerFactory
notificationConfigMapInformerFactory kubeinformers.SharedInformerFactory
notificationSecretInformerFactory kubeinformers.SharedInformerFactory
jobInformerFactory kubeinformers.SharedInformerFactory
istioPrimaryDynamicClient dynamic.Interface
onlyAnalysisMode bool
}
func NewAnalysisManager(
namespace string,
kubeclientset kubernetes.Interface,
argoprojclientset clientset.Interface,
jobInformer batchinformers.JobInformer,
analysisRunInformer informers.AnalysisRunInformer,
analysisTemplateInformer informers.AnalysisTemplateInformer,
clusterAnalysisTemplateInformer informers.ClusterAnalysisTemplateInformer,
resyncPeriod time.Duration,
metricsPort int,
healthzPort int,
k8sRequestProvider *metrics.K8sRequestsCountProvider,
dynamicInformerFactory dynamicinformer.DynamicSharedInformerFactory,
clusterDynamicInformerFactory dynamicinformer.DynamicSharedInformerFactory,
namespaced bool,
kubeInformerFactory kubeinformers.SharedInformerFactory,
jobInformerFactory kubeinformers.SharedInformerFactory,
) *Manager {
runtime.Must(rolloutscheme.AddToScheme(scheme.Scheme))
log.Info("Creating event broadcaster")
metricsAddr := fmt.Sprintf(listenAddr, metricsPort)
metricsServer := metrics.NewMetricsServer(metrics.ServerConfig{
Addr: metricsAddr,
RolloutLister: nil,
AnalysisRunLister: analysisRunInformer.Lister(),
AnalysisTemplateLister: analysisTemplateInformer.Lister(),
ClusterAnalysisTemplateLister: clusterAnalysisTemplateInformer.Lister(),
ExperimentLister: nil,
K8SRequestProvider: k8sRequestProvider,
})
healthzServer := NewHealthzServer(fmt.Sprintf(listenAddr, healthzPort))
analysisRunWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "AnalysisRuns")
recorder := record.NewEventRecorder(kubeclientset, metrics.MetricRolloutEventsTotal, metrics.MetricNotificationFailedTotal, metrics.MetricNotificationSuccessTotal, metrics.MetricNotificationSend, nil)
analysisController := analysis.NewController(analysis.ControllerConfig{
KubeClientSet: kubeclientset,
ArgoProjClientset: argoprojclientset,
AnalysisRunInformer: analysisRunInformer,
JobInformer: jobInformer,
ResyncPeriod: resyncPeriod,
AnalysisRunWorkQueue: analysisRunWorkqueue,
MetricsServer: metricsServer,
Recorder: recorder,
})
cm := &Manager{
wg: &sync.WaitGroup{},
metricsServer: metricsServer,
healthzServer: healthzServer,
jobSynced: jobInformer.Informer().HasSynced,
analysisRunSynced: analysisRunInformer.Informer().HasSynced,
analysisTemplateSynced: analysisTemplateInformer.Informer().HasSynced,
clusterAnalysisTemplateSynced: clusterAnalysisTemplateInformer.Informer().HasSynced,
analysisRunWorkqueue: analysisRunWorkqueue,
analysisController: analysisController,
namespace: namespace,
kubeClientSet: kubeclientset,
dynamicInformerFactory: dynamicInformerFactory,
clusterDynamicInformerFactory: clusterDynamicInformerFactory,
namespaced: namespaced,
kubeInformerFactory: kubeInformerFactory,
jobInformerFactory: jobInformerFactory,
onlyAnalysisMode: true,
}
_, err := rolloutsConfig.InitializeConfig(kubeclientset, defaults.DefaultRolloutsConfigMapName)
if err != nil {
log.Fatalf("Failed to init config: %v", err)
}
err = plugin.DownloadPlugins(plugin.FileDownloaderImpl{}, kubeclientset)
if err != nil {
log.Fatalf("Failed to download plugins: %v", err)
}
return cm
}
// NewManager returns a new manager to manage all the controllers
@ -83,146 +253,356 @@ func NewManager(
kubeclientset kubernetes.Interface,
argoprojclientset clientset.Interface,
dynamicclientset dynamic.Interface,
smiclientset smiclientset.Interface,
discoveryClient discovery.DiscoveryInterface,
replicaSetInformer appsinformers.ReplicaSetInformer,
servicesInformer coreinformers.ServiceInformer,
ingressWrap *ingressutil.IngressWrap,
jobInformer batchinformers.JobInformer,
rolloutsInformer informers.RolloutInformer,
experimentsInformer informers.ExperimentInformer,
analysisRunInformer informers.AnalysisRunInformer,
analysisTemplateInformer informers.AnalysisTemplateInformer,
clusterAnalysisTemplateInformer informers.ClusterAnalysisTemplateInformer,
istioPrimaryDynamicClient dynamic.Interface,
istioVirtualServiceInformer cache.SharedIndexInformer,
istioDestinationRuleInformer cache.SharedIndexInformer,
notificationConfigMapInformerFactory kubeinformers.SharedInformerFactory,
notificationSecretInformerFactory kubeinformers.SharedInformerFactory,
resyncPeriod time.Duration,
instanceID string,
metricsPort int,
defaultIstioVersion string,
healthzPort int,
k8sRequestProvider *metrics.K8sRequestsCountProvider,
nginxIngressClasses []string,
albIngressClasses []string,
dynamicInformerFactory dynamicinformer.DynamicSharedInformerFactory,
clusterDynamicInformerFactory dynamicinformer.DynamicSharedInformerFactory,
istioDynamicInformerFactory dynamicinformer.DynamicSharedInformerFactory,
namespaced bool,
kubeInformerFactory kubeinformers.SharedInformerFactory,
jobInformerFactory kubeinformers.SharedInformerFactory,
ephemeralMetadataThreads int,
) *Manager {
utilruntime.Must(rolloutscheme.AddToScheme(scheme.Scheme))
runtime.Must(rolloutscheme.AddToScheme(scheme.Scheme))
log.Info("Creating event broadcaster")
// Create event broadcaster
// Add argo-rollouts custom resources to the default Kubernetes Scheme so Events can be
// logged for argo-rollouts types.
eventBroadcaster := record.NewBroadcaster()
eventBroadcaster.StartLogging(log.Infof)
eventBroadcaster.StartRecordingToSink(&typedcorev1.EventSinkImpl{Interface: kubeclientset.CoreV1().Events("")})
recorder := eventBroadcaster.NewRecorder(scheme.Scheme, corev1.EventSource{Component: controllerAgentName})
metricsAddr := fmt.Sprintf("0.0.0.0:%d", metricsPort)
metricsAddr := fmt.Sprintf(listenAddr, metricsPort)
metricsServer := metrics.NewMetricsServer(metrics.ServerConfig{
Addr: metricsAddr,
RolloutLister: rolloutsInformer.Lister(),
AnalysisRunLister: analysisRunInformer.Lister(),
AnalysisTemplateLister: analysisTemplateInformer.Lister(),
ClusterAnalysisTemplateLister: clusterAnalysisTemplateInformer.Lister(),
ExperimentLister: experimentsInformer.Lister(),
K8SRequestProvider: k8sRequestProvider,
})
rolloutWorkqueue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "Rollouts")
experimentWorkqueue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "Experiments")
analysisRunWorkqueue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "AnalysisRuns")
serviceWorkqueue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "Services")
healthzServer := NewHealthzServer(fmt.Sprintf(listenAddr, healthzPort))
rolloutWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "Rollouts")
experimentWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "Experiments")
analysisRunWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "AnalysisRuns")
serviceWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "Services")
ingressWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "Ingresses")
metricsServer := metrics.NewMetricsServer(metricsAddr, rolloutsInformer.Lister())
refResolver := rollout.NewInformerBasedWorkloadRefResolver(namespace, dynamicclientset, discoveryClient, argoprojclientset, rolloutsInformer.Informer())
apiFactory := notificationapi.NewFactory(record.NewAPIFactorySettings(analysisRunInformer), defaults.Namespace(), notificationSecretInformerFactory.Core().V1().Secrets().Informer(), notificationConfigMapInformerFactory.Core().V1().ConfigMaps().Informer())
recorder := record.NewEventRecorder(kubeclientset, metrics.MetricRolloutEventsTotal, metrics.MetricNotificationFailedTotal, metrics.MetricNotificationSuccessTotal, metrics.MetricNotificationSend, apiFactory)
notificationsController := notificationcontroller.NewControllerWithNamespaceSupport(dynamicclientset.Resource(v1alpha1.RolloutGVR), rolloutsInformer.Informer(), apiFactory,
notificationcontroller.WithToUnstructured(func(obj metav1.Object) (*unstructured.Unstructured, error) {
data, err := json.Marshal(obj)
if err != nil {
return nil, err
}
res := &unstructured.Unstructured{}
err = json.Unmarshal(data, res)
if err != nil {
return nil, err
}
return res, nil
}),
)
rolloutController := rollout.NewRolloutController(
namespace,
kubeclientset,
argoprojclientset,
dynamicclientset,
experimentsInformer,
analysisRunInformer,
analysisTemplateInformer,
replicaSetInformer,
servicesInformer,
rolloutsInformer,
resyncPeriod,
rolloutWorkqueue,
serviceWorkqueue,
metricsServer,
recorder,
defaultIstioVersion)
rolloutController := rollout.NewController(rollout.ControllerConfig{
Namespace: namespace,
KubeClientSet: kubeclientset,
ArgoProjClientset: argoprojclientset,
DynamicClientSet: dynamicclientset,
RefResolver: refResolver,
SmiClientSet: smiclientset,
ExperimentInformer: experimentsInformer,
AnalysisRunInformer: analysisRunInformer,
AnalysisTemplateInformer: analysisTemplateInformer,
ClusterAnalysisTemplateInformer: clusterAnalysisTemplateInformer,
IstioPrimaryDynamicClient: istioPrimaryDynamicClient,
IstioVirtualServiceInformer: istioVirtualServiceInformer,
IstioDestinationRuleInformer: istioDestinationRuleInformer,
ReplicaSetInformer: replicaSetInformer,
ServicesInformer: servicesInformer,
IngressWrapper: ingressWrap,
RolloutsInformer: rolloutsInformer,
ResyncPeriod: resyncPeriod,
RolloutWorkQueue: rolloutWorkqueue,
ServiceWorkQueue: serviceWorkqueue,
IngressWorkQueue: ingressWorkqueue,
MetricsServer: metricsServer,
Recorder: recorder,
EphemeralMetadataThreads: ephemeralMetadataThreads,
})
experimentController := experiments.NewExperimentController(
kubeclientset,
argoprojclientset,
replicaSetInformer,
experimentsInformer,
analysisRunInformer,
analysisTemplateInformer,
resyncPeriod,
rolloutWorkqueue,
experimentWorkqueue,
metricsServer,
recorder)
experimentController := experiments.NewController(experiments.ControllerConfig{
KubeClientSet: kubeclientset,
ArgoProjClientset: argoprojclientset,
ReplicaSetInformer: replicaSetInformer,
ExperimentsInformer: experimentsInformer,
AnalysisRunInformer: analysisRunInformer,
AnalysisTemplateInformer: analysisTemplateInformer,
ClusterAnalysisTemplateInformer: clusterAnalysisTemplateInformer,
ServiceInformer: servicesInformer,
ResyncPeriod: resyncPeriod,
RolloutWorkQueue: rolloutWorkqueue,
ExperimentWorkQueue: experimentWorkqueue,
MetricsServer: metricsServer,
Recorder: recorder,
})
analysisController := analysis.NewAnalysisController(
kubeclientset,
argoprojclientset,
analysisRunInformer,
jobInformer,
resyncPeriod,
analysisRunWorkqueue,
metricsServer,
recorder)
analysisController := analysis.NewController(analysis.ControllerConfig{
KubeClientSet: kubeclientset,
ArgoProjClientset: argoprojclientset,
AnalysisRunInformer: analysisRunInformer,
JobInformer: jobInformer,
ResyncPeriod: resyncPeriod,
AnalysisRunWorkQueue: analysisRunWorkqueue,
MetricsServer: metricsServer,
Recorder: recorder,
})
serviceController := service.NewServiceController(
kubeclientset,
servicesInformer,
rolloutsInformer,
resyncPeriod,
rolloutWorkqueue,
serviceWorkqueue,
metricsServer)
serviceController := service.NewController(service.ControllerConfig{
Kubeclientset: kubeclientset,
Argoprojclientset: argoprojclientset,
RolloutsInformer: rolloutsInformer,
ServicesInformer: servicesInformer,
RolloutWorkqueue: rolloutWorkqueue,
ServiceWorkqueue: serviceWorkqueue,
ResyncPeriod: resyncPeriod,
MetricsServer: metricsServer,
})
ingressController := ingress.NewController(ingress.ControllerConfig{
Client: kubeclientset,
IngressWrap: ingressWrap,
IngressWorkQueue: ingressWorkqueue,
RolloutsInformer: rolloutsInformer,
RolloutWorkQueue: rolloutWorkqueue,
MetricsServer: metricsServer,
ALBClasses: albIngressClasses,
NGINXClasses: nginxIngressClasses,
})
cm := &Manager{
metricsServer: metricsServer,
rolloutSynced: rolloutsInformer.Informer().HasSynced,
serviceSynced: servicesInformer.Informer().HasSynced,
jobSynced: jobInformer.Informer().HasSynced,
experimentSynced: experimentsInformer.Informer().HasSynced,
analysisRunSynced: analysisRunInformer.Informer().HasSynced,
analysisTemplateSynced: analysisTemplateInformer.Informer().HasSynced,
replicasSetSynced: replicaSetInformer.Informer().HasSynced,
rolloutWorkqueue: rolloutWorkqueue,
experimentWorkqueue: experimentWorkqueue,
analysisRunWorkqueue: analysisRunWorkqueue,
serviceWorkqueue: serviceWorkqueue,
rolloutController: rolloutController,
serviceController: serviceController,
experimentController: experimentController,
analysisController: analysisController,
defaultIstioVersion: defaultIstioVersion,
wg: &sync.WaitGroup{},
metricsServer: metricsServer,
healthzServer: healthzServer,
rolloutSynced: rolloutsInformer.Informer().HasSynced,
serviceSynced: servicesInformer.Informer().HasSynced,
ingressSynced: ingressWrap.HasSynced,
jobSynced: jobInformer.Informer().HasSynced,
experimentSynced: experimentsInformer.Informer().HasSynced,
analysisRunSynced: analysisRunInformer.Informer().HasSynced,
analysisTemplateSynced: analysisTemplateInformer.Informer().HasSynced,
clusterAnalysisTemplateSynced: clusterAnalysisTemplateInformer.Informer().HasSynced,
replicasSetSynced: replicaSetInformer.Informer().HasSynced,
configMapSynced: notificationConfigMapInformerFactory.Core().V1().ConfigMaps().Informer().HasSynced,
secretSynced: notificationSecretInformerFactory.Core().V1().Secrets().Informer().HasSynced,
rolloutWorkqueue: rolloutWorkqueue,
experimentWorkqueue: experimentWorkqueue,
analysisRunWorkqueue: analysisRunWorkqueue,
serviceWorkqueue: serviceWorkqueue,
ingressWorkqueue: ingressWorkqueue,
rolloutController: rolloutController,
serviceController: serviceController,
ingressController: ingressController,
experimentController: experimentController,
analysisController: analysisController,
notificationsController: notificationsController,
refResolver: refResolver,
namespace: namespace,
kubeClientSet: kubeclientset,
dynamicInformerFactory: dynamicInformerFactory,
clusterDynamicInformerFactory: clusterDynamicInformerFactory,
istioDynamicInformerFactory: istioDynamicInformerFactory,
namespaced: namespaced,
kubeInformerFactory: kubeInformerFactory,
jobInformerFactory: jobInformerFactory,
istioPrimaryDynamicClient: istioPrimaryDynamicClient,
notificationConfigMapInformerFactory: notificationConfigMapInformerFactory,
notificationSecretInformerFactory: notificationSecretInformerFactory,
}
_, err := rolloutsConfig.InitializeConfig(kubeclientset, defaults.DefaultRolloutsConfigMapName)
if err != nil {
log.Fatalf("Failed to init config: %v", err)
}
err = plugin.DownloadPlugins(plugin.FileDownloaderImpl{}, kubeclientset)
if err != nil {
log.Fatalf("Failed to download plugins: %v", err)
}
return cm
}
// Run will set up the event handlers for types we are interested in, as well
// as syncing informer caches and starting workers. It will block until stopCh
// Run will sync informer caches and start controllers. It will block until stopCh
// is closed, at which point it will shutdown the workqueue and wait for
// workers to finish processing their current work items.
func (c *Manager) Run(rolloutThreadiness, serviceThreadiness, experimentThreadiness, analysisThreadiness int, stopCh <-chan struct{}) error {
// controllers to finish processing their current work items.
func (c *Manager) Run(ctx context.Context, rolloutThreadiness, serviceThreadiness, ingressThreadiness, experimentThreadiness, analysisThreadiness int, electOpts *LeaderElectionOptions) error {
defer runtime.HandleCrash()
defer c.serviceWorkqueue.ShutDown()
defer c.rolloutWorkqueue.ShutDown()
defer c.experimentWorkqueue.ShutDown()
defer c.analysisRunWorkqueue.ShutDown()
// Wait for the caches to be synced before starting workers
log.Info("Waiting for controller's informer caches to sync")
if ok := cache.WaitForCacheSync(stopCh, c.serviceSynced, c.jobSynced, c.rolloutSynced, c.experimentSynced, c.analysisRunSynced, c.analysisTemplateSynced, c.replicasSetSynced); !ok {
return fmt.Errorf("failed to wait for caches to sync")
}
defer func() {
log.Infof("Exiting Main Run function")
}()
// Start the informer factories to begin populating the informer caches
log.Info("Starting Controllers")
go wait.Until(func() { c.rolloutController.Run(rolloutThreadiness, stopCh) }, time.Second, stopCh)
go wait.Until(func() { c.serviceController.Run(serviceThreadiness, stopCh) }, time.Second, stopCh)
go wait.Until(func() { c.experimentController.Run(experimentThreadiness, stopCh) }, time.Second, stopCh)
go wait.Until(func() { c.analysisController.Run(analysisThreadiness, stopCh) }, time.Second, stopCh)
log.Info("Started controller")
go func() {
log.Infof("Starting Healthz Server at %s", c.healthzServer.Addr)
err := c.healthzServer.ListenAndServe()
if err != nil {
err = errors.Wrap(err, "Healthz Server Error")
log.Error(err)
}
}()
go func() {
log.Infof("Starting Metric Server at %s", c.metricsServer.Addr)
err := c.metricsServer.ListenAndServe()
if err != nil {
err = errors.Wrap(err, "Starting Metric Server")
log.Fatal(err)
if err := c.metricsServer.ListenAndServe(); err != nil {
log.Error(errors.Wrap(err, "Metric Server Error"))
}
}()
<-stopCh
if !electOpts.LeaderElect {
log.Info("Leader election is turned off. Running in single-instance mode")
go c.startLeading(ctx, rolloutThreadiness, serviceThreadiness, ingressThreadiness, experimentThreadiness, analysisThreadiness)
<-ctx.Done()
} else {
// id used to distinguish between multiple controller manager instances
id, err := os.Hostname()
if err != nil {
log.Fatalf("Error getting hostname for leader election %v", err)
}
if electOpts.LeaderElectionNamespace == "" {
log.Fatalf("Error LeaderElectionNamespace is empty")
}
// add a uniquifier so that two processes on the same host don't accidentally both become active
id = id + "_" + string(uuid.NewUUID())
log.Infof("Leaderelection get id %s", id)
leaderelection.RunOrDie(ctx, leaderelection.LeaderElectionConfig{
Lock: &resourcelock.LeaseLock{
LeaseMeta: metav1.ObjectMeta{Name: defaultLeaderElectionLeaseLockName, Namespace: electOpts.LeaderElectionNamespace}, Client: c.kubeClientSet.CoordinationV1(),
LockConfig: resourcelock.ResourceLockConfig{Identity: id},
},
ReleaseOnCancel: false, // We can not set this to true because our context is sent on sig which means our code
// is still running prior to calling cancel. We would need to shut down and then call cancel in order to set this to true.
LeaseDuration: electOpts.LeaderElectionLeaseDuration,
RenewDeadline: electOpts.LeaderElectionRenewDeadline,
RetryPeriod: electOpts.LeaderElectionRetryPeriod,
Callbacks: leaderelection.LeaderCallbacks{
OnStartedLeading: func(ctx context.Context) {
log.Infof("I am the new leader: %s", id)
c.startLeading(ctx, rolloutThreadiness, serviceThreadiness, ingressThreadiness, experimentThreadiness, analysisThreadiness)
},
OnStoppedLeading: func() {
log.Infof("OnStoppedLeading called, shutting down: %s, context err: %s", id, ctx.Err())
},
OnNewLeader: func(identity string) {
log.Infof("New leader elected: %s", identity)
},
},
})
}
log.Info("Shutting down workers")
goPlugin.CleanupClients()
if !c.onlyAnalysisMode {
c.serviceWorkqueue.ShutDownWithDrain()
c.ingressWorkqueue.ShutDownWithDrain()
c.rolloutWorkqueue.ShutDownWithDrain()
c.experimentWorkqueue.ShutDownWithDrain()
}
c.analysisRunWorkqueue.ShutDownWithDrain()
ctxWithTimeout, cancel := context.WithTimeout(ctx, 5*time.Second) // give max of 10 seconds for http servers to shut down
defer cancel()
c.healthzServer.Shutdown(ctxWithTimeout)
c.metricsServer.Shutdown(ctxWithTimeout)
c.wg.Wait()
return nil
}
func (c *Manager) startLeading(ctx context.Context, rolloutThreadiness, serviceThreadiness, ingressThreadiness, experimentThreadiness, analysisThreadiness int) {
defer runtime.HandleCrash()
// Start the informer factories to begin populating the informer caches
log.Info("Starting Controllers")
// notice that there is no need to run Start methods in a separate goroutine. (i.e. go kubeInformerFactory.Start(stopCh)
// Start method is non-blocking and runs all registered informers in a dedicated goroutine.
c.dynamicInformerFactory.Start(ctx.Done())
if !c.namespaced {
c.clusterDynamicInformerFactory.Start(ctx.Done())
}
c.kubeInformerFactory.Start(ctx.Done())
c.jobInformerFactory.Start(ctx.Done())
if c.onlyAnalysisMode {
log.Info("Waiting for controller's informer caches to sync")
if ok := cache.WaitForCacheSync(ctx.Done(), c.analysisRunSynced, c.analysisTemplateSynced, c.jobSynced); !ok {
log.Fatalf("failed to wait for caches to sync, exiting")
}
// only wait for cluster scoped informers to sync if we are running in cluster-wide mode
if c.namespace == metav1.NamespaceAll {
if ok := cache.WaitForCacheSync(ctx.Done(), c.clusterAnalysisTemplateSynced); !ok {
log.Fatalf("failed to wait for cluster-scoped caches to sync, exiting")
}
}
go wait.Until(func() { c.wg.Add(1); c.analysisController.Run(ctx, analysisThreadiness); c.wg.Done() }, time.Second, ctx.Done())
} else {
c.notificationConfigMapInformerFactory.Start(ctx.Done())
c.notificationSecretInformerFactory.Start(ctx.Done())
if ok := cache.WaitForCacheSync(ctx.Done(), c.configMapSynced, c.secretSynced); !ok {
log.Fatalf("failed to wait for configmap/secret caches to sync, exiting")
}
// Check if Istio installed on cluster before starting dynamicInformerFactory
if istioutil.DoesIstioExist(c.istioPrimaryDynamicClient, c.namespace) {
c.istioDynamicInformerFactory.Start(ctx.Done())
}
// Wait for the caches to be synced before starting workers
log.Info("Waiting for controller's informer caches to sync")
if ok := cache.WaitForCacheSync(ctx.Done(), c.serviceSynced, c.ingressSynced, c.jobSynced, c.rolloutSynced, c.experimentSynced, c.analysisRunSynced, c.analysisTemplateSynced, c.replicasSetSynced, c.configMapSynced, c.secretSynced); !ok {
log.Fatalf("failed to wait for caches to sync, exiting")
}
// only wait for cluster scoped informers to sync if we are running in cluster-wide mode
if c.namespace == metav1.NamespaceAll {
if ok := cache.WaitForCacheSync(ctx.Done(), c.clusterAnalysisTemplateSynced); !ok {
log.Fatalf("failed to wait for cluster-scoped caches to sync, exiting")
}
}
go wait.Until(func() { c.wg.Add(1); c.rolloutController.Run(ctx, rolloutThreadiness); c.wg.Done() }, time.Second, ctx.Done())
go wait.Until(func() { c.wg.Add(1); c.serviceController.Run(ctx, serviceThreadiness); c.wg.Done() }, time.Second, ctx.Done())
go wait.Until(func() { c.wg.Add(1); c.ingressController.Run(ctx, ingressThreadiness); c.wg.Done() }, time.Second, ctx.Done())
go wait.Until(func() { c.wg.Add(1); c.experimentController.Run(ctx, experimentThreadiness); c.wg.Done() }, time.Second, ctx.Done())
go wait.Until(func() { c.wg.Add(1); c.analysisController.Run(ctx, analysisThreadiness); c.wg.Done() }, time.Second, ctx.Done())
go wait.Until(func() { c.wg.Add(1); c.notificationsController.Run(rolloutThreadiness, ctx.Done()); c.wg.Done() }, time.Second, ctx.Done())
}
log.Info("Started controller")
}

View File

@ -0,0 +1,337 @@
package controller
import (
"context"
"fmt"
"sync"
"testing"
"time"
notificationapi "github.com/argoproj/notifications-engine/pkg/api"
notificationcontroller "github.com/argoproj/notifications-engine/pkg/controller"
smifake "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/split/clientset/versioned/fake"
"github.com/stretchr/testify/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
discoveryfake "k8s.io/client-go/discovery/fake"
"k8s.io/client-go/dynamic/dynamicinformer"
dynamicfake "k8s.io/client-go/dynamic/fake"
kubeinformers "k8s.io/client-go/informers"
k8sfake "k8s.io/client-go/kubernetes/fake"
"k8s.io/client-go/util/workqueue"
"github.com/argoproj/argo-rollouts/analysis"
"github.com/argoproj/argo-rollouts/controller/metrics"
experimentsController "github.com/argoproj/argo-rollouts/experiments"
"github.com/argoproj/argo-rollouts/ingress"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
"github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned/fake"
informers "github.com/argoproj/argo-rollouts/pkg/client/informers/externalversions"
rolloutController "github.com/argoproj/argo-rollouts/rollout"
"github.com/argoproj/argo-rollouts/service"
ingressutil "github.com/argoproj/argo-rollouts/utils/ingress"
istioutil "github.com/argoproj/argo-rollouts/utils/istio"
"github.com/argoproj/argo-rollouts/utils/queue"
"github.com/argoproj/argo-rollouts/utils/record"
)
var (
alwaysReady = func() bool { return true }
noResyncPeriodFunc = func() time.Duration { return 0 }
)
type fixture struct {
t *testing.T
client *fake.Clientset
kubeclient *k8sfake.Clientset
}
func newFixture(t *testing.T) *fixture {
f := &fixture{}
f.t = t
f.client = fake.NewSimpleClientset()
f.kubeclient = k8sfake.NewSimpleClientset()
return f
}
func (f *fixture) newManager(t *testing.T) *Manager {
rolloutWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "Rollouts")
serviceWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "Services")
ingressWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "Ingresses")
experimentWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "Experiments")
analysisRunWorkqueue := workqueue.NewNamedRateLimitingQueue(queue.DefaultArgoRolloutsRateLimiter(), "AnalysisRuns")
cm := &Manager{
wg: &sync.WaitGroup{},
healthzServer: NewHealthzServer(fmt.Sprintf(listenAddr, 8080)),
rolloutSynced: alwaysReady,
experimentSynced: alwaysReady,
analysisRunSynced: alwaysReady,
analysisTemplateSynced: alwaysReady,
clusterAnalysisTemplateSynced: alwaysReady,
serviceSynced: alwaysReady,
ingressSynced: alwaysReady,
jobSynced: alwaysReady,
replicasSetSynced: alwaysReady,
configMapSynced: alwaysReady,
secretSynced: alwaysReady,
rolloutWorkqueue: rolloutWorkqueue,
serviceWorkqueue: serviceWorkqueue,
ingressWorkqueue: ingressWorkqueue,
experimentWorkqueue: experimentWorkqueue,
analysisRunWorkqueue: analysisRunWorkqueue,
kubeClientSet: f.kubeclient,
namespace: "",
namespaced: false,
notificationSecretInformerFactory: kubeinformers.NewSharedInformerFactoryWithOptions(f.kubeclient, noResyncPeriodFunc()),
notificationConfigMapInformerFactory: kubeinformers.NewSharedInformerFactoryWithOptions(f.kubeclient, noResyncPeriodFunc()),
}
metricsAddr := fmt.Sprintf(listenAddr, 8090)
cm.metricsServer = metrics.NewMetricsServer(metrics.ServerConfig{
Addr: metricsAddr,
K8SRequestProvider: &metrics.K8sRequestsCountProvider{},
})
i := informers.NewSharedInformerFactory(f.client, noResyncPeriodFunc())
k8sI := kubeinformers.NewSharedInformerFactory(f.kubeclient, noResyncPeriodFunc())
tgbGVR := schema.GroupVersionResource{
Group: "elbv2.k8s.aws",
Version: "v1beta1",
Resource: "targetgroupbindings",
}
vsvcGVR := istioutil.GetIstioVirtualServiceGVR()
destGVR := istioutil.GetIstioDestinationRuleGVR()
scheme := runtime.NewScheme()
listMapping := map[schema.GroupVersionResource]string{
tgbGVR: "TargetGroupBindingList",
vsvcGVR: vsvcGVR.Resource + "List",
destGVR: destGVR.Resource + "List",
}
dynamicClient := dynamicfake.NewSimpleDynamicClientWithCustomListKinds(scheme, listMapping)
dynamicInformerFactory := dynamicinformer.NewDynamicSharedInformerFactory(dynamicClient, 0)
istioVirtualServiceInformer := dynamicInformerFactory.ForResource(istioutil.GetIstioVirtualServiceGVR()).Informer()
istioDestinationRuleInformer := dynamicInformerFactory.ForResource(istioutil.GetIstioDestinationRuleGVR()).Informer()
cm.dynamicInformerFactory = dynamicInformerFactory
cm.clusterDynamicInformerFactory = dynamicInformerFactory
cm.kubeInformerFactory = k8sI
cm.jobInformerFactory = k8sI
cm.istioPrimaryDynamicClient = dynamicClient
cm.istioDynamicInformerFactory = dynamicInformerFactory
mode, err := ingressutil.DetermineIngressMode("extensions/v1beta1", &discoveryfake.FakeDiscovery{})
assert.NoError(t, err)
ingressWrapper, err := ingressutil.NewIngressWrapper(mode, f.kubeclient, k8sI)
assert.NoError(t, err)
cm.rolloutController = rolloutController.NewController(rolloutController.ControllerConfig{
Namespace: metav1.NamespaceAll,
KubeClientSet: f.kubeclient,
ArgoProjClientset: f.client,
DynamicClientSet: dynamicClient,
ExperimentInformer: i.Argoproj().V1alpha1().Experiments(),
AnalysisRunInformer: i.Argoproj().V1alpha1().AnalysisRuns(),
AnalysisTemplateInformer: i.Argoproj().V1alpha1().AnalysisTemplates(),
ClusterAnalysisTemplateInformer: i.Argoproj().V1alpha1().ClusterAnalysisTemplates(),
ReplicaSetInformer: k8sI.Apps().V1().ReplicaSets(),
ServicesInformer: k8sI.Core().V1().Services(),
IngressWrapper: ingressWrapper,
RolloutsInformer: i.Argoproj().V1alpha1().Rollouts(),
IstioPrimaryDynamicClient: dynamicClient,
IstioVirtualServiceInformer: istioVirtualServiceInformer,
IstioDestinationRuleInformer: istioDestinationRuleInformer,
ResyncPeriod: noResyncPeriodFunc(),
RolloutWorkQueue: rolloutWorkqueue,
ServiceWorkQueue: serviceWorkqueue,
IngressWorkQueue: ingressWorkqueue,
MetricsServer: cm.metricsServer,
Recorder: record.NewFakeEventRecorder(),
})
cm.analysisController = analysis.NewController(analysis.ControllerConfig{
KubeClientSet: f.kubeclient,
ArgoProjClientset: f.client,
AnalysisRunInformer: i.Argoproj().V1alpha1().AnalysisRuns(),
JobInformer: k8sI.Batch().V1().Jobs(),
ResyncPeriod: noResyncPeriodFunc(),
AnalysisRunWorkQueue: analysisRunWorkqueue,
MetricsServer: cm.metricsServer,
Recorder: record.NewFakeEventRecorder(),
})
cm.ingressController = ingress.NewController(ingress.ControllerConfig{
Client: f.kubeclient,
IngressWrap: ingressWrapper,
IngressWorkQueue: ingressWorkqueue,
RolloutsInformer: i.Argoproj().V1alpha1().Rollouts(),
RolloutWorkQueue: rolloutWorkqueue,
ALBClasses: []string{"alb"},
NGINXClasses: []string{"nginx"},
MetricsServer: cm.metricsServer,
})
cm.serviceController = service.NewController(service.ControllerConfig{
Kubeclientset: f.kubeclient,
Argoprojclientset: f.client,
RolloutsInformer: i.Argoproj().V1alpha1().Rollouts(),
ServicesInformer: k8sI.Core().V1().Services(),
RolloutWorkqueue: rolloutWorkqueue,
ServiceWorkqueue: serviceWorkqueue,
ResyncPeriod: 0,
MetricsServer: cm.metricsServer,
})
cm.experimentController = experimentsController.NewController(experimentsController.ControllerConfig{
KubeClientSet: f.kubeclient,
ArgoProjClientset: f.client,
ReplicaSetInformer: k8sI.Apps().V1().ReplicaSets(),
ExperimentsInformer: i.Argoproj().V1alpha1().Experiments(),
AnalysisRunInformer: i.Argoproj().V1alpha1().AnalysisRuns(),
AnalysisTemplateInformer: i.Argoproj().V1alpha1().AnalysisTemplates(),
ClusterAnalysisTemplateInformer: i.Argoproj().V1alpha1().ClusterAnalysisTemplates(),
ServiceInformer: k8sI.Core().V1().Services(),
ResyncPeriod: noResyncPeriodFunc(),
RolloutWorkQueue: rolloutWorkqueue,
ExperimentWorkQueue: experimentWorkqueue,
MetricsServer: cm.metricsServer,
Recorder: record.NewFakeEventRecorder(),
})
apiFactory := notificationapi.NewFactory(record.NewAPIFactorySettings(i.Argoproj().V1alpha1().AnalysisRuns()), "default", k8sI.Core().V1().Secrets().Informer(), k8sI.Core().V1().ConfigMaps().Informer())
// rolloutsInformer := rolloutinformers.NewRolloutInformer(f.client, "", time.Minute, cache.Indexers{})
cm.notificationsController = notificationcontroller.NewController(dynamicClient.Resource(v1alpha1.RolloutGVR), i.Argoproj().V1alpha1().Rollouts().Informer(), apiFactory,
notificationcontroller.WithToUnstructured(func(obj metav1.Object) (*unstructured.Unstructured, error) {
return nil, nil
}),
)
return cm
}
func TestNewManager(t *testing.T) {
f := newFixture(t)
i := informers.NewSharedInformerFactory(f.client, noResyncPeriodFunc())
k8sI := kubeinformers.NewSharedInformerFactory(f.kubeclient, noResyncPeriodFunc())
scheme := runtime.NewScheme()
listMapping := map[schema.GroupVersionResource]string{}
dynamicClient := dynamicfake.NewSimpleDynamicClientWithCustomListKinds(scheme, listMapping)
dynamicInformerFactory := dynamicinformer.NewDynamicSharedInformerFactory(dynamicClient, 0)
istioVirtualServiceInformer := dynamicInformerFactory.ForResource(istioutil.GetIstioVirtualServiceGVR()).Informer()
istioDestinationRuleInformer := dynamicInformerFactory.ForResource(istioutil.GetIstioDestinationRuleGVR()).Informer()
mode, err := ingressutil.DetermineIngressMode("extensions/v1beta1", &discoveryfake.FakeDiscovery{})
assert.NoError(t, err)
ingressWrapper, err := ingressutil.NewIngressWrapper(mode, f.kubeclient, k8sI)
assert.NoError(t, err)
k8sRequestProvider := &metrics.K8sRequestsCountProvider{}
cm := NewManager(
"default",
f.kubeclient,
f.client,
dynamicClient,
smifake.NewSimpleClientset(),
&discoveryfake.FakeDiscovery{},
k8sI.Apps().V1().ReplicaSets(),
k8sI.Core().V1().Services(),
ingressWrapper,
k8sI.Batch().V1().Jobs(),
i.Argoproj().V1alpha1().Rollouts(),
i.Argoproj().V1alpha1().Experiments(),
i.Argoproj().V1alpha1().AnalysisRuns(),
i.Argoproj().V1alpha1().AnalysisTemplates(),
i.Argoproj().V1alpha1().ClusterAnalysisTemplates(),
dynamicClient,
istioVirtualServiceInformer,
istioDestinationRuleInformer,
k8sI,
k8sI,
noResyncPeriodFunc(),
"test",
8090,
8080,
k8sRequestProvider,
nil,
nil,
dynamicInformerFactory,
nil,
nil,
false,
nil,
nil,
rolloutController.DefaultEphemeralMetadataThreads,
)
assert.NotNil(t, cm)
}
func TestNewAnalysisManager(t *testing.T) {
f := newFixture(t)
i := informers.NewSharedInformerFactory(f.client, noResyncPeriodFunc())
k8sI := kubeinformers.NewSharedInformerFactory(f.kubeclient, noResyncPeriodFunc())
scheme := runtime.NewScheme()
listMapping := map[schema.GroupVersionResource]string{}
dynamicClient := dynamicfake.NewSimpleDynamicClientWithCustomListKinds(scheme, listMapping)
dynamicInformerFactory := dynamicinformer.NewDynamicSharedInformerFactory(dynamicClient, 0)
k8sRequestProvider := &metrics.K8sRequestsCountProvider{}
cm := NewAnalysisManager(
"default",
f.kubeclient,
f.client,
k8sI.Batch().V1().Jobs(),
i.Argoproj().V1alpha1().AnalysisRuns(),
i.Argoproj().V1alpha1().AnalysisTemplates(),
i.Argoproj().V1alpha1().ClusterAnalysisTemplates(),
noResyncPeriodFunc(),
8090,
8080,
k8sRequestProvider,
nil,
dynamicInformerFactory,
false,
nil,
nil,
)
assert.NotNil(t, cm)
}
func TestPrimaryController(t *testing.T) {
f := newFixture(t)
cm := f.newManager(t)
electOpts := NewLeaderElectionOptions()
ctx, cancel := context.WithCancel(context.Background())
go func() {
time.Sleep(5 * time.Second)
cancel()
}()
cm.Run(ctx, 1, 1, 1, 1, 1, electOpts)
}
func TestPrimaryControllerSingleInstanceWithShutdown(t *testing.T) {
f := newFixture(t)
cm := f.newManager(t)
electOpts := NewLeaderElectionOptions()
electOpts.LeaderElect = false
ctx, cancel := context.WithCancel(context.Background())
go func() {
time.Sleep(5 * time.Second)
cancel()
}()
cm.Run(ctx, 1, 1, 1, 1, 1, electOpts)
}

31
controller/healthz.go Normal file
View File

@ -0,0 +1,31 @@
package controller
import (
"fmt"
"net/http"
)
const (
// HealthzPath is the endpoint to probe if controller is running
HealthzPath = "/healthz"
)
type healthzHandler struct{}
func (h *healthzHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
w.Header().Set("X-Content-Type-Options", "nosniff")
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "ok")
}
func NewHealthzServer(addr string) *http.Server {
mux := http.NewServeMux()
mux.Handle(HealthzPath, &healthzHandler{})
return &http.Server{
Addr: addr,
Handler: mux,
}
}

View File

@ -0,0 +1,37 @@
package controller
import (
"fmt"
"log"
"net/http"
"net/http/httptest"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestHealthzServer(t *testing.T) {
expectedResponse := `ok`
addr := fmt.Sprintf("0.0.0.0:%d", DefaultHealthzPort)
healthzServ := NewHealthzServer(addr)
t.Helper()
req, err := http.NewRequest("GET", "/healthz", nil)
assert.NoError(t, err)
rr := httptest.NewRecorder()
healthzServ.Handler.ServeHTTP(rr, req)
assert.Equal(t, rr.Code, http.StatusOK)
body := rr.Body.String()
log.Println(body)
for _, line := range strings.Split(expectedResponse, "\n") {
assert.Contains(t, body, line)
}
req, err = http.NewRequest("GET", "/extraneousPath", nil)
assert.NoError(t, err)
rr = httptest.NewRecorder()
healthzServ.Handler.ServeHTTP(rr, req)
assert.Equal(t, rr.Code, http.StatusNotFound)
}

View File

@ -0,0 +1,114 @@
package metrics
import (
"fmt"
"github.com/prometheus/client_golang/prometheus"
log "github.com/sirupsen/logrus"
"k8s.io/apimachinery/pkg/labels"
"github.com/argoproj/argo-rollouts/metricproviders"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
rolloutlister "github.com/argoproj/argo-rollouts/pkg/client/listers/rollouts/v1alpha1"
analysisutil "github.com/argoproj/argo-rollouts/utils/analysis"
)
type analysisRunCollector struct {
runs rolloutlister.AnalysisRunLister
templates rolloutlister.AnalysisTemplateLister
clusterTemplates rolloutlister.ClusterAnalysisTemplateLister
}
// NewAnalysisRunCollector returns a prometheus collector for AnalysisRun metrics
func NewAnalysisRunCollector(
analysisRunLister rolloutlister.AnalysisRunLister,
analysisTemplateLister rolloutlister.AnalysisTemplateLister,
clusterAnalysisTemplateLister rolloutlister.ClusterAnalysisTemplateLister,
) prometheus.Collector {
return &analysisRunCollector{
runs: analysisRunLister,
templates: analysisTemplateLister,
clusterTemplates: clusterAnalysisTemplateLister,
}
}
// Describe implements the prometheus.Collector interface
func (c *analysisRunCollector) Describe(ch chan<- *prometheus.Desc) {
ch <- MetricAnalysisRunInfo
}
// Collect implements the prometheus.Collector interface
func (c *analysisRunCollector) Collect(ch chan<- prometheus.Metric) {
analysisRuns, err := c.runs.List(labels.NewSelector())
if err != nil {
log.Warnf("Failed to collect analysis runs: %v", err)
} else {
for _, ar := range analysisRuns {
collectAnalysisRuns(ch, ar)
}
}
analysisTemplates, err := c.templates.List(labels.NewSelector())
if err != nil {
log.Warnf("Failed to collect analysis templates: %v", err)
} else {
for _, at := range analysisTemplates {
collectAnalysisTemplate(ch, at.Namespace, at.Name, &at.Spec)
}
}
clusterAnalysisTemplates, err := c.clusterTemplates.List(labels.NewSelector())
if err != nil {
log.Warnf("Failed to collect cluster analysis templates: %v", err)
} else {
for _, at := range clusterAnalysisTemplates {
collectAnalysisTemplate(ch, at.Namespace, at.Name, &at.Spec)
}
}
}
func collectAnalysisRuns(ch chan<- prometheus.Metric, ar *v1alpha1.AnalysisRun) {
addGauge := func(desc *prometheus.Desc, v float64, lv ...string) {
lv = append([]string{ar.Namespace, ar.Name}, lv...)
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, v, lv...)
}
calculatedPhase := ar.Status.Phase
addGauge(MetricAnalysisRunInfo, 1, string(calculatedPhase))
// DEPRECATED
addGauge(MetricAnalysisRunPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhasePending || calculatedPhase == ""), string(v1alpha1.AnalysisPhasePending))
addGauge(MetricAnalysisRunPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseError), string(v1alpha1.AnalysisPhaseError))
addGauge(MetricAnalysisRunPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseFailed), string(v1alpha1.AnalysisPhaseFailed))
addGauge(MetricAnalysisRunPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseSuccessful), string(v1alpha1.AnalysisPhaseSuccessful))
addGauge(MetricAnalysisRunPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseRunning), string(v1alpha1.AnalysisPhaseRunning))
addGauge(MetricAnalysisRunPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseInconclusive), string(v1alpha1.AnalysisPhaseInconclusive))
dryRunMetricsMap, _ := analysisutil.GetDryRunMetrics(ar.Spec.DryRun, ar.Spec.Metrics)
for _, metric := range ar.Spec.Metrics {
metricType := metricproviders.Type(metric)
metricResult := analysisutil.GetResult(ar, metric.Name)
addGauge(MetricAnalysisRunMetricType, 1, metric.Name, metricType)
calculatedPhase := v1alpha1.AnalysisPhase("")
if metricResult != nil {
calculatedPhase = metricResult.Phase
}
addGauge(MetricAnalysisRunMetricPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhasePending || calculatedPhase == ""), metric.Name, metricType, fmt.Sprint(dryRunMetricsMap[metric.Name]), string(v1alpha1.AnalysisPhasePending))
addGauge(MetricAnalysisRunMetricPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseError), metric.Name, metricType, fmt.Sprint(dryRunMetricsMap[metric.Name]), string(v1alpha1.AnalysisPhaseError))
addGauge(MetricAnalysisRunMetricPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseFailed), metric.Name, metricType, fmt.Sprint(dryRunMetricsMap[metric.Name]), string(v1alpha1.AnalysisPhaseFailed))
addGauge(MetricAnalysisRunMetricPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseSuccessful), metric.Name, metricType, fmt.Sprint(dryRunMetricsMap[metric.Name]), string(v1alpha1.AnalysisPhaseSuccessful))
addGauge(MetricAnalysisRunMetricPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseRunning), metric.Name, metricType, fmt.Sprint(dryRunMetricsMap[metric.Name]), string(v1alpha1.AnalysisPhaseRunning))
addGauge(MetricAnalysisRunMetricPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseInconclusive), metric.Name, metricType, fmt.Sprint(dryRunMetricsMap[metric.Name]), string(v1alpha1.AnalysisPhaseInconclusive))
}
}
func collectAnalysisTemplate(ch chan<- prometheus.Metric, namespace, name string, at *v1alpha1.AnalysisTemplateSpec) {
addGauge := func(desc *prometheus.Desc, v float64, lv ...string) {
lv = append([]string{namespace, name}, lv...)
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, v, lv...)
}
addGauge(MetricAnalysisTemplateInfo, 1)
for _, metric := range at.Metrics {
metricType := metricproviders.Type(metric)
addGauge(MetricAnalysisTemplateMetricInfo, 1, metricType, metric.Name)
}
}

View File

@ -0,0 +1,212 @@
package metrics
import (
"net/http"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/yaml"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
)
const (
fakeAnalysisRun = `
apiVersion: argoproj.io/v1alpha1
kind: AnalysisRun
metadata:
creationTimestamp: "2020-03-16T20:01:13Z"
name: http-benchmark-test-tr8rn
namespace: jesse-test
spec:
metrics:
- name: webmetric
provider:
web:
jsonPath: .
url: https://www.google.com
successCondition: "true"
status:
metricResults:
- consecutiveError: 5
error: 5
measurements:
- finishedAt: "2020-03-16T20:02:15Z"
message: 'Could not parse JSON body: invalid character ''<'' looking for beginning
of value'
phase: Error
startedAt: "2020-03-16T20:02:14Z"
name: webmetric
phase: Error
phase: Error
startedAt: "2020-03-16T20:02:15Z"
`
fakeAnalysisTemplate = `
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
creationTimestamp: "2020-03-16T20:01:13Z"
name: http-benchmark-test
namespace: jesse-test
spec:
metrics:
- name: web-metric-1
provider:
web:
jsonPath: .
url: https://www.google.com
successCondition: "true"
- name: web-metric-2
dryRun: true
provider:
web:
jsonPath: .
url: https://www.msn.com
successCondition: "false"
`
fakeClusterAnalysisTemplate = `
apiVersion: argoproj.io/v1alpha1
kind: ClusterAnalysisTemplate
metadata:
creationTimestamp: "2020-03-16T20:01:13Z"
name: http-benchmark-cluster-test
spec:
metrics:
- name: web-metric-1
provider:
web:
jsonPath: .
url: https://www.google.com
successCondition: "true"
- name: web-metric-2
dryRun: true
provider:
web:
jsonPath: .
url: https://www.msn.com
successCondition: "false"
`
)
const expectedAnalysisRunResponse = `# HELP analysis_run_info Information about analysis run.
# TYPE analysis_run_info gauge
analysis_run_info{name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Error"} 1
# HELP analysis_run_metric_phase Information on the duration of a specific metric in the Analysis Run
# TYPE analysis_run_metric_phase gauge
analysis_run_metric_phase{dry_run="false",metric="webmetric",name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Error",type="Web"} 1
analysis_run_metric_phase{dry_run="false",metric="webmetric",name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Failed",type="Web"} 0
analysis_run_metric_phase{dry_run="false",metric="webmetric",name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Inconclusive",type="Web"} 0
analysis_run_metric_phase{dry_run="false",metric="webmetric",name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Pending",type="Web"} 0
analysis_run_metric_phase{dry_run="false",metric="webmetric",name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Running",type="Web"} 0
analysis_run_metric_phase{dry_run="false",metric="webmetric",name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Successful",type="Web"} 0
# HELP analysis_run_metric_type Information on the type of a specific metric in the Analysis Runs
# TYPE analysis_run_metric_type gauge
analysis_run_metric_type{metric="webmetric",name="http-benchmark-test-tr8rn",namespace="jesse-test",type="Web"} 1
# HELP analysis_run_phase Information on the state of the Analysis Run (DEPRECATED - use analysis_run_info)
# TYPE analysis_run_phase gauge
analysis_run_phase{name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Error"} 1
analysis_run_phase{name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Failed"} 0
analysis_run_phase{name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Inconclusive"} 0
analysis_run_phase{name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Pending"} 0
analysis_run_phase{name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Running"} 0
analysis_run_phase{name="http-benchmark-test-tr8rn",namespace="jesse-test",phase="Successful"} 0
`
func newFakeAnalysisRun(fakeAnalysisRun string) *v1alpha1.AnalysisRun {
var ar v1alpha1.AnalysisRun
err := yaml.Unmarshal([]byte(fakeAnalysisRun), &ar)
if err != nil {
panic(err)
}
return &ar
}
func newFakeAnalysisTemplate(yamlStr string) *v1alpha1.AnalysisTemplate {
var at v1alpha1.AnalysisTemplate
err := yaml.Unmarshal([]byte(yamlStr), &at)
if err != nil {
panic(err)
}
return &at
}
func newFakeClusterAnalysisTemplate(yamlStr string) *v1alpha1.ClusterAnalysisTemplate {
var at v1alpha1.ClusterAnalysisTemplate
err := yaml.Unmarshal([]byte(yamlStr), &at)
if err != nil {
panic(err)
}
return &at
}
func TestCollectAnalysisRuns(t *testing.T) {
combinations := []testCombination{
{
resource: fakeAnalysisRun,
expectedResponse: expectedAnalysisRunResponse,
},
}
for _, combination := range combinations {
testAnalysisRunDescribe(t, combination.resource, combination.expectedResponse)
}
}
func testAnalysisRunDescribe(t *testing.T, fakeAnalysisRun string, expectedResponse string) {
registry := prometheus.NewRegistry()
serverCfg := newFakeServerConfig(newFakeAnalysisRun(fakeAnalysisRun))
registry.MustRegister(NewAnalysisRunCollector(serverCfg.AnalysisRunLister, serverCfg.AnalysisTemplateLister, serverCfg.ClusterAnalysisTemplateLister))
mux := http.NewServeMux()
mux.Handle(MetricsPath, promhttp.HandlerFor(registry, promhttp.HandlerOpts{}))
testHttpResponse(t, mux, expectedResponse, assert.Contains)
}
func TestIncAnalysisRunReconcile(t *testing.T) {
expectedResponse := `# HELP analysis_run_reconcile Analysis Run reconciliation performance.
# TYPE analysis_run_reconcile histogram
analysis_run_reconcile_bucket{name="ar-test",namespace="ar-namespace",le="0.01"} 1
analysis_run_reconcile_bucket{name="ar-test",namespace="ar-namespace",le="0.15"} 1
analysis_run_reconcile_bucket{name="ar-test",namespace="ar-namespace",le="0.25"} 1
analysis_run_reconcile_bucket{name="ar-test",namespace="ar-namespace",le="0.5"} 1
analysis_run_reconcile_bucket{name="ar-test",namespace="ar-namespace",le="1"} 1
analysis_run_reconcile_bucket{name="ar-test",namespace="ar-namespace",le="+Inf"} 1
analysis_run_reconcile_sum{name="ar-test",namespace="ar-namespace"} 0.001
analysis_run_reconcile_count{name="ar-test",namespace="ar-namespace"} 1`
metricsServ := NewMetricsServer(newFakeServerConfig())
ar := &v1alpha1.AnalysisRun{
ObjectMeta: metav1.ObjectMeta{
Name: "ar-test",
Namespace: "ar-namespace",
},
}
metricsServ.IncAnalysisRunReconcile(ar, time.Millisecond)
testHttpResponse(t, metricsServ.Handler, expectedResponse, assert.Contains)
}
func TestAnalysisTemplateDescribe(t *testing.T) {
expectedResponse := `# HELP analysis_template_info Information about analysis templates.
# TYPE analysis_template_info gauge
analysis_template_info{name="http-benchmark-cluster-test",namespace=""} 1
analysis_template_info{name="http-benchmark-test",namespace="jesse-test"} 1
# HELP analysis_template_metric_info Information on metrics in analysis templates.
# TYPE analysis_template_metric_info gauge
analysis_template_metric_info{metric="web-metric-1",name="http-benchmark-cluster-test",namespace="",type="Web"} 1
analysis_template_metric_info{metric="web-metric-1",name="http-benchmark-test",namespace="jesse-test",type="Web"} 1
analysis_template_metric_info{metric="web-metric-2",name="http-benchmark-cluster-test",namespace="",type="Web"} 1
analysis_template_metric_info{metric="web-metric-2",name="http-benchmark-test",namespace="jesse-test",type="Web"} 1
`
registry := prometheus.NewRegistry()
at := newFakeAnalysisTemplate(fakeAnalysisTemplate)
cat := newFakeClusterAnalysisTemplate(fakeClusterAnalysisTemplate)
serverCfg := newFakeServerConfig(at, cat)
registry.MustRegister(NewAnalysisRunCollector(serverCfg.AnalysisRunLister, serverCfg.AnalysisTemplateLister, serverCfg.ClusterAnalysisTemplateLister))
mux := http.NewServeMux()
mux.Handle(MetricsPath, promhttp.HandlerFor(registry, promhttp.HandlerOpts{}))
testHttpResponse(t, mux, expectedResponse, assert.Contains)
}

View File

@ -0,0 +1,42 @@
package metrics
import (
"strconv"
"github.com/prometheus/client_golang/prometheus"
"github.com/argoproj/pkg/kubeclientmetrics"
)
const (
clientsetMetricsNamespace = "controller_clientset"
)
type K8sRequestsCountProvider struct {
k8sRequestsCount *prometheus.CounterVec
}
func (f *K8sRequestsCountProvider) MustRegister(registerer prometheus.Registerer) {
f.k8sRequestsCount = MetricK8sRequestTotal
registerer.MustRegister(f.k8sRequestsCount)
}
// IncKubernetesRequest increments the kubernetes client counter
func (m *K8sRequestsCountProvider) IncKubernetesRequest(resourceInfo kubeclientmetrics.ResourceInfo) error {
name := resourceInfo.Name
namespace := resourceInfo.Namespace
kind := resourceInfo.Kind
statusCode := strconv.Itoa(resourceInfo.StatusCode)
if resourceInfo.Verb == kubeclientmetrics.List || kind == "events" || kind == "replicasets" {
name = "N/A"
}
if resourceInfo.Verb == kubeclientmetrics.Unknown {
namespace = "Unknown"
name = "Unknown"
kind = "Unknown"
}
if m.k8sRequestsCount != nil {
m.k8sRequestsCount.WithLabelValues(kind, namespace, name, string(resourceInfo.Verb), statusCode).Inc()
}
return nil
}

View File

@ -0,0 +1,30 @@
package metrics
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/argoproj/pkg/kubeclientmetrics"
)
const expectedKubernetesRequest = `# TYPE controller_clientset_k8s_request_total counter
controller_clientset_k8s_request_total{kind="Unknown",name="Unknown",namespace="Unknown",status_code="200",verb="Unknown"} 1
controller_clientset_k8s_request_total{kind="replicasets",name="N/A",namespace="default",status_code="200",verb="List"} 1`
func TestIncKubernetesRequest(t *testing.T) {
config := newFakeServerConfig()
metricsServ := NewMetricsServer(config)
config.K8SRequestProvider.IncKubernetesRequest(kubeclientmetrics.ResourceInfo{
Kind: "replicasets",
Namespace: "default",
Name: "test",
Verb: kubeclientmetrics.List,
StatusCode: 200,
})
config.K8SRequestProvider.IncKubernetesRequest(kubeclientmetrics.ResourceInfo{
Verb: kubeclientmetrics.Unknown,
StatusCode: 200,
})
testHttpResponse(t, metricsServ.Handler, expectedKubernetesRequest, assert.Contains)
}

View File

@ -0,0 +1,163 @@
package metrics
import (
"net/http"
"testing"
"time"
"github.com/stretchr/testify/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/yaml"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
)
const (
fakeExperiment = `
apiVersion: argoproj.io/v1alpha1
kind: Experiment
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"argoproj.io/v1alpha1","kind":"Experiment","metadata":{"annotations":{},"name":"experiment-with-analysis","namespace":"argo-rollouts"},"spec":{"analyses":[{"name":"pass","templateName":"pass"}],"duration":"30s","templates":[{"name":"purple","selector":{"matchLabels":{"app":"rollouts-demo"}},"template":{"metadata":{"labels":{"app":"rollouts-demo"}},"spec":{"containers":[{"image":"argoproj/rollouts-demo:purple","imagePullPolicy":"Always","name":"rollouts-demo"}]}}},{"name":"orange","selector":{"matchLabels":{"app":"rollouts-demo"}},"template":{"metadata":{"labels":{"app":"rollouts-demo"}},"spec":{"containers":[{"image":"argoproj/rollouts-demo:orange","imagePullPolicy":"Always","name":"rollouts-demo"}]}}}]}}
creationTimestamp: "2020-02-04T19:12:03Z"
generation: 16
name: experiment-with-analysis
namespace: argo-rollouts
resourceVersion: "81876006"
selfLink: /apis/argoproj.io/v1alpha1/namespaces/argo-rollouts/experiments/experiment-with-analysis
uid: 3a64d561-4782-11ea-b316-42010aa80065
spec:
analyses:
- name: pass
templateName: pass
duration: 30s
templates:
- name: purple
selector:
matchLabels:
app: rollouts-demo
template:
metadata:
labels:
app: rollouts-demo
spec:
containers:
- image: argoproj/rollouts-demo:purple
imagePullPolicy: Always
name: rollouts-demo
- name: orange
selector:
matchLabels:
app: rollouts-demo
template:
metadata:
labels:
app: rollouts-demo
spec:
containers:
- image: argoproj/rollouts-demo:orange
imagePullPolicy: Always
name: rollouts-demo
status:
analysisRuns:
- analysisRun: experiment-with-analysis-pass
name: pass
phase: Running
availableAt: "2020-02-04T19:12:07Z"
conditions:
- lastTransitionTime: "2020-02-04T19:12:37Z"
lastUpdateTime: "2020-02-04T19:12:37Z"
message: Experiment "experiment-with-analysis" has successfully ran and completed.
reason: ExperimentCompleted
status: "False"
type: Progressing
phase: Successful
templateStatuses:
- availableReplicas: 0
lastTransitionTime: "2020-02-04T19:12:37Z"
name: purple
readyReplicas: 0
replicas: 0
status: Successful
updatedReplicas: 0
- availableReplicas: 0
lastTransitionTime: "2020-02-04T19:12:37Z"
name: orange
readyReplicas: 0
replicas: 0
status: Successful
updatedReplicas: 0
`
)
const expectedExperimentResponse = `
# HELP experiment_info Information about Experiment.
# TYPE experiment_info gauge
experiment_info{name="experiment-with-analysis",namespace="argo-rollouts",phase="Successful"} 1
# HELP experiment_phase Information on the state of the experiment (DEPRECATED - use experiment_info)
# TYPE experiment_phase gauge
experiment_phase{name="experiment-with-analysis",namespace="argo-rollouts",phase="Error"} 0
experiment_phase{name="experiment-with-analysis",namespace="argo-rollouts",phase="Inconclusive"} 0
experiment_phase{name="experiment-with-analysis",namespace="argo-rollouts",phase="Pending"} 0
experiment_phase{name="experiment-with-analysis",namespace="argo-rollouts",phase="Running"} 0
experiment_phase{name="experiment-with-analysis",namespace="argo-rollouts",phase="Successful"} 1
`
func newFakeExperiment(fakeExperiment string) *v1alpha1.Experiment {
var experiment v1alpha1.Experiment
err := yaml.Unmarshal([]byte(fakeExperiment), &experiment)
if err != nil {
panic(err)
}
return &experiment
}
func TestCollectExperiments(t *testing.T) {
combinations := []testCombination{
{
resource: fakeExperiment,
expectedResponse: expectedExperimentResponse,
},
}
for _, combination := range combinations {
testExperimentDescribe(t, combination.resource, combination.expectedResponse)
}
}
func testExperimentDescribe(t *testing.T, fakeExperiment string, expectedResponse string) {
registry := prometheus.NewRegistry()
config := newFakeServerConfig(newFakeExperiment(fakeExperiment))
registry.MustRegister(NewExperimentCollector(config.ExperimentLister))
mux := http.NewServeMux()
mux.Handle(MetricsPath, promhttp.HandlerFor(registry, promhttp.HandlerOpts{}))
testHttpResponse(t, mux, expectedResponse, assert.Contains)
}
func TestIncExperimentReconcile(t *testing.T) {
expectedResponse := `# HELP experiment_reconcile Experiments reconciliation performance.
# TYPE experiment_reconcile histogram
experiment_reconcile_bucket{name="ex-test",namespace="ex-namespace",le="0.01"} 1
experiment_reconcile_bucket{name="ex-test",namespace="ex-namespace",le="0.15"} 1
experiment_reconcile_bucket{name="ex-test",namespace="ex-namespace",le="0.25"} 1
experiment_reconcile_bucket{name="ex-test",namespace="ex-namespace",le="0.5"} 1
experiment_reconcile_bucket{name="ex-test",namespace="ex-namespace",le="1"} 1
experiment_reconcile_bucket{name="ex-test",namespace="ex-namespace",le="+Inf"} 1
experiment_reconcile_sum{name="ex-test",namespace="ex-namespace"} 0.001
experiment_reconcile_count{name="ex-test",namespace="ex-namespace"} 1`
metricsServ := NewMetricsServer(newFakeServerConfig())
ex := &v1alpha1.Experiment{
ObjectMeta: metav1.ObjectMeta{
Name: "ex-test",
Namespace: "ex-namespace",
},
}
metricsServ.IncExperimentReconcile(ex, time.Millisecond)
testHttpResponse(t, metricsServ.Handler, expectedResponse, assert.Contains)
}

View File

@ -0,0 +1,55 @@
package metrics
import (
"github.com/prometheus/client_golang/prometheus"
log "github.com/sirupsen/logrus"
"k8s.io/apimachinery/pkg/labels"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
rolloutlister "github.com/argoproj/argo-rollouts/pkg/client/listers/rollouts/v1alpha1"
)
type experimentCollector struct {
store rolloutlister.ExperimentLister
}
// NewExperimentCollector returns a prometheus collector for experiment metrics
func NewExperimentCollector(experimentLister rolloutlister.ExperimentLister) prometheus.Collector {
return &experimentCollector{
store: experimentLister,
}
}
// Describe implements the prometheus.Collector interface
func (c *experimentCollector) Describe(ch chan<- *prometheus.Desc) {
ch <- MetricExperimentInfo
}
// Collect implements the prometheus.Collector interface
func (c *experimentCollector) Collect(ch chan<- prometheus.Metric) {
experiments, err := c.store.List(labels.NewSelector())
if err != nil {
log.Warnf("Failed to collect experiments: %v", err)
return
}
for _, experiment := range experiments {
collectExperiments(ch, experiment)
}
}
func collectExperiments(ch chan<- prometheus.Metric, ex *v1alpha1.Experiment) {
addGauge := func(desc *prometheus.Desc, v float64, lv ...string) {
lv = append([]string{ex.Namespace, ex.Name}, lv...)
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, v, lv...)
}
calculatedPhase := ex.Status.Phase
addGauge(MetricExperimentInfo, 1, string(calculatedPhase))
// DEPRECATED
addGauge(MetricExperimentPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhasePending || calculatedPhase == ""), string("Pending"))
addGauge(MetricExperimentPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseError), string("Error"))
addGauge(MetricExperimentPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseSuccessful), string("Successful"))
addGauge(MetricExperimentPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseRunning), string("Running"))
addGauge(MetricExperimentPhase, boolFloat64(calculatedPhase == v1alpha1.AnalysisPhaseInconclusive), string("Inconclusive"))
}

View File

@ -2,24 +2,38 @@ package metrics
import (
"net/http"
"runtime"
"time"
"github.com/argoproj/argo-rollouts/utils/defaults"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
log "github.com/sirupsen/logrus"
"k8s.io/apimachinery/pkg/labels"
registry "k8s.io/component-base/metrics/legacyregistry"
"time"
// make sure to register workqueue prometheus metrics
_ "k8s.io/component-base/metrics/prometheus/workqueue"
v1alpha1 "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
rolloutlister "github.com/argoproj/argo-rollouts/pkg/client/listers/rollouts/v1alpha1"
"github.com/argoproj/argo-rollouts/utils/conditions"
"github.com/argoproj/argo-rollouts/utils/defaults"
"github.com/argoproj/argo-rollouts/utils/log"
"github.com/argoproj/argo-rollouts/utils/version"
)
type MetricsServer struct {
*http.Server
reconcileHistogram *prometheus.HistogramVec
errorCounter *prometheus.CounterVec
reconcileRolloutHistogram *prometheus.HistogramVec
errorRolloutCounter *prometheus.CounterVec
reconcileExperimentHistogram *prometheus.HistogramVec
errorExperimentCounter *prometheus.CounterVec
reconcileAnalysisRunHistogram *prometheus.HistogramVec
errorAnalysisRunCounter *prometheus.CounterVec
successNotificationCounter *prometheus.CounterVec
errorNotificationCounter *prometheus.CounterVec
sendNotificationRunHistogram *prometheus.HistogramVec
k8sRequestsCounter *K8sRequestsCountProvider
}
const (
@ -27,164 +41,158 @@ const (
MetricsPath = "/metrics"
)
// Follow Prometheus naming practices
// https://prometheus.io/docs/practices/naming/
var (
descRolloutDefaultLabels = []string{"namespace", "name"}
descRolloutWithStrategyLabels = append(descRolloutDefaultLabels, "strategy")
descRolloutReconcilePhaseLabels = append(descRolloutWithStrategyLabels, "phase")
descRolloutInfo = prometheus.NewDesc(
"rollout_info",
"Information about rollout.",
descRolloutWithStrategyLabels,
nil,
)
descRolloutCreated = prometheus.NewDesc(
"rollout_created_time",
"Creation time in unix timestamp for an rollout.",
descRolloutWithStrategyLabels,
nil,
)
descRolloutPhaseLabels = prometheus.NewDesc(
"rollout_phase",
"Information on the state of the rollout",
descRolloutReconcilePhaseLabels,
nil,
buildInfo = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "build_info",
Help: "A metric with a constant '1' value labeled by version from which Argo-Rollouts was built.",
},
[]string{"version", "goversion", "goarch", "commit"},
)
)
// RolloutPhase the phases of a reconcile can have
type RolloutPhase string
const (
// InvalidSpec means the rollout had an InvalidSpec during reconciliation
InvalidSpec RolloutPhase = "InvalidSpec"
// Completed means the rollout finished the reconciliation with no remaining work
Completed RolloutPhase = "Completed"
// Progressing means the rollout finished the reconciliation with remaining work
Progressing RolloutPhase = "Progressing"
// Paused means the rollout finished the reconciliation with a paused status
Paused RolloutPhase = "Paused"
// Timeout means the rollout finished the reconciliation with an timeout message
Timeout RolloutPhase = "Timeout"
// Error means the rollout finished the reconciliation with an error
Error RolloutPhase = "Error"
)
type ServerConfig struct {
Addr string
RolloutLister rolloutlister.RolloutLister
AnalysisRunLister rolloutlister.AnalysisRunLister
AnalysisTemplateLister rolloutlister.AnalysisTemplateLister
ClusterAnalysisTemplateLister rolloutlister.ClusterAnalysisTemplateLister
ExperimentLister rolloutlister.ExperimentLister
K8SRequestProvider *K8sRequestsCountProvider
}
// NewMetricsServer returns a new prometheus server which collects rollout metrics
func NewMetricsServer(addr string, rolloutLister rolloutlister.RolloutLister) *MetricsServer {
func NewMetricsServer(cfg ServerConfig) *MetricsServer {
mux := http.NewServeMux()
rolloutRegistry := NewRolloutRegistry(rolloutLister)
mux.Handle(MetricsPath, promhttp.HandlerFor(rolloutRegistry, promhttp.HandlerOpts{}))
reconcileHistogram := prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Name: "rollout_reconcile",
Help: "Rollout reconciliation performance.",
Buckets: []float64{0.01, 0.15, .25, .5, 1},
},
append(descRolloutWithStrategyLabels),
)
reg := prometheus.NewRegistry()
rolloutRegistry.MustRegister(reconcileHistogram)
if cfg.RolloutLister != nil {
reg.MustRegister(NewRolloutCollector(cfg.RolloutLister))
}
if cfg.ExperimentLister != nil {
reg.MustRegister(NewExperimentCollector(cfg.ExperimentLister))
}
reg.MustRegister(NewAnalysisRunCollector(cfg.AnalysisRunLister, cfg.AnalysisTemplateLister, cfg.ClusterAnalysisTemplateLister))
cfg.K8SRequestProvider.MustRegister(reg)
reg.MustRegister(MetricRolloutReconcile)
reg.MustRegister(MetricRolloutReconcileError)
reg.MustRegister(MetricRolloutEventsTotal)
reg.MustRegister(MetricExperimentReconcile)
reg.MustRegister(MetricExperimentReconcileError)
reg.MustRegister(MetricAnalysisRunReconcile)
reg.MustRegister(MetricAnalysisRunReconcileError)
reg.MustRegister(MetricNotificationSuccessTotal)
reg.MustRegister(MetricNotificationFailedTotal)
reg.MustRegister(MetricNotificationSend)
reg.MustRegister(MetricVersionGauge)
reg.MustRegister(buildInfo)
errorCounter := prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "rollout_reconcile_error",
Help: "Error occurring during the rollout",
},
append(descRolloutDefaultLabels),
)
rolloutRegistry.MustRegister(errorCounter)
recordBuildInfo()
mux.Handle(MetricsPath, promhttp.HandlerFor(prometheus.Gatherers{
// contains app controller specific metrics
reg,
// contains process, golang and controller workqueues metrics
registry.DefaultGatherer,
}, promhttp.HandlerOpts{}))
return &MetricsServer{
Server: &http.Server{
Addr: addr,
Addr: cfg.Addr,
Handler: mux,
},
reconcileHistogram: reconcileHistogram,
errorCounter: errorCounter,
reconcileRolloutHistogram: MetricRolloutReconcile,
errorRolloutCounter: MetricRolloutReconcileError,
reconcileExperimentHistogram: MetricExperimentReconcile,
errorExperimentCounter: MetricExperimentReconcileError,
reconcileAnalysisRunHistogram: MetricAnalysisRunReconcile,
errorAnalysisRunCounter: MetricAnalysisRunReconcileError,
successNotificationCounter: MetricNotificationSuccessTotal,
errorNotificationCounter: MetricNotificationFailedTotal,
sendNotificationRunHistogram: MetricNotificationSend,
k8sRequestsCounter: cfg.K8SRequestProvider,
}
}
// IncReconcile increments the reconcile counter for an rollout
func (m *MetricsServer) IncReconcile(rollout *v1alpha1.Rollout, duration time.Duration) {
m.reconcileHistogram.WithLabelValues(rollout.Namespace, rollout.Name, defaults.GetStrategyType(rollout)).Observe(duration.Seconds())
// IncRolloutReconcile increments the reconcile counter for a Rollout
func (m *MetricsServer) IncRolloutReconcile(rollout *v1alpha1.Rollout, duration time.Duration) {
m.reconcileRolloutHistogram.WithLabelValues(rollout.Namespace, rollout.Name).Observe(duration.Seconds())
}
// IncExperimentReconcile increments the reconcile counter for an Experiment
func (m *MetricsServer) IncExperimentReconcile(ex *v1alpha1.Experiment, duration time.Duration) {
m.reconcileExperimentHistogram.WithLabelValues(ex.Namespace, ex.Name).Observe(duration.Seconds())
}
// IncAnalysisRunReconcile increments the reconcile counter for an AnalysisRun
func (m *MetricsServer) IncAnalysisRunReconcile(ar *v1alpha1.AnalysisRun, duration time.Duration) {
m.reconcileAnalysisRunHistogram.WithLabelValues(ar.Namespace, ar.Name).Observe(duration.Seconds())
}
// IncError increments the reconcile counter for an rollout
func (m *MetricsServer) IncError(namespace, name string) {
m.errorCounter.WithLabelValues(namespace, name).Inc()
func (m *MetricsServer) IncError(namespace, name string, kind string) {
switch kind {
case log.RolloutKey:
m.errorRolloutCounter.WithLabelValues(namespace, name).Inc()
case log.AnalysisRunKey:
m.errorAnalysisRunCounter.WithLabelValues(namespace, name).Inc()
case log.ExperimentKey:
m.errorExperimentCounter.WithLabelValues(namespace, name).Inc()
}
}
// calculatePhase calculates where a Rollout is in a Completed, Paused, Error, Timeout, or InvalidSpec phase
func calculatePhase(rollout *v1alpha1.Rollout) RolloutPhase {
phase := Progressing
progressing := conditions.GetRolloutCondition(rollout.Status, v1alpha1.RolloutProgressing)
if progressing != nil {
if progressing.Reason == conditions.NewRSAvailableReason {
phase = Completed
// Remove removes the metrics server from the registry
func (m *MetricsServer) Remove(namespace string, name string, kind string) {
go func(namespace string, name string, kind string) {
// wait for the metrics to be collected, prometheus scrape interval is 60 seconds by default
time.Sleep(defaults.GetMetricCleanupDelaySeconds())
switch kind {
case log.RolloutKey:
m.reconcileRolloutHistogram.Delete(map[string]string{"namespace": namespace, "name": name})
m.errorRolloutCounter.Delete(map[string]string{"namespace": namespace, "name": name})
m.successNotificationCounter.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
m.errorNotificationCounter.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
m.sendNotificationRunHistogram.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
MetricRolloutReconcile.Delete(map[string]string{"namespace": namespace, "name": name})
MetricRolloutReconcileError.Delete(map[string]string{"namespace": namespace, "name": name})
MetricRolloutEventsTotal.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
case log.AnalysisRunKey:
m.reconcileAnalysisRunHistogram.Delete(map[string]string{"namespace": namespace, "name": name})
m.errorAnalysisRunCounter.Delete(map[string]string{"namespace": namespace, "name": name})
m.successNotificationCounter.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
m.errorNotificationCounter.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
m.sendNotificationRunHistogram.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
MetricAnalysisRunReconcile.Delete(map[string]string{"namespace": namespace, "name": name})
MetricAnalysisRunReconcileError.Delete(map[string]string{"namespace": namespace, "name": name})
case log.ExperimentKey:
m.reconcileExperimentHistogram.Delete(map[string]string{"namespace": namespace, "name": name})
m.errorExperimentCounter.Delete(map[string]string{"namespace": namespace, "name": name})
m.successNotificationCounter.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
m.errorNotificationCounter.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
m.sendNotificationRunHistogram.DeletePartialMatch(map[string]string{"namespace": namespace, "name": name})
MetricExperimentReconcile.Delete(map[string]string{"namespace": namespace, "name": name})
MetricExperimentReconcileError.Delete(map[string]string{"namespace": namespace, "name": name})
}
if progressing.Reason == conditions.PausedRolloutReason {
phase = Paused
}
if progressing.Reason == conditions.ServiceNotFoundReason || progressing.Reason == conditions.FailedRSCreateReason {
phase = Error
}
if progressing.Reason == conditions.TimedOutReason {
phase = Timeout
}
}
invalidSpec := conditions.GetRolloutCondition(rollout.Status, v1alpha1.InvalidSpec)
if invalidSpec != nil {
phase = InvalidSpec
}
return phase
}(namespace, name, kind)
}
type rolloutCollector struct {
store rolloutlister.RolloutLister
}
// NewRolloutCollector returns a prometheus collector for rollout metrics
func NewRolloutCollector(rolloutLister rolloutlister.RolloutLister) prometheus.Collector {
return &rolloutCollector{
store: rolloutLister,
}
}
// NewRolloutRegistry creates a new prometheus registry that collects rollouts
func NewRolloutRegistry(rolloutLister rolloutlister.RolloutLister) *prometheus.Registry {
registry := prometheus.NewRegistry()
registry.MustRegister(NewRolloutCollector(rolloutLister))
registry.MustRegister(prometheus.NewProcessCollector(prometheus.ProcessCollectorOpts{}))
registry.MustRegister(prometheus.NewGoCollector())
return registry
}
// Describe implements the prometheus.Collector interface
func (c *rolloutCollector) Describe(ch chan<- *prometheus.Desc) {
ch <- descRolloutInfo
ch <- descRolloutCreated
}
// Collect implements the prometheus.Collector interface
func (c *rolloutCollector) Collect(ch chan<- prometheus.Metric) {
rollouts, err := c.store.List(labels.NewSelector())
if err != nil {
log.Warnf("Failed to collect rollouts: %v", err)
return
}
for _, rollout := range rollouts {
collectRollouts(ch, rollout)
}
// recordBuildInfo publishes information about Argo-Rollouts version and runtime info through an info metric (gauge).
func recordBuildInfo() {
vers := version.GetVersion()
buildInfo.WithLabelValues(vers.Version, runtime.Version(), runtime.GOARCH, vers.GitCommit).Set(1)
}
func boolFloat64(b bool) float64 {
@ -193,26 +201,3 @@ func boolFloat64(b bool) float64 {
}
return 0
}
func collectRollouts(ch chan<- prometheus.Metric, rollout *v1alpha1.Rollout) {
addConstMetric := func(desc *prometheus.Desc, t prometheus.ValueType, v float64, lv ...string) {
lv = append([]string{rollout.Namespace, rollout.Name, defaults.GetStrategyType(rollout)}, lv...)
ch <- prometheus.MustNewConstMetric(desc, t, v, lv...)
}
addGauge := func(desc *prometheus.Desc, v float64, lv ...string) {
addConstMetric(desc, prometheus.GaugeValue, v, lv...)
}
addGauge(descRolloutInfo, 1)
addGauge(descRolloutCreated, float64(rollout.CreationTimestamp.Unix()))
calculatedPhase := calculatePhase(rollout)
addGauge(descRolloutPhaseLabels, boolFloat64(calculatedPhase == Completed), string(Completed))
addGauge(descRolloutPhaseLabels, boolFloat64(calculatedPhase == Progressing), string(Progressing))
addGauge(descRolloutPhaseLabels, boolFloat64(calculatedPhase == Paused), string(Paused))
addGauge(descRolloutPhaseLabels, boolFloat64(calculatedPhase == Timeout), string(Timeout))
addGauge(descRolloutPhaseLabels, boolFloat64(calculatedPhase == Error), string(Error))
addGauge(descRolloutPhaseLabels, boolFloat64(calculatedPhase == InvalidSpec), string(InvalidSpec))
}

View File

@ -7,114 +7,118 @@ import (
"net/http/httptest"
"strings"
"testing"
"time"
"github.com/ghodss/yaml"
"github.com/stretchr/testify/assert"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/tools/cache"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
clientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned/fake"
informer "github.com/argoproj/argo-rollouts/pkg/client/informers/externalversions"
lister "github.com/argoproj/argo-rollouts/pkg/client/listers/rollouts/v1alpha1"
"github.com/argoproj/argo-rollouts/utils/defaults"
"github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned/fake"
informerfactory "github.com/argoproj/argo-rollouts/pkg/client/informers/externalversions"
logutil "github.com/argoproj/argo-rollouts/utils/log"
)
// assertMetricsPrinted asserts every line in the expected lines appears in the body
func assertMetricsPrinted(t *testing.T, expectedLines, body string) {
for _, line := range strings.Split(expectedLines, "\n") {
assert.Contains(t, body, line)
func newFakeServerConfig(objs ...runtime.Object) ServerConfig {
fakeClient := fake.NewSimpleClientset(objs...)
factory := informerfactory.NewSharedInformerFactory(fakeClient, 0)
roInformer := factory.Argoproj().V1alpha1().Rollouts()
arInformer := factory.Argoproj().V1alpha1().AnalysisRuns()
atInformer := factory.Argoproj().V1alpha1().AnalysisTemplates()
catInformer := factory.Argoproj().V1alpha1().ClusterAnalysisTemplates()
exInformer := factory.Argoproj().V1alpha1().Experiments()
ctx, cancel := context.WithCancel(context.TODO())
var hasSyncedFuncs = make([]cache.InformerSynced, 0)
for _, inf := range []cache.SharedIndexInformer{
roInformer.Informer(),
arInformer.Informer(),
atInformer.Informer(),
catInformer.Informer(),
exInformer.Informer(),
} {
go inf.Run(ctx.Done())
hasSyncedFuncs = append(hasSyncedFuncs, inf.HasSynced)
}
cache.WaitForCacheSync(ctx.Done(), hasSyncedFuncs...)
cancel()
return ServerConfig{
RolloutLister: roInformer.Lister(),
AnalysisRunLister: arInformer.Lister(),
AnalysisTemplateLister: atInformer.Lister(),
ClusterAnalysisTemplateLister: catInformer.Lister(),
ExperimentLister: exInformer.Lister(),
K8SRequestProvider: &K8sRequestsCountProvider{},
}
}
func newFakeRollout(fakeRollout string) *v1alpha1.Rollout {
var rollout v1alpha1.Rollout
err := yaml.Unmarshal([]byte(fakeRollout), &rollout)
if err != nil {
panic(err)
}
return &rollout
}
func newFakeLister(fakeRollout ...string) (context.CancelFunc, lister.RolloutLister) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
var fakeRollouts []runtime.Object
for _, name := range fakeRollout {
fakeRollouts = append(fakeRollouts, newFakeRollout(name))
}
appClientset := clientset.NewSimpleClientset(fakeRollouts...)
factory := informer.NewSharedInformerFactoryWithOptions(appClientset, 0)
rolloutInformer := factory.Argoproj().V1alpha1().Rollouts().Informer()
go rolloutInformer.Run(ctx.Done())
if !cache.WaitForCacheSync(ctx.Done(), rolloutInformer.HasSynced) {
log.Fatal("Timed out waiting for caches to sync")
}
return cancel, factory.Argoproj().V1alpha1().Rollouts().Lister()
}
func testRolloutDescribe(t *testing.T, fakeRollout string, expectedResponse string) {
cancel, rolloutLister := newFakeLister(fakeRollout)
defer cancel()
metricsServ := NewMetricsServer("localhost:8080", rolloutLister)
func testHttpResponse(t *testing.T, handler http.Handler, expectedResponse string, testFunc func(t assert.TestingT, s any, contains any, msgAndArgs ...any) bool) {
t.Helper()
req, err := http.NewRequest("GET", "/metrics", nil)
assert.NoError(t, err)
rr := httptest.NewRecorder()
metricsServ.Handler.ServeHTTP(rr, req)
handler.ServeHTTP(rr, req)
assert.Equal(t, rr.Code, http.StatusOK)
body := rr.Body.String()
log.Println(body)
assertMetricsPrinted(t, expectedResponse, body)
for _, line := range strings.Split(expectedResponse, "\n") {
testFunc(t, body, line)
}
}
type testCombination struct {
rollout string
resource string
expectedResponse string
}
const fakeRollout = `
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: guestbook-bluegreen
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: guestbook
template:
metadata:
labels:
app: guestbook
spec:
containers:
- name: guestbook
# The image below can be flip from 0.1 to 0.2
image: gcr.io/heptio-images/ks-guestbook-demo:0.1
ports:
- containerPort: 80
minReadySeconds: 30
revisionHistoryLimit: 3
strategy:
blueGreen:
activeService: active-service
previewService: preview-service
`
func TestIncError(t *testing.T) {
expectedResponse := `# HELP analysis_run_reconcile_error Error occurring during the analysis run
# TYPE analysis_run_reconcile_error counter
analysis_run_reconcile_error{name="name",namespace="ns"} 1
# HELP experiment_reconcile_error Error occurring during the experiment
# TYPE experiment_reconcile_error counter
experiment_reconcile_error{name="name",namespace="ns"} 1
# HELP rollout_reconcile_error Error occurring during the rollout
# TYPE rollout_reconcile_error counter
rollout_reconcile_error{name="name",namespace="ns"} 1`
const expectedResponse = `# HELP rollout_created_time Creation time in unix timestamp for an rollout.
# TYPE rollout_created_time gauge
rollout_created_time{name="guestbook-bluegreen",namespace="default",strategy="blueGreen"} -6.21355968e+10
`
metricsServ := NewMetricsServer(newFakeServerConfig())
func TestMetrics(t *testing.T) {
combinations := []testCombination{
{
rollout: fakeRollout,
expectedResponse: expectedResponse,
},
}
for _, combination := range combinations {
testRolloutDescribe(t, combination.rollout, combination.expectedResponse)
}
metricsServ.IncError("ns", "name", logutil.AnalysisRunKey)
metricsServ.IncError("ns", "name", logutil.ExperimentKey)
metricsServ.IncError("ns", "name", logutil.RolloutKey)
testHttpResponse(t, metricsServ.Handler, expectedResponse, assert.Contains)
}
func TestVersionInfo(t *testing.T) {
expectedResponse := `# HELP argo_rollouts_controller_info Running Argo-rollouts version
# TYPE argo_rollouts_controller_info gauge`
metricsServ := NewMetricsServer(newFakeServerConfig())
testHttpResponse(t, metricsServ.Handler, expectedResponse, assert.Contains)
}
func TestRemove(t *testing.T) {
defaults.SetMetricCleanupDelaySeconds(1)
expectedResponse := `analysis_run_reconcile_error{name="name1",namespace="ns"} 1
experiment_reconcile_error{name="name1",namespace="ns"} 1
rollout_reconcile_error{name="name1",namespace="ns"} 1`
metricsServ := NewMetricsServer(newFakeServerConfig())
metricsServ.IncError("ns", "name1", logutil.RolloutKey)
metricsServ.IncError("ns", "name1", logutil.AnalysisRunKey)
metricsServ.IncError("ns", "name1", logutil.ExperimentKey)
testHttpResponse(t, metricsServ.Handler, expectedResponse, assert.Contains)
metricsServ.Remove("ns", "name1", logutil.AnalysisRunKey)
metricsServ.Remove("ns", "name1", logutil.ExperimentKey)
metricsServ.Remove("ns", "name1", logutil.RolloutKey)
//Sleep for 2x the cleanup delay to allow metrics to be removed
time.Sleep(defaults.GetMetricCleanupDelaySeconds() * 2)
testHttpResponse(t, metricsServ.Handler, expectedResponse, assert.NotContains)
}

View File

@ -0,0 +1,239 @@
package metrics
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/argoproj/argo-rollouts/utils/version"
)
// Follow Prometheus naming practices
// https://prometheus.io/docs/practices/naming/
var (
namespaceNameLabels = []string{"namespace", "name"}
)
// Rollout metrics
var (
MetricRolloutReconcile = prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Name: "rollout_reconcile",
Help: "Rollout reconciliation performance.",
Buckets: []float64{0.01, 0.15, .25, .5, 1},
},
namespaceNameLabels,
)
MetricRolloutReconcileError = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "rollout_reconcile_error",
Help: "Error occurring during the rollout",
},
namespaceNameLabels,
)
MetricRolloutInfo = prometheus.NewDesc(
"rollout_info",
"Information about rollout.",
append(namespaceNameLabels, "strategy", "traffic_router", "phase"),
nil,
)
MetricRolloutInfoReplicasAvailable = prometheus.NewDesc(
"rollout_info_replicas_available",
"The number of available replicas per rollout.",
namespaceNameLabels,
nil,
)
MetricRolloutInfoReplicasUnavailable = prometheus.NewDesc(
"rollout_info_replicas_unavailable",
"The number of unavailable replicas per rollout.",
namespaceNameLabels,
nil,
)
MetricRolloutInfoReplicasDesired = prometheus.NewDesc(
"rollout_info_replicas_desired",
"The number of desired replicas per rollout.",
namespaceNameLabels,
nil,
)
MetricRolloutInfoReplicasUpdated = prometheus.NewDesc(
"rollout_info_replicas_updated",
"The number of updated replicas per rollout.",
namespaceNameLabels,
nil,
)
MetricRolloutEventsTotal = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "rollout_events_total",
Help: "Count of rollout events",
},
append(namespaceNameLabels, "type", "reason"),
)
// DEPRECATED in favor of rollout_info
MetricRolloutPhase = prometheus.NewDesc(
"rollout_phase",
"Information on the state of the rollout (DEPRECATED - use rollout_info)",
append(namespaceNameLabels, "strategy", "phase"),
nil,
)
)
// AnalysisRun metrics
var (
MetricAnalysisRunReconcile = prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Name: "analysis_run_reconcile",
Help: "Analysis Run reconciliation performance.",
Buckets: []float64{0.01, 0.15, .25, .5, 1},
},
namespaceNameLabels,
)
MetricAnalysisRunReconcileError = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "analysis_run_reconcile_error",
Help: "Error occurring during the analysis run",
},
namespaceNameLabels,
)
MetricAnalysisRunInfo = prometheus.NewDesc(
"analysis_run_info",
"Information about analysis run.",
append(namespaceNameLabels, "phase"),
nil,
)
// DEPRECATED in favor of analysis_run_info
MetricAnalysisRunPhase = prometheus.NewDesc(
"analysis_run_phase",
"Information on the state of the Analysis Run (DEPRECATED - use analysis_run_info)",
append(namespaceNameLabels, "phase"),
nil,
)
MetricAnalysisRunMetricType = prometheus.NewDesc(
"analysis_run_metric_type",
"Information on the type of a specific metric in the Analysis Runs",
append(namespaceNameLabels, "metric", "type"),
nil,
)
MetricAnalysisRunMetricPhase = prometheus.NewDesc(
"analysis_run_metric_phase",
"Information on the duration of a specific metric in the Analysis Run",
append(namespaceNameLabels, "metric", "type", "dry_run", "phase"),
nil,
)
)
// AnalysisTemplate metrics
var (
MetricAnalysisTemplateInfo = prometheus.NewDesc(
"analysis_template_info",
"Information about analysis templates.",
namespaceNameLabels,
nil,
)
MetricAnalysisTemplateMetricInfo = prometheus.NewDesc(
"analysis_template_metric_info",
"Information on metrics in analysis templates.",
append(namespaceNameLabels, "type", "metric"),
nil,
)
)
// Experiment metrics
var (
MetricExperimentReconcile = prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Name: "experiment_reconcile",
Help: "Experiments reconciliation performance.",
Buckets: []float64{0.01, 0.15, .25, .5, 1},
},
namespaceNameLabels,
)
MetricExperimentReconcileError = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "experiment_reconcile_error",
Help: "Error occurring during the experiment",
},
namespaceNameLabels,
)
MetricExperimentInfo = prometheus.NewDesc(
"experiment_info",
"Information about Experiment.",
append(namespaceNameLabels, "phase"),
nil,
)
// DEPRECATED in favor of experiment_info
MetricExperimentPhase = prometheus.NewDesc(
"experiment_phase",
"Information on the state of the experiment (DEPRECATED - use experiment_info)",
append(namespaceNameLabels, "phase"),
nil,
)
)
// Notification metrics
var (
MetricNotificationSuccessTotal = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "notification_send_success",
Help: "Notification send success.",
},
append(namespaceNameLabels, "type", "reason"),
)
MetricNotificationFailedTotal = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "notification_send_error",
Help: "Error sending the notification",
},
append(namespaceNameLabels, "type", "reason"),
)
MetricNotificationSend = prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Name: "notification_send",
Help: "Notification send performance.",
Buckets: []float64{0.01, 0.15, .25, .5, 1},
},
namespaceNameLabels,
)
)
// K8s Client metrics
var (
// Custom events metric
MetricK8sRequestTotal = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: clientsetMetricsNamespace,
Name: "k8s_request_total",
Help: "Number of kubernetes requests executed during application reconciliation.",
},
[]string{"kind", "namespace", "name", "verb", "status_code"},
)
)
// MetricVersionGauge version info
var (
MetricVersionGauge = prometheus.NewGaugeFunc(
prometheus.GaugeOpts{
Name: "argo_rollouts_controller_info",
Help: "Running Argo-rollouts version",
ConstLabels: prometheus.Labels{"version": version.GetVersion().Version},
},
func() float64 {
return float64(1)
},
)
)

View File

@ -0,0 +1,333 @@
package metrics
import (
"net/http"
"testing"
"time"
"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/yaml"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
"github.com/argoproj/argo-rollouts/utils/conditions"
)
const (
fakeRollout = `
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: guestbook-bluegreen
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: guestbook
template:
metadata:
labels:
app: guestbook
spec:
containers:
- name: guestbook
image: argoproj/rollouts-demo:blue
ports:
- containerPort: 80
minReadySeconds: 30
revisionHistoryLimit: 3
strategy:
blueGreen:
activeService: active-service
previewService: preview-service
status:
replicas: 1
availableReplicas: 1
`
fakeCanaryRollout = `
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: guestbook-canary
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: guestbook
template:
metadata:
labels:
app: guestbook
spec:
containers:
- name: guestbook
image: argoproj/rollouts-demo:blue
ports:
- containerPort: 80
minReadySeconds: 30
revisionHistoryLimit: 3
strategy:
canary:
trafficRouting:
smi: {}
status:
replicas: 1
availableReplicas: 1
`
)
func newFakeRollout(fakeRollout string, cond *v1alpha1.RolloutCondition) *v1alpha1.Rollout {
var rollout v1alpha1.Rollout
err := yaml.Unmarshal([]byte(fakeRollout), &rollout)
if err != nil {
panic(err)
}
rollout.Status.Conditions = append(rollout.Status.Conditions, *cond)
return &rollout
}
func TestCollectRollouts(t *testing.T) {
combinations := []struct {
fakeRollout string
fakeCondition *v1alpha1.RolloutCondition
expectedResponse string
}{
{
fakeRollout,
conditions.NewRolloutCondition(v1alpha1.RolloutProgressing, corev1.ConditionFalse, "Progressing", ""),
`
# HELP rollout_info Information about rollout.
# TYPE rollout_info gauge
rollout_info{name="guestbook-bluegreen",namespace="default",phase="Progressing",strategy="blueGreen",traffic_router=""} 1
# HELP rollout_info_replicas_available The number of available replicas per rollout.
# TYPE rollout_info_replicas_available gauge
rollout_info_replicas_available{name="guestbook-bluegreen",namespace="default"} 1
# HELP rollout_info_replicas_desired The number of desired replicas per rollout.
# TYPE rollout_info_replicas_desired gauge
rollout_info_replicas_desired{name="guestbook-bluegreen",namespace="default"} 1
# HELP rollout_info_replicas_unavailable The number of unavailable replicas per rollout.
# TYPE rollout_info_replicas_unavailable gauge
rollout_info_replicas_unavailable{name="guestbook-bluegreen",namespace="default"} 0
# HELP rollout_info_replicas_unavailable The number of unavailable replicas per rollout.
# TYPE rollout_info_replicas_unavailable gauge
rollout_info_replicas_unavailable{name="guestbook-bluegreen",namespace="default"} 0
# HELP rollout_info_replicas_updated The number of updated replicas per rollout.
# TYPE rollout_info_replicas_updated gauge
rollout_info_replicas_updated{name="guestbook-bluegreen",namespace="default"} 0`,
},
{
fakeRollout,
conditions.NewRolloutCondition(v1alpha1.RolloutProgressing, corev1.ConditionFalse, conditions.FailedRSCreateReason, "test"),
`
# HELP rollout_info Information about rollout.
# TYPE rollout_info gauge
rollout_info{name="guestbook-bluegreen",namespace="default",phase="Error",strategy="blueGreen",traffic_router=""} 1
# HELP rollout_info_replicas_available The number of available replicas per rollout.
# TYPE rollout_info_replicas_available gauge
rollout_info_replicas_available{name="guestbook-bluegreen",namespace="default"} 1
# HELP rollout_info_replicas_desired The number of desired replicas per rollout.
# TYPE rollout_info_replicas_desired gauge
rollout_info_replicas_desired{name="guestbook-bluegreen",namespace="default"} 1
# HELP rollout_info_replicas_unavailable The number of unavailable replicas per rollout.
# TYPE rollout_info_replicas_unavailable gauge
rollout_info_replicas_unavailable{name="guestbook-bluegreen",namespace="default"} 0
# HELP rollout_info_replicas_unavailable The number of unavailable replicas per rollout.
# TYPE rollout_info_replicas_unavailable gauge
rollout_info_replicas_unavailable{name="guestbook-bluegreen",namespace="default"} 0
# HELP rollout_info_replicas_updated The number of updated replicas per rollout.
# TYPE rollout_info_replicas_updated gauge
rollout_info_replicas_updated{name="guestbook-bluegreen",namespace="default"} 0`,
},
{
fakeCanaryRollout,
conditions.NewRolloutCondition(v1alpha1.RolloutProgressing, corev1.ConditionFalse, "Progressing", "test"),
`
# HELP rollout_info Information about rollout.
# TYPE rollout_info gauge
rollout_info{name="guestbook-canary",namespace="default",phase="Progressing",strategy="canary",traffic_router="SMI"} 1
# HELP rollout_info_replicas_available The number of available replicas per rollout.
# TYPE rollout_info_replicas_available gauge
rollout_info_replicas_available{name="guestbook-canary",namespace="default"} 1
# HELP rollout_info_replicas_desired The number of desired replicas per rollout.
# TYPE rollout_info_replicas_desired gauge
rollout_info_replicas_desired{name="guestbook-canary",namespace="default"} 1
# HELP rollout_info_replicas_unavailable The number of unavailable replicas per rollout.
# TYPE rollout_info_replicas_unavailable gauge
rollout_info_replicas_unavailable{name="guestbook-canary",namespace="default"} 0
# HELP rollout_info_replicas_unavailable The number of unavailable replicas per rollout.
# TYPE rollout_info_replicas_unavailable gauge
rollout_info_replicas_unavailable{name="guestbook-canary",namespace="default"} 0
# HELP rollout_info_replicas_updated The number of updated replicas per rollout.
# TYPE rollout_info_replicas_updated gauge
rollout_info_replicas_updated{name="guestbook-canary",namespace="default"} 0`,
},
}
for _, combination := range combinations {
testRolloutDescribe(t, combination.fakeRollout, combination.fakeCondition, combination.expectedResponse)
}
}
func testRolloutDescribe(t *testing.T, fakeRollout string, cond *v1alpha1.RolloutCondition, expectedResponse string) {
registry := prometheus.NewRegistry()
config := newFakeServerConfig(newFakeRollout(fakeRollout, cond))
registry.MustRegister(NewRolloutCollector(config.RolloutLister))
mux := http.NewServeMux()
mux.Handle(MetricsPath, promhttp.HandlerFor(registry, promhttp.HandlerOpts{}))
testHttpResponse(t, mux, expectedResponse, assert.Contains)
}
func TestIncRolloutReconcile(t *testing.T) {
expectedResponse := `
# HELP rollout_reconcile Rollout reconciliation performance.
# TYPE rollout_reconcile histogram
rollout_reconcile_bucket{name="ro-test",namespace="ro-namespace",le="0.01"} 1
rollout_reconcile_bucket{name="ro-test",namespace="ro-namespace",le="0.15"} 1
rollout_reconcile_bucket{name="ro-test",namespace="ro-namespace",le="0.25"} 1
rollout_reconcile_bucket{name="ro-test",namespace="ro-namespace",le="0.5"} 1
rollout_reconcile_bucket{name="ro-test",namespace="ro-namespace",le="1"} 1
rollout_reconcile_bucket{name="ro-test",namespace="ro-namespace",le="+Inf"} 1
rollout_reconcile_sum{name="ro-test",namespace="ro-namespace"} 0.001
rollout_reconcile_count{name="ro-test",namespace="ro-namespace"} 1
`
metricsServ := NewMetricsServer(newFakeServerConfig())
ro := &v1alpha1.Rollout{
ObjectMeta: metav1.ObjectMeta{
Name: "ro-test",
Namespace: "ro-namespace",
},
}
metricsServ.IncRolloutReconcile(ro, time.Millisecond)
testHttpResponse(t, metricsServ.Handler, expectedResponse, assert.Contains)
}
func TestGetStrategyAndTrafficRouter(t *testing.T) {
var tests = []struct {
strategy v1alpha1.RolloutStrategy
expectedStrategy string
expectedTrafficRouter string
}{
{
strategy: v1alpha1.RolloutStrategy{
BlueGreen: &v1alpha1.BlueGreenStrategy{},
},
expectedStrategy: "blueGreen",
expectedTrafficRouter: "",
},
{
strategy: v1alpha1.RolloutStrategy{
Canary: &v1alpha1.CanaryStrategy{},
},
expectedStrategy: "canary",
expectedTrafficRouter: "",
},
{
strategy: v1alpha1.RolloutStrategy{},
expectedStrategy: "none",
expectedTrafficRouter: "",
},
{
strategy: v1alpha1.RolloutStrategy{
Canary: &v1alpha1.CanaryStrategy{
TrafficRouting: &v1alpha1.RolloutTrafficRouting{
SMI: &v1alpha1.SMITrafficRouting{},
},
},
},
expectedStrategy: "canary",
expectedTrafficRouter: "SMI",
},
{
strategy: v1alpha1.RolloutStrategy{
Canary: &v1alpha1.CanaryStrategy{
TrafficRouting: &v1alpha1.RolloutTrafficRouting{
Istio: &v1alpha1.IstioTrafficRouting{},
},
},
},
expectedStrategy: "canary",
expectedTrafficRouter: "Istio",
},
{
strategy: v1alpha1.RolloutStrategy{
Canary: &v1alpha1.CanaryStrategy{
TrafficRouting: &v1alpha1.RolloutTrafficRouting{
ALB: &v1alpha1.ALBTrafficRouting{},
},
},
},
expectedStrategy: "canary",
expectedTrafficRouter: "ALB",
},
{
strategy: v1alpha1.RolloutStrategy{
Canary: &v1alpha1.CanaryStrategy{
TrafficRouting: &v1alpha1.RolloutTrafficRouting{
Ambassador: &v1alpha1.AmbassadorTrafficRouting{},
},
},
},
expectedStrategy: "canary",
expectedTrafficRouter: "Ambassador",
},
{
strategy: v1alpha1.RolloutStrategy{
Canary: &v1alpha1.CanaryStrategy{
TrafficRouting: &v1alpha1.RolloutTrafficRouting{
Nginx: &v1alpha1.NginxTrafficRouting{},
},
},
},
expectedStrategy: "canary",
expectedTrafficRouter: "Nginx",
},
{
strategy: v1alpha1.RolloutStrategy{
Canary: &v1alpha1.CanaryStrategy{
TrafficRouting: &v1alpha1.RolloutTrafficRouting{
AppMesh: &v1alpha1.AppMeshTrafficRouting{},
},
},
},
expectedStrategy: "canary",
expectedTrafficRouter: "AppMesh",
},
}
for _, test := range tests {
ro := &v1alpha1.Rollout{
Spec: v1alpha1.RolloutSpec{
Strategy: test.strategy,
},
}
strategy, trafficRouter := getStrategyAndTrafficRouter(ro)
assert.Equal(t, test.expectedStrategy, strategy)
assert.Equal(t, test.expectedTrafficRouter, trafficRouter)
}
}
func TestIncRolloutEvents(t *testing.T) {
expectedResponse := `
# HELP rollout_events_total Count of rollout events
# TYPE rollout_events_total counter
rollout_events_total{name="ro-test-1",namespace="ro-namespace",reason="BarEvent",type="Normal"} 1
rollout_events_total{name="ro-test-1",namespace="ro-namespace",reason="FooEvent",type="Normal"} 1
rollout_events_total{name="ro-test-2",namespace="ro-namespace",reason="BazEvent",type="Warning"} 2
`
metricsServ := NewMetricsServer(newFakeServerConfig())
MetricRolloutEventsTotal.WithLabelValues("ro-namespace", "ro-test-1", corev1.EventTypeNormal, "FooEvent").Inc()
MetricRolloutEventsTotal.WithLabelValues("ro-namespace", "ro-test-1", corev1.EventTypeNormal, "BarEvent").Inc()
MetricRolloutEventsTotal.WithLabelValues("ro-namespace", "ro-test-2", corev1.EventTypeWarning, "BazEvent").Inc()
MetricRolloutEventsTotal.WithLabelValues("ro-namespace", "ro-test-2", corev1.EventTypeWarning, "BazEvent").Inc()
testHttpResponse(t, metricsServ.Handler, expectedResponse, assert.Contains)
}

View File

@ -0,0 +1,143 @@
package metrics
import (
"github.com/prometheus/client_golang/prometheus"
log "github.com/sirupsen/logrus"
"k8s.io/apimachinery/pkg/labels"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
rolloutlister "github.com/argoproj/argo-rollouts/pkg/client/listers/rollouts/v1alpha1"
"github.com/argoproj/argo-rollouts/utils/conditions"
"github.com/argoproj/argo-rollouts/utils/defaults"
)
// RolloutPhase the phases of a reconcile can have
type RolloutPhase string
const (
// RolloutInvalidSpec means the rollout had an invalid spec during reconciliation
RolloutInvalidSpec RolloutPhase = "InvalidSpec"
// RolloutCompleted means the rollout finished the reconciliation with no remaining work
RolloutCompleted RolloutPhase = "Completed"
// RolloutProgressing means the rollout finished the reconciliation with remaining work
RolloutProgressing RolloutPhase = "Progressing"
// RolloutPaused means the rollout finished the reconciliation with a paused status
RolloutPaused RolloutPhase = "Paused"
// RolloutTimeout means the rollout finished the reconciliation with an timeout message
RolloutTimeout RolloutPhase = "Timeout"
// RolloutError means the rollout finished the reconciliation with an error
RolloutError RolloutPhase = "Error"
// RolloutAbort means the rollout finished the reconciliation in an aborted state
RolloutAbort RolloutPhase = "Abort"
)
type rolloutCollector struct {
store rolloutlister.RolloutLister
}
// NewRolloutCollector returns a prometheus collector for rollout metrics
func NewRolloutCollector(rolloutLister rolloutlister.RolloutLister) prometheus.Collector {
return &rolloutCollector{
store: rolloutLister,
}
}
// Describe implements the prometheus.Collector interface
func (c *rolloutCollector) Describe(ch chan<- *prometheus.Desc) {
ch <- MetricRolloutInfo
}
// Collect implements the prometheus.Collector interface
func (c *rolloutCollector) Collect(ch chan<- prometheus.Metric) {
rollouts, err := c.store.List(labels.NewSelector())
if err != nil {
log.Warnf("Failed to collect rollouts: %v", err)
return
}
for _, rollout := range rollouts {
collectRollouts(ch, rollout)
}
}
// calculatePhase calculates where a Rollout is in a RolloutCompleted, Paused, Error, Timeout, InvalidSpec, or ABorted phase
func calculatePhase(rollout *v1alpha1.Rollout) RolloutPhase {
phase := RolloutProgressing
progressing := conditions.GetRolloutCondition(rollout.Status, v1alpha1.RolloutProgressing)
if progressing != nil {
if progressing.Reason == conditions.NewRSAvailableReason {
phase = RolloutCompleted
}
if progressing.Reason == conditions.RolloutPausedReason {
phase = RolloutPaused
}
if progressing.Reason == conditions.FailedRSCreateReason {
phase = RolloutError
}
if progressing.Reason == conditions.TimedOutReason {
phase = RolloutTimeout
}
if progressing.Reason == conditions.RolloutAbortedReason {
phase = RolloutAbort
}
}
invalidSpec := conditions.GetRolloutCondition(rollout.Status, v1alpha1.InvalidSpec)
if invalidSpec != nil {
phase = RolloutInvalidSpec
}
return phase
}
func getStrategyAndTrafficRouter(rollout *v1alpha1.Rollout) (string, string) {
strategy := "none"
trafficRouter := ""
if rollout.Spec.Strategy.BlueGreen != nil {
strategy = "blueGreen"
} else if rollout.Spec.Strategy.Canary != nil {
strategy = "canary"
if rollout.Spec.Strategy.Canary.TrafficRouting != nil {
if rollout.Spec.Strategy.Canary.TrafficRouting.ALB != nil {
trafficRouter = "ALB"
}
if rollout.Spec.Strategy.Canary.TrafficRouting.Ambassador != nil {
trafficRouter = "Ambassador"
}
if rollout.Spec.Strategy.Canary.TrafficRouting.Istio != nil {
trafficRouter = "Istio"
}
if rollout.Spec.Strategy.Canary.TrafficRouting.Nginx != nil {
trafficRouter = "Nginx"
}
if rollout.Spec.Strategy.Canary.TrafficRouting.SMI != nil {
trafficRouter = "SMI"
}
if rollout.Spec.Strategy.Canary.TrafficRouting.AppMesh != nil {
trafficRouter = "AppMesh"
}
}
}
return strategy, trafficRouter
}
func collectRollouts(ch chan<- prometheus.Metric, rollout *v1alpha1.Rollout) {
strategyType, trafficRouter := getStrategyAndTrafficRouter(rollout)
calculatedPhase := calculatePhase(rollout)
addGauge := func(desc *prometheus.Desc, v float64, lv ...string) {
lv = append([]string{rollout.Namespace, rollout.Name}, lv...)
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, v, lv...)
}
addGauge(MetricRolloutInfo, 1, strategyType, trafficRouter, string(calculatedPhase))
addGauge(MetricRolloutInfoReplicasAvailable, float64(rollout.Status.AvailableReplicas))
addGauge(MetricRolloutInfoReplicasUnavailable, float64(rollout.Status.Replicas-rollout.Status.AvailableReplicas))
addGauge(MetricRolloutInfoReplicasDesired, float64(defaults.GetReplicasOrDefault(rollout.Spec.Replicas)))
addGauge(MetricRolloutInfoReplicasUpdated, float64(rollout.Status.UpdatedReplicas))
// DEPRECATED
addGauge(MetricRolloutPhase, boolFloat64(calculatedPhase == RolloutCompleted), strategyType, string(RolloutCompleted))
addGauge(MetricRolloutPhase, boolFloat64(calculatedPhase == RolloutProgressing), strategyType, string(RolloutProgressing))
addGauge(MetricRolloutPhase, boolFloat64(calculatedPhase == RolloutPaused), strategyType, string(RolloutPaused))
addGauge(MetricRolloutPhase, boolFloat64(calculatedPhase == RolloutTimeout), strategyType, string(RolloutTimeout))
addGauge(MetricRolloutPhase, boolFloat64(calculatedPhase == RolloutError), strategyType, string(RolloutError))
addGauge(MetricRolloutPhase, boolFloat64(calculatedPhase == RolloutAbort), strategyType, string(RolloutAbort))
}

21
controller/profiling.go Normal file
View File

@ -0,0 +1,21 @@
package controller
import (
"net/http"
"net/http/pprof"
)
// NewPProfServer returns a new pprof server to gather runtime profiling data
func NewPProfServer() *http.ServeMux {
mux := http.NewServeMux()
// TODO: Remove enumerating all pprof endpoints if/when a more ergonomic
// attachment solution is introduced. See: https://github.com/golang/go/issues/71213.
mux.HandleFunc("/debug/pprof/", pprof.Index)
mux.HandleFunc("/debug/pprof/cmdline/", pprof.Cmdline)
mux.HandleFunc("/debug/pprof/profile/", pprof.Profile)
mux.HandleFunc("/debug/pprof/symbol/", pprof.Symbol)
mux.HandleFunc("/debug/pprof/trace/", pprof.Trace)
return mux
}

View File

@ -1,32 +1,42 @@
# Contributing
## Before You Start
Argo Rollouts is written in Golang. If you do not have a good grounding in Go, try out [the tutorial](https://tour.golang.org/).
## Pre-requisites
Install:
* [docker](https://docs.docker.com/install/#supported-platforms)
* [golang](https://golang.org/)
* [dep](https://github.com/golang/dep)
* [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
* [kustomize](https://github.com/kubernetes-sigs/kustomize/releases)
* [minikube](https://kubernetes.io/docs/setup/minikube/) or Docker for Desktop
- [docker](https://docs.docker.com/install/#supported-platforms)
- [golang](https://golang.org/)
- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)
- [kustomize](https://github.com/kubernetes-sigs/kustomize/releases) >= 4.5.5
- [k3d](https://k3d.io/) recommended
Argo Rollout additionally uses
* `controller-gen` binary in order to auto-generate the crd manifest
* `golangci-lint` to lint the project.
Kustomize is required for unit tests (`make test` is using it), so you [must install it](https://kubectl.docs.kubernetes.io/installation/kustomize/)
locally if you wish to make code contributions to Argo Rollouts.
Argo Rollout additionally uses the following tools
- `golangci-lint` to lint the project.
- `protoc` and `swagger-codegen` to generate proto related files
- `yarn` to build the UI
Run the following commands to install them:
```bash
go get -u github.com/kubernetes-sigs/controller-tools/cmd/controller-gen
# macOS
brew install golangci-lint
# linux
go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
```
Brew users can quickly install the lot:
```bash
brew install go dep kubectl kustomize
brew install go kubectl kustomize golangci-lint protobuf swagger-codegen k3d
```
Set up environment variables (e.g. is `~/.bashrc`):
@ -45,18 +55,26 @@ cd ~/go/src/github.com/argoproj/argo-rollouts
## Building
Ensure dependencies are up to date first:
```shell
dep ensure -v
```
`go.mod` is used, so the `go build/test` commands automatically install the needed dependencies
The `make controller` command will build the controller.
* `make codegen` - Runs the code generator that creates the informers, client, lister, and deepcopies from the types.go and modifies the open-api spec.
- `make install-tools-local` - Runs scripts to install codegen utility CLIs necessary for codegen.
- `make codegen` - Runs the code generator that creates the informers, client, lister, and deepcopies from the types.go and modifies the open-api spec.
## Running Tests
## Running Controller Locally
It is much easier to run and debug if you run Argo Rollout in your local machine than in the Kubernetes cluster.
```bash
cd ~/go/src/github.com/argoproj/argo-rollouts
go run ./cmd/rollouts-controller/main.go
```
When running locally it will connect to whatever kubernetes cluster you have configured in your kubeconfig. You will need to make sure to install the Argo Rollout CRDs into your local cluster, and have the `argo-rollouts` namespace.
## Running Unit Tests
To run unit tests:
@ -64,17 +82,170 @@ To run unit tests:
make test
```
## Running E2E tests
## Running Locally
The end-to-end tests need to run against a kubernetes cluster with the Argo Rollouts controller
running.
It is much easier to run and debug if you run Argo Rollout in your local machine than in the Kubernetes cluster.
Start and prepare your cluster for e2e tests:
```
k3d cluster create
kubectl create ns argo-rollouts
kubectl apply -k manifests/crds
kubectl apply -f test/e2e/crds
```
The rollout controller can be started with the command:
```
make start-e2e
```
Then run the e2e tests:
```
make test-e2e
```
To run a subset of e2e tests, you need to specify the suite with `-run`, and the specific test regex with `-testify.m`.
```
E2E_TEST_OPTIONS="-run 'TestCanarySuite' -testify.m 'TestCanaryScaleDownOnAbortNoTrafficRouting'" make test-e2e
```
Available test suites [are the following](https://github.com/argoproj/argo-rollouts/tree/master/test/e2e):
* `TestBlueGreenSuite`
* `TestCanarySuite`
* `TestAnalysisSuite`
* `TestExperimentSuite`
* `TestFunctionalSuite`
* `TestRollbackSuite`
* `TestIstioSuite`
* `TestHeaderRoutingSuite` (Istio only)
* `TestMirrorRouteSuite` (Istio only)
* `TestAPISIXSuite`
* `TestAppMeshSuite`
* `TestAWSSuite`
* `StepPluginSuite`
* `SMISuite` (SMI is [deprecated](https://www.cncf.io/blog/2023/10/03/cncf-archives-the-service-mesh-interface-smi-project/))
* `SMIIngressSuite` (SMI is [deprecated](https://www.cncf.io/blog/2023/10/03/cncf-archives-the-service-mesh-interface-smi-project/))
## Running the UI
If you'd like to run the UI locally, you first need a running Rollouts controller. This can be a locally running controller with a k3d cluster, as described above, or a controller running in a remote Kubernetes cluster.
In order for the local React app to communicate with the controller and Kubernetes API, run the following to open a port forward to the dashboard:
```bash
cd ~/go/src/github.com/argoproj/argo-rollouts
make controller
./dist/rollouts-controller
kubectl argo rollouts dashboard
```
Note that you can also build the API server and run this instead,
```
make plugin
./dist/kubectl-argo-rollouts dashboard
```
In another terminal, run the following to start the UI:
```bash
cd ui
yarn install
yarn start
```
## Getting your feature accepted
To be eligible for inclusion in a minor release, a new feature must meet the following criteria before the releases RC
date.
If it is a large feature that involves significant design decisions, that feature must be described in a Proposal.
The feature PR must include:
* Tests (passing)
* Documentation
* If necessary, a note in the Upgrading docs for the planned minor release
* The PR must be reviewed, approved, and merged by an Approver.
If these criteria are not met by the RC date, the feature will be ineligible for inclusion in the RC series or GA for
that minor release. It will have to wait for the next minor release.
## Controller architecture
Argo Rollouts is actually a collection of individual controllers
that handle a specific aspect of Progressive Delivery.
[![Internal Architecture](architecture-assets/internal-architecture.png)](architecture-assets/internal-architecture.png)
The controllers are:
- [Rollout Controller](https://github.com/argoproj/argo-rollouts/blob/master/rollout/controller.go)
- [Service Controller](https://github.com/argoproj/argo-rollouts/blob/master/service/service.go)
- [Ingress Controller](https://github.com/argoproj/argo-rollouts/blob/master/ingress/ingress.go)
- [Experiment Controller](https://github.com/argoproj/argo-rollouts/blob/master/experiments/controller.go)
- [AnalysisRun Controller](https://github.com/argoproj/argo-rollouts/blob/master/analysis/controller.go)
### Tips
1. You can run the tests using a different kubeconfig by setting the `KUBECONFIG` environment variable:
```shell
KUBECONFIG=~/.kube/minikube make start-e2e
KUBECONFIG=~/.kube/minikube make test-e2e
```
2. To run a specific e2e test, set the `E2E_TEST_OPTIONS` environment variable to specify the test
(or test regex):
```shell
make test-e2e E2E_TEST_OPTIONS="-testify.m ^TestRolloutRestart$"
```
3. The e2e tests are designed to run as quickly as possible, eliminating readiness and termination
delays. However, it is often desired to artificially slow down the tests for debugging purposes,
as well as to understand what the test is doing. To delay startup and termination of pods, set the
`E2E_POD_DELAY` to an integer value in seconds. This environment variable is often coupled with
`E2E_TEST_OPTIONS` to debug and slow down a specific test.
```shell
make test-e2e E2E_POD_DELAY=10
```
4. Increasing the timeout. The E2E tests time out waiting on conditions to be met within 60 seconds.
If debugging the rollout controller, it may be useful to increase this timeout while say sitting
at a debugger breakpoint:
```shell
make test-e2e E2E_WAIT_TIMEOUT=999999
```
5. The e2e tests leverage a feature of the controller allowing the controller to be sharded with
a user-specific "instance id" label. This allows the tests to operate only on rollouts with the
specified label, and prevents any other controllers (including the system rollout controller),
from also operating on the same set of rollouts. This value can be changed (from the default of
`argo-rollouts-e2e`), using the `E2E_INSTANCE_ID` environment variable:
```shell
make start-e2e E2E_INSTANCE_ID=foo
make test-e2e E2E_INSTANCE_ID=foo
```
Alternatively, the e2e tests can be run against the system controller (i.e. without an instance id):
```shell
make start-e2e E2E_INSTANCE_ID=''
```
6. Working on CRDs? While editing them directly works when you are finding the shape of things you want, the final CRDs are autogenerated. Make sure to regenerate them by running `make gen-crd` before submitting PRs. They are controlled by the relevant annotations in the types file:
eg: Analysis Templates are controlled by annotations in `pkg/apis/rollouts/v1alpha1/analysis_types.go`.
Refer to https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html and https://book.kubebuilder.io/reference/markers/crd-validation.html for more info on annotations you can use.
## Running Local Containers
You may need to run containers locally, so here's how:
@ -109,10 +280,43 @@ Install the manifests:
kubectl -n argo-rollouts apply -f manifests/install.yaml
```
## Upgrading Kubernetes Libraries
Argo Rollouts has a dependency on the kubernetes/kubernetes repo for some of the functionality that has not been
pushed into the other kubernetes repositories yet. In order to import the kubernetes/kubernetes repo, all of the
associated repos have to pinned to the correct version specified by the kubernetes/kubernetes release. The
`./hack/update-k8s-dependencies.sh` updates all the dependencies to the those correct versions.
## Upgrading Notifications Engine
Argo Rollouts has a dependency on the [argoproj/notifications-engines](https://github.com/argoproj/notifications-engine) repo
for the notifications functionality and related documentation.
This is updated by upgrading the Go library in `go.mod` by running the commands:
```shell
go get github.com/argoproj/notifications-engine@LATEST_COMMIT_HASH
go mod tidy
```
Next the latest notifications documentation can be imported by running:
```shell
make docs
```
## Documentation Changes
If you need to run the mkdocs server, you will need to do the following:
* Follow the instruction guide to install [mkDocs](https://www.mkdocs.org/#installation)
* Install the `material` theme with the [following guide](https://squidfunk.github.io/mkdocs-material/#quick-start)
Modify contents in `docs/` directory.
Afterwards, you can run `mkdocs serve` and access your documentation at [http://127.0.0.1:8000/](http://127.0.0.1:8000/)
Preview changes in your browser by visiting http://localhost:8000 after running:
```shell
make serve-docs
```
To publish changes, run:
```shell
make release-docs
```

121
docs/FAQ.md Normal file
View File

@ -0,0 +1,121 @@
# FAQ
Be sure to read the [Best practices page](../best-practices) as well.
## General
### Does Argo Rollouts depend on Argo CD or any other Argo project?
Argo Rollouts is a standalone project. Even though it works great with Argo CD and other Argo projects, it can be used
on its own for Progressive Delivery scenarios. More specifically, Argo Rollouts does **NOT** require that you also have installed Argo CD on the same cluster.
### How does Argo Rollouts integrate with Argo CD?
Argo CD understands the health of Argo Rollouts resources via Argo CDs [Lua health check](https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/health.md). These Health checks understand when the Argo Rollout objects are Progressing, Suspended, Degraded, or Healthy. Additionally, Argo CD has Lua based Resource Actions that can mutate an Argo Rollouts resource (i.e. unpause a Rollout).
As a result, an operator can build automation to react to the states of the Argo Rollouts resources. For example, if a Rollout created by Argo CD is paused, Argo CD detects that and marks the Application as suspended. Once the new version is verified to be good, the operator can use Argo CDs resume resource action to unpause the Rollout so it can continue to make progress.
### Can we run the Argo Rollouts kubectl plugin commands via Argo CD?
Argo CD supports running Lua scripts to modify resource kinds (i.e. suspending a CronJob by setting the `.spec.suspend` to true). These Lua Scripts can be configured in the argocd-cm ConfigMap or upstreamed to the Argo CD's [resource_customizations](https://github.com/argoproj/argo-cd/tree/master/resource_customizations) directory. These custom actions have two Lua scripts: one to modify the said resource and another to detect if the action can be executed (i.e. A user should not be able to resuming an unpaused Rollout). Argo CD allows users to execute these actions via the UI or CLI.
In the CLI, a user (or a CI system) can run
```bash
argocd app actions run <APP_NAME> <ACTION>
```
This command executes the action listed on the application listed.
In the UI, a user can click the hamburger button of a resource and the available actions will appear in a couple of seconds. The user can click and confirm that action to execute it.
Currently, the Rollout action has two available custom actions in Argo CD: resume and restart.
* Resume unpauses a Rollout with a PauseCondition
* Restart: Sets the RestartAt and causes all the pods to be restarted.
### Does Argo Rollout require a Service Mesh like Istio?
Argo Rollouts does not require a service mesh or ingress controller to be used. In the absence of a traffic routing provider, Argo Rollouts manages the replica counts of the canary/stable ReplicaSets to achieve the desired canary weights. Normal Kubernetes Service routing (via kube-proxy) is used to split traffic between the ReplicaSets.
### Does Argo Rollout require we follow GitOps in my organization?
Argo Rollouts is a Kubernetes controller that will react to any manifest change regardless of how the manifest was changed. The manifest can be changed
by a Git commit, an API call, another controller or even a manual `kubectl` command. You can use Argo Rollouts with any traditional CI/CD
solution that does not follow the GitOps approach.
### Can we run the Argo Rollouts controller in HA mode?
Yes. A k8s cluster can run multiple replicas of Argo-rollouts controllers to achieve HA. To enable this feature, run the controller with `--leader-elect` flag and increase the number of replicas in the controller's deployment manifest. The implementation is based on the [k8s client-go's leaderelection package](https://pkg.go.dev/k8s.io/client-go/tools/leaderelection#section-documentation). This implementation is tolerant to *arbitrary clock skew* among replicas. The level of tolerance to skew rate can be configured by setting `--leader-election-lease-duration` and `--leader-election-renew-deadline` appropriately. Please refer to the [package documentation](https://pkg.go.dev/k8s.io/client-go/tools/leaderelection#pkg-overview) for details.
### Can we install Argo Rollouts centrally in a cluster and manage Rollout resources in external clusters?
No you cannot do that (even though Argo CD can work that way). This is by design because the Rollout is a custom resource unknown to vanilla Kubernetes. You need the Rollout CRD as well as the controller in the deployment cluster (every cluster that will use workloads with Rollouts).
### What is the version skew policy between the controller and the kubectl plugin?
The Argo Rollout CLI/Kubectl plugin just patches the Rollout object or reads fields from it. [There is no separate "Argo Rollouts API"](../best-practices#there-is-no-argo-rollouts-api). Old versions of the plugin might not understand new fields that are added in the [Rollout specification](../features/specification/). We have never made a breaking change intentionally (removed something from the Rollout Spec). So old clients should work even with newer Rollout versions (excluding new features).
## Rollouts
### Which deployment strategies does Argo Rollouts support?
Argo Rollouts supports BlueGreen, Canary, and Rolling Update. Additionally, Progressive Delivery features can be enabled on top of the blue-green/canary update, which further provides advanced deployment such as automated analysis and rollback.
### Does the Rollout object follow the provided strategy when it is first created?
As with Deployments, Rollouts does not follow the strategy parameters on the initial deploy. The controller tries to get the Rollout into a steady state as fast as possible by creating a fully scaled up ReplicaSet from the provided `.spec.template`. Once the Rollout has a stable ReplicaSet to transition from, the controller starts using the provided strategy to transition the previous ReplicaSet to the desired ReplicaSet.
### How does BlueGreen rollback work?
A BlueGreen Rollout keeps the old ReplicaSet up and running for 30 seconds or the value of the scaleDownDelaySeconds. The controller tracks the remaining time before scaling down by adding an annotation called `argo-rollouts.argoproj.io/scale-down-deadline` to the old ReplicaSet. If the user applies the old Rollout manifest before the old ReplicaSet scales down, the controller does something called a fast rollback. The controller immediately switches the active services selector back to the old ReplicaSets rollout-pod-template-hash and removes the scaled down annotation from that ReplicaSet. The controller does not do any of the normal operations when trying to introduce a new version since it is trying to revert as fast as possible. A non-fast-track rollback occurs when the scale down annotation has past and the old ReplicaSet has been scaled down. In this case, the Rollout treats the ReplicaSet like any other new ReplicaSet and follows the usual procedure for deploying a new ReplicaSet.
### What is the `argo-rollouts.argoproj.io/managed-by-rollouts` annotation?
Argo Rollouts adds an `argo-rollouts.argoproj.io/managed-by-rollouts` annotation to Services and Ingresses that the controller modifies. They are used when the Rollout managing these resources is deleted and the controller tries to revert them back into their previous state.
## Rollbacks
### Does Argo Rollouts write back in Git when a rollback takes place?
No. Argo Rollouts doesn't read/write anything to Git. Actually Argo Rollouts knows nothing about Git repositories (only Argo CD has this information if it manages the Rollout). When a rollback takes place, Argo Rollouts marks the application as "degraded" and changes the version on the cluster back to the known stable one.
### If I use both Argo Rollouts and Argo CD wouldn't I have an endless loop in the case of a Rollback?
No there is no endless loop. As explained already in the previous question, Argo Rollouts doesn't tamper with Git in any way. If you use both Argo projects together, the sequence of events for a rollback is the following:
1. Version N runs on the cluster as a Rollout (managed by Argo CD). The Git repository is updated with version N+1 in the Rollout/Deployment manifest
1. Argo CD sees the changes in Git and updates the live state in the cluster with the new Rollout object
1. Argo Rollouts takes over as it watches for all changes in Rollout Objects. Argo Rollouts is completely oblivious to what is happening in Git. It only cares about what is happening with Rollout objects that are live in the cluster.
1. Argo Rollouts tries to apply version N+1 with the selected strategy (e.g. blue/green)
1. Version N+1 fails to deploy for some reason
1. Argo Rollouts scales back again (or switches traffic back) to version N in the cluster. **No change in Git takes place from Argo Rollouts**
1. Cluster is running version N and is completely healthy
1. The Rollout is marked as "Degraded" both in ArgoCD and Argo Rollouts.
1. Argo CD syncs take no further action as the Rollout object in Git is exactly the same as in the cluster. They both mention version N+1
### So how can I make Argo Rollouts write back in Git when a rollback takes place?
You don't need to do that if you simply want to go back to the previous version using Argo CD. When a deployment fails, Argo Rollouts automatically sets the cluster back to the stable/previous version as explained in the previous question. You don't need to write anything in Git to achieve this. The cluster is still healthy and you have avoided downtime. You are then expected to fix the issue and roll-forward (i.e. deploy the next version) if you want to follow GitOps in a pedantic manner. If you want Argo Rollouts to write back in Git after a failed deployment then you need to orchestrate this with an external system or write custom glue code. But this is normally not needed.
### What is the relationship between Rollbacks with Argo Rollouts and Rollbacks with Argo CD?
They are completely unrelated. Argo Rollouts "rollbacks" switch the cluster back to the previous version as explained in the previous question. They don't touch or affect Git in any way. Argo CD [rollbacks](https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_app_rollback/) simply point the cluster back a previous Git hash. Normally if you have Argo Rollouts, you don't need to use the Argo CD rollback command.
### How can I deploy multiple services in a single step and roll them back according to their dependencies?
The Rollout specification focuses on a single application/deployment. Argo Rollouts knows nothing about application dependencies. If you want to deploy multiple applications together in a smart way (e.g. automatically rollback a frontend if backend deployment fails) you need to write your own solution
on top of Argo Rollouts. In most cases, you would need one Rollout resource for each application that you
are deploying. Ideally you should also make your services backwards and forwards compatible (i.e. frontend should be able to work with both backend-preview and backend-active).
### How can I run my own custom tests (e.g. smoke tests) to decide if a Rollback should take place or not?
Use a custom [Job](https://argo-rollouts.readthedocs.io/en/stable/analysis/job/) or [Web](https://argo-rollouts.readthedocs.io/en/stable/analysis/web/) Analysis. You can pack all your smoke tests in a single container and run them as a Job analysis. Argo Rollouts will use the results of the analysis to automatically rollback if the tests fail.
## Experiments
### Why doesn't my Experiment end?
An Experiments duration is controlled by the `.spec.duration` field and the analyses created for the Experiment. The `.spec.duration` indicates how long the ReplicaSets created by the Experiment should run. Once the duration passes, the experiment scales down the ReplicaSets it created and marks the AnalysisRuns successful unless the `requiredForCompletion` field is used in the Experiment. If enabled, the ReplicaSets are still scaled-down, but the Experiment does not finish until the Analysis Run finishes.
Additionally, the `.spec.duration` is an optional field. If its left unset, and the Experiment creates no AnalysisRuns, the ReplicaSets run indefinitely. The Experiment creates AnalysisRuns without the `requiredForCompletion` field, the Experiment fails only when the AnalysisRun created fails or errors out. If the `requiredForCompletion` field is set, the Experiment only marks itself as Successful and scales down the created ReplicaSets when the AnalysisRun finishes Successfully.
Additionally, an Experiment ends if the `.spec.terminate` field is set to true regardless of the state of the Experiment.
## Analysis
### Why doesn't my AnalysisRun end?
The AnalysisRuns duration is controlled by the metrics specified. Each Metric can specify an interval, count, and various limits (ConsecutiveErrorLimit, InconclusiveLimit, FailureLimit). If the interval is omitted, the AnalysisRun takes a single measurement. The count indicates how many measurements should be taken and causes the AnalysisRun to run indefinitely if omitted. The ConsecutiveErrorLimit, InconclusiveLimit, and FailureLimit define the thresholds allowed before putting the rollout into a completed state.
Additionally, an AnalysisRun ends if the `.spec.terminate` field is set to true regardless of the state of the AnalysisRun.
### What is the difference between failures and errors?
Failures are when the failure condition evaluates to true or an AnalysisRun without a failure condition evaluates the success condition to false. Errors are when the controller has any kind of issue with taking a measurement (i.e. invalid Prometheus URL).

140
docs/analysis/cloudwatch.md Normal file
View File

@ -0,0 +1,140 @@
# CloudWatch Metrics
!!! important
Available since v1.1.0
A [CloudWatch](https://aws.amazon.com/cloudwatch/) using [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html) can be used to obtain measurements for analysis.
## Setup
You can use CloudWatch Metrics if you have used to EKS or not. This analysis is required IAM permission for `cloudwatch:GetMetricData` and you need to define `AWS_REGION` in Deployment for `argo-rollouts`.
### EKS
If you create new cluster on EKS, you can attach [cluster IAM role](https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html) or attach [IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).
If you have already cluster on EKS, you can attach [IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).
### not EKS
You need to define access key and secret key.
```yaml
apiVersion: v1
kind: Secret
metadata:
name: cloudwatch-secret
type: Opaque
stringData:
AWS_ACCESS_KEY_ID: <aws-access-key-id>
AWS_SECRET_ACCESS_KEY: <aws-secret-access-key>
AWS_REGION: <aws-region>
```
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: argo-rollouts
spec:
template:
spec:
containers:
- name: argo-rollouts
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: cloudwatch-secret
key: AWS_ACCESS_KEY_ID
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: cloudwatch-secret
key: AWS_SECRET_ACCESS_KEY
- name: AWS_REGION
valueFrom:
secretKeyRef:
name: cloudwatch-secret
key: AWS_REGION
```
## Configuration
- `metricDataQueries` - GetMetricData query: [MetricDataQuery](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDataQuery.html)
- `interval` - optional interval, e.g. 30m, default: 5m
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: success-rate
spec:
metrics:
- name: success-rate
interval: 1m
successCondition: "len(result[0].Values) >= 5 and all(result[0].Values, {# <= 0.01})"
failureLimit: 3
provider:
cloudWatch:
interval: 30m
metricDataQueries:
- {
"id": "rate",
"expression": "errors / requests"
}
- {
"id": "errors",
"metricStat": {
"metric": {
"namespace": "app",
"metricName": "errors"
},
"period": 300,
"stat": "Sum",
"unit": "Count"
},
"returnData": false
}
- {
"id": "requests",
"metricStat": {
"metric": {
"namespace": "app",
"metricName": "requests"
},
"period": 300,
"stat": "Sum",
"unit": "Count"
},
"returnData": false
}
```
## debug
You can confirm the results value in `AnalysisRun`.
```bash
$ kubectl get analysisrun/rollouts-name-xxxxxxxxxx-xx -o yaml
(snip)
status:
metricResults:
- count: 2
failed: 1
measurements:
- finishedAt: "2021-09-08T17:29:14Z"
phase: Failed
startedAt: "2021-09-08T17:29:13Z"
value: '[[0.0029476787030213707 0.006100422336931018 0.01020408163265306 0.007932573128408527
0.00589622641509434 0.006339144215530904]]'
- finishedAt: "2021-09-08T17:30:14Z"
phase: Successful
startedAt: "2021-09-08T17:30:14Z"
value: '[[0.004484304932735426 0.0058374494836102376 0.006736068585425597 0.008444444444444444
0.006859756097560976 0.0045385779122541605]]'
name: success-rate
phase: Running
successful: 1
phase: Running
startedAt: "2021-09-08T17:29:14Z"
```

243
docs/analysis/datadog.md Normal file
View File

@ -0,0 +1,243 @@
# Datadog Metrics
A [Datadog](https://www.datadoghq.com/) query can be used to obtain measurements for analysis.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: loq-error-rate
spec:
args:
- name: service-name
metrics:
- name: error-rate
interval: 5m
successCondition: result <= 0.01
failureLimit: 3
provider:
datadog:
apiVersion: v2
interval: 5m
query: |
sum:requests.error.rate{service:{{args.service-name}}}
```
The field `apiVersion` refers to the API version of Datadog (v1 or v2). Default value is `v1` if this is omitted. See "Working with Datadog API v2" below for more information.
Datadog api and app tokens can be configured in a kubernetes secret in argo-rollouts namespace.
```yaml
apiVersion: v1
kind: Secret
metadata:
name: datadog
type: Opaque
stringData:
address: https://api.datadoghq.com
api-key: <datadog-api-key>
app-key: <datadog-app-key>
```
`apiVersion` here is different from the `apiVersion` from the Datadog configuration above.
!!! important
###### Namespaced secret
Datadog integration supports referring to secrets inside the same namespace as argo-rollouts (by default)
or referring to a secret in the same namespace as the `AnalysisTemplate`.
To use a secret from the `AnalysisTemplate` namespace, include a `secretRef` section in the template, specifying the `name` of the secret and setting the `namespaced` property to `true`.
The process for retrieving Datadog credentials is as follows:
1. **If a `secretRef` is defined in the `AnalysisTemplate`:** Argo Rollouts will search for the secret with the specified name in the namespace where the template resides.
2. **If the secret is not found in the specified namespace:** Argo Rollouts will then check the environment variables.
3. **If the credentials are not found in environment variables:** Argo Rollouts will look for a secret named "Datadog" in the namespace where Argo Rollouts itself is deployed.
---
Let me know if there's anything else you'd like to adjust!
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: loq-error-rate
spec:
args:
- name: service-name
metrics:
- name: error-rate
interval: 5m
successCondition: result <= 0.01
failureLimit: 3
provider:
datadog:
apiVersion: v2
interval: 5m
secretRef:
name: "mysecret"
namespaced: true
query: |
sum:requests.error.rate{service:{{args.service-name}}}
```
### Working with Datadog API v2
!!! important
While some basic v2 functionality is working in earlier versions, the new properties of `formula` and `queries` are only available as of v1.7
#### Moving to v2
If your old v1 was just a simple metric query - no formula as part of the query - then you can just move to v2 by updating the `apiVersion` in your existing Analysis Template, and everything should work.
If you have a formula, you will need to update how you configure your metric. Here is a before/after example of what your Analysis Template should look like:
Before:
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: log-error-rate
spec:
args:
- name: service-name
metrics:
- name: error-rate
interval: 30s
successCondition: default(result, 0) < 10
failureLimit: 3
provider:
datadog:
apiVersion: v1
interval: 5m
query: "moving_rollup(sum:requests.errors{service:{{args.service-name}}}.as_count(), 60, 'sum') / sum:requests{service:{{args.service-name}}}.as_count()"
```
After:
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: loq-error-rate
spec:
args:
- name: service-name
metrics:
- name: error-rate
# Polling rate against the Datadog API
interval: 30s
successCondition: default(result, 0) < 10
failureLimit: 3
provider:
datadog:
apiVersion: v2
# The window of time we are looking at in DD. Basically we will fetch data from (now-5m) to now.
interval: 5m
queries:
a: sum:requests.errors{service:{{args.service-name}}}.as_count()
b: sum:requests{service:{{args.service-name}}}.as_count()
formula: "moving_rollup(a, 60, 'sum') / b"
```
#### Examples
Simple v2 query with no formula
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: canary-container-restarts
spec:
args:
# This is set in rollout using the valueFrom: podTemplateHashValue functionality
- name: canary-hash
- name: service-name
- name: restarts.initial-delay
value: "60s"
- name: restarts.max-restarts
value: "4"
metrics:
- name: kubernetes.containers.restarts
initialDelay: "{{ args.restarts.initial-delay }}"
interval: 15s
failureCondition: default(result, 0) > {{ args.restarts.max-restarts }}
failureLimit: 0
provider:
datadog:
apiVersion: v2
interval: 5m
queries:
# The key is arbitrary - you will use this key to refer to the query if you use a formula.
q: "max:kubernetes.containers.restarts{service-name:{{args.service-name}},rollouts_pod_template_hash:{{args.canary-hash}}}"
```
### Tips
#### Datadog Results
Datadog queries can return empty results if the query takes place during a time interval with no metrics. The Datadog provider will return a `nil` value yielding an error during the evaluation phase like:
```
invalid operation: < (mismatched types <nil> and float64)
```
However, empty query results yielding a `nil` value can be handled using the `default()` function. Here is a succeeding example using the `default()` function:
```yaml
successCondition: default(result, 0) < 0.05
```
#### Metric aggregation (v2 only)
By default, Datadog analysis run is configured to use `last` metric aggregator when querying Datadog v2 API. This value can be overridden by specifying a new `aggregator` value from a list of supported aggregators (`avg,min,max,sum,last,percentile,mean,l2norm,area`) for the V2 API ([docs](https://docs.datadoghq.com/api/latest/metrics/#query-scalar-data-across-multiple-products)).
For example, using count-based distribution metric (`count:metric{*}.as_count()`) with values `1,9,3,7,5` in a given `interval` will make `last` aggregator return `5`. To return a sum of all values (`25`), set `aggregator: sum` in Datadog provider block and use `moving_rollup()` function to aggregate values in the specified rollup interval. These functions can be combined in a `formula` to perform additional calculations:
```yaml
...<snip>
metrics:
- name: error-percentage
interval: 30s
successCondition: default(result, 0) < 5
failureLimit: 3
provider:
datadog:
apiVersion: v2
interval: 5m
aggregator: sum # override default aggregator
queries:
a: count:requests.errors{service:my-service}.as_count()
b: count:requests{service:my-service}.as_count()
formula: "moving_rollup(a, 300, 'sum') / moving_rollup(b, 300, 'sum') * 100" # percentage of requests with errors
```
#### Templates and Helm
Helm and Argo Rollouts both try to parse things between `{{ ... }}` when rendering templates. If you use Helm to deliver your manifests, you will need to escape `{{ args.whatever }}`. Using the example above, here it is set up for Helm:
```yaml
...<snip>
metrics:
- name: kubernetes.containers.restarts
initialDelay: "{{ `{{ args.restarts.initial-delay }}` }}"
interval: 15s
failureCondition: default(result, 0) > {{ `{{ args.restarts.max-restarts }}` }}
failureLimit: 0
provider:
datadog:
apiVersion: v2
interval: 5m
queries:
q: "{{ `max:kubernetes.containers.restarts{kube_app_name:{{args.kube_app_name}},rollouts_pod_template_hash:{{args.canary-hash}}}` }}"
```
#### Rate Limits
For the `v1` API, you ask for an increase on the `api/v1/query` route.
For the `v2` API, the Ratelimit-Name you ask for an increase in is the `query_scalar_public`.

35
docs/analysis/graphite.md Normal file
View File

@ -0,0 +1,35 @@
# Graphite Metrics
A [Graphite](https://graphiteapp.org/) query can be used to obtain measurements for analysis.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: success-rate
spec:
args:
- name: service-name
metrics:
- name: success-rate
interval: 5m
# Note that the Argo Rollouts Graphite metrics provider returns results as an array of float64s with 6 decimal places.
successCondition: results[0] >= 90.000000
failureLimit: 3
provider:
graphite:
address: http://graphite.example.com:9090
query: |
target=summarize(
asPercent(
sumSeries(
stats.timers.httpServerRequests.app.{{args.service-name}}.exception.*.method.*.outcome.{CLIENT_ERROR,INFORMATIONAL,REDIRECTION,SUCCESS}.status.*.uri.*.count
),
sumSeries(
stats.timers.httpServerRequests.app.{{args.service-name}}.exception.*.method.*.outcome.*.status.*.uri.*.count
)
),
'5min',
'avg'
)
```

41
docs/analysis/influxdb.md Normal file
View File

@ -0,0 +1,41 @@
# InfluxDB Metrics
An [InfluxDB](https://www.influxdata.com/) query using [Flux](https://docs.influxdata.com/influxdb/cloud/query-data/get-started/query-influxdb/) can be used to obtain measurements for analysis.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: error-rate
spec:
args:
- name: application-name
metrics:
- name: error-rate
# NOTE: To be consistent with the prometheus metrics provider InfluxDB query results are returned as an array.
# In the example we're looking at index 0 of the returned array to obtain the value we're using for the success condition
successCondition: result[0] <= 0.01
provider:
influxdb:
profile: my-influxdb-secret # optional, defaults to 'influxdb'
query: |
from(bucket: "app_istio")
|> range(start: -15m)
|> filter(fn: (r) => r["destination_workload"] == "{{ args.application-name }}")
|> filter(fn: (r) => r["_measurement"] == "istio:istio_requests_errors_percentage:rate1m:5xx")
```
An InfluxDB access profile can be configured using a Kubernetes secret in the `argo-rollouts` namespace. Alternate accounts can be used by creating more secrets of the same format and specifying which secret to use in the metric provider configuration using the `profile` field.
```yaml
apiVersion: v1
kind: Secret
metadata:
name: influxdb
type: Opaque
stringData:
address: <infuxdb-url>
authToken: <influxdb-auth-token>
org: <influxdb-org>
```

36
docs/analysis/job.md Normal file
View File

@ -0,0 +1,36 @@
# Job Metrics
A Kubernetes Job can be used to run analysis. When a Job is used, the metric is considered
successful if the Job completes and had an exit code of zero, otherwise it is failed.
```yaml
metrics:
- name: test
provider:
job:
metadata:
annotations:
foo: bar # annotations defined here will be copied to the Job object
labels:
foo: bar # labels defined here will be copied to the Job object
spec:
backoffLimit: 1
template:
spec:
containers:
- name: test
image: my-image:latest
command:
[my-test-script, my-service.default.svc.cluster.local]
restartPolicy: Never
```
## Control where the jobs run
Argo Rollouts allows you some control over where your metric job runs.
The following env vars can be set on the Rollouts controller:
`ARGO_ROLLOUTS_ANALYSIS_JOB_NAMESPACE` will allow you to run your metric jobs in a namespace other than the default (which can vary depending on if you are running Rollouts in cluster mode or not).
`ARGO_ROLLOUTS_ANALYSIS_JOB_KUBECONFIG` will allow running metric jobs in a different cluster entirely. This should be a path to the kubeconfig you want to use.

155
docs/analysis/kayenta.md Normal file
View File

@ -0,0 +1,155 @@
## Kayenta (e.g. Mann-Whitney Analysis)
Analysis can also be done as part of an [Experiment](../features/experiment.md).
This example starts both a canary and baseline ReplicaSet. The ReplicaSets run for 1 hour, then
scale down to zero. Call out to Kayenta to perform Mann-Whintney analysis against the two pods. Demonstrates ability to start a
short-lived experiment and an asynchronous analysis.
This example demonstrates:
* The ability to start an [Experiment](../features/experiment.md) as part of rollout steps, which launches multiple ReplicaSets (e.g. baseline & canary)
* The ability to reference and supply pod-template-hash to an AnalysisRun
* Kayenta metrics
=== "Rollout"
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: guestbook
labels:
app: guestbook
spec:
strategy:
canary:
steps:
- experiment:
duration: 1h
templates:
- name: baseline
specRef: stable
- name: canary
specRef: canary
analyses:
- templateName: mann-whitney
args:
- name: stable-hash
valueFrom:
podTemplateHashValue: Stable
- name: canary-hash
valueFrom:
podTemplateHashValue: Latest
```
=== "AnalysisTemplate"
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: mann-whitney
spec:
args:
- name: start-time
- name: end-time
- name: stable-hash
- name: canary-hash
metrics:
- name: mann-whitney
provider:
kayenta:
address: https://kayenta.example.com
application: guestbook
canaryConfigName: my-test
thresholds:
pass: 90
marginal: 75
scopes:
- name: default
controlScope:
scope: app=guestbook and rollouts-pod-template-hash={{args.stable-hash}}
step: 60
start: "{{args.start-time}}"
end: "{{args.end-time}}"
experimentScope:
scope: app=guestbook and rollouts-pod-template-hash={{args.canary-hash}}
step: 60
start: "{{args.start-time}}"
end: "{{args.end-time}}"
```
=== "Experiment"
```yaml
# This is the resulting experiment that is produced by the step
apiVersion: argoproj.io/v1alpha1
kind: Experiment
name:
name: guestbook-6c54544bf9-0
spec:
duration: 1h
templates:
- name: baseline
replicas: 1
spec:
containers:
- name: guestbook
image: guestbook:v1
- name: canary
replicas: 1
spec:
containers:
- name: guestbook
image: guestbook:v2
analysis:
templateName: mann-whitney
args:
- name: start-time
value: "{{experiment.availableAt}}"
- name: end-time
value: "{{experiment.finishedAt}}"
```
In order to perform multiple kayenta runs over some time duration, the `interval` and `count` fields
can be supplied. When the `start` and `end` fields are omitted from the kayenta scopes, the values
will be implicitly decided as:
* `start` = if `lookback: true` start of analysis, otherwise current time - interval
* `end` = current time
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: mann-whitney
spec:
args:
- name: stable-hash
- name: canary-hash
metrics:
- name: mann-whitney
provider:
kayenta:
address: https://kayenta.intuit.com
application: guestbook
canaryConfigName: my-test
interval: 3600
count: 3
# loopback will cause start time value to be equal to start of analysis
# lookback: true
thresholds:
pass: 90
marginal: 75
scopes:
- name: default
controlScope:
scope: app=guestbook and rollouts-pod-template-hash={{args.stable-hash}}
step: 60
experimentScope:
scope: app=guestbook and rollouts-pod-template-hash={{args.canary-hash}}
step: 60
```

65
docs/analysis/newrelic.md Normal file
View File

@ -0,0 +1,65 @@
# NewRelic Metrics
!!! important
Available since v0.10.0
A [New Relic](https://newrelic.com/) query using [NRQL](https://docs.newrelic.com/docs/query-your-data/nrql-new-relic-query-language/get-started/introduction-nrql-new-relics-query-language) can be used to obtain measurements for analysis.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: success-rate
spec:
args:
- name: application-name
metrics:
- name: success-rate
successCondition: result.successRate >= 0.95
provider:
newRelic:
profile: my-newrelic-secret # optional, defaults to 'newrelic'
query: |
FROM Transaction SELECT percentage(count(*), WHERE httpResponseCode != 500) as successRate where appName = '{{ args.application-name }}'
timeout: 10 # NRQL query timeout in seconds. Optional, defaults to 5
```
The `result` evaluated for the condition will always be map or list of maps. The name will follow the pattern of either `function` or `function.field`, e.g. `SELECT average(duration) from Transaction` will yield `average.duration`. In this case the field result cannot be accessed with dot notation and instead should be accessed like `result['average.duration']`. Query results can be renamed using the [NRQL clause `AS`](https://docs.newrelic.com/docs/query-your-data/nrql-new-relic-query-language/get-started/nrql-syntax-clauses-functions#sel-as) as seen above.
A New Relic access profile can be configured using a Kubernetes secret in the `argo-rollouts` namespace. Alternate accounts can be used by creating more secrets of the same format and specifying which secret to use in the metric provider configuration using the `profile` field.
```yaml
apiVersion: v1
kind: Secret
metadata:
name: newrelic
type: Opaque
stringData:
personal-api-key: <newrelic-personal-api-key>
account-id: <newrelic-account-id>
region: "us" # optional, defaults to "us" if not set. Only set to "eu" if you use EU New Relic
```
To use the New Relic metric provider from behind a proxy, provide a `base-url-rest` key pointing to the base URL of the New Relic REST API for your proxy, and a `base-url-nerdgraph` key pointing to the base URL for NerdGraph for your proxy:
```yaml
apiVersion: v1
kind: Secret
metadata:
name: newrelic
type: Opaque
stringData:
personal-api-key: <newrelic-personal-api-key>
account-id: <newrelic-account-id>
region: "us" # optional, defaults to "us" if not set. Only set to "eu" if you use EU New Relic
base-url-rest: <your-base-url>
base-url-nerdgraph: <your-base-url>
```
## Additional Metadata
The New Relic provider returns the below metadata under the `Metadata` map in the `MetricsResult` object of `AnalysisRun`.
| KEY | Description |
|-----------------------|-------------|
| ResolvedNewRelicQuery | Resolved query after substituting the template's arguments |

107
docs/analysis/plugins.md Normal file
View File

@ -0,0 +1,107 @@
# Metric Plugins
!!! warning "Alpha Feature (Since 1.5.0)"
This is an experimental, [alpha-quality](https://github.com/argoproj/argoproj/blob/main/community/feature-status.md#alpha)
feature that allows you to support metric providers that are not natively supported.
Argo Rollouts supports getting analysis metrics via 3rd party [plugin system](../plugins.md). This allows users to extend the capabilities of Rollouts
to support metric providers that are not natively supported. Rollout's uses a plugin library called
[go-plugin](https://github.com/hashicorp/go-plugin) to do this. You can find a sample plugin
here: [rollouts-plugin-metric-sample-prometheus](https://github.com/argoproj-labs/rollouts-plugin-metric-sample-prometheus)
## Installing
There are two methods of installing and using an argo rollouts plugin. The first method is to mount up the plugin executable
into the rollouts controller container. The second method is to use an HTTP(S) server to host the plugin executable.
### Mounting the plugin executable into the rollouts controller container
There are a few ways to mount the plugin executable into the rollouts controller container. Some of these will depend on your
particular infrastructure. Here are a few methods:
- Using an init container to download the plugin executable
- Using a Kubernetes volume mount with a shared volume such as NFS, EBS, etc.
- Building the plugin into the rollouts controller container
Then you can use the configmap to point to the plugin executable file location. Example:
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: argo-rollouts-config
data:
metricProviderPlugins: |-
- name: "argoproj-labs/sample-prometheus" # name of the plugin, it must match the name required by the plugin so it can find its configuration
location: "file://./my-custom-plugin" # supports http(s):// urls and file://
```
### Using an HTTP(S) server to host the plugin executable
!!! warning "Installing a plugin with http(s)"
Depending on which method you use to install and the plugin, there are some things to be aware of.
The rollouts controller will not start if it can not download or find the plugin executable. This means that if you are using
a method of installation that requires a download of the plugin and the server hosting the plugin for some reason is not available and the rollouts
controllers pod got deleted while the server was down or is coming up for the first time, it will not be able to start until
the server hosting the plugin is available again.
Argo Rollouts will download the plugin at startup only once but if the pod is deleted it will need to download the plugin again on next startup. Running
Argo Rollouts in HA mode can help a little with this situation because each pod will download the plugin at startup. So if a single pod gets
deleted during a server outage, the other pods will still be able to take over because there will already be a plugin executable available to it. It is the
responsibility of the Argo Rollouts administrator to define the plugin installation method considering the risks of each approach.
Argo Rollouts supports downloading the plugin executable from an HTTP(S) server. To use this method, you will need to
configure the controller via the `argo-rollouts-config` configmap and set `pluginLocation` to a http(s) url. Example:
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: argo-rollouts-config
data:
metricProviderPlugins: |-
- name: "argoproj-labs/sample-prometheus" # name of the plugin, it must match the name required by the plugin so it can find its configuration
location: "https://github.com/argoproj-labs/rollouts-plugin-metric-sample-prometheus/releases/download/v0.0.4/metric-plugin-linux-amd64" # supports http(s):// urls and file://
sha256: "dac10cbf57633c9832a17f8c27d2ca34aa97dd3d" #optional sha256 checksum of the plugin executable
headersFrom: #optional headers for the download via http request
- secretRef:
name: secret-name
---
apiVersion: v1
kind: Secret
metadata:
name: secret-name
stringData:
Authorization: Basic <Base 64 TOKEN>
My-Header: value
```
## Some words of caution
Depending on which method you use to install and the plugin, there are some things to be aware of.
The rollouts controller will not start if it can not download or find the plugin executable. This means that if you are using
a method of installation that requires a download of the plugin and the server hosting the plugin for some reason is not available and the rollouts
controllers pod got deleted while the server was down or is coming up for the first time, it will not be able to start until
the server hosting the plugin is available again.
Argo Rollouts will download the plugin at startup only once but if the pod is deleted it will need to download the plugin again on next startup. Running
Argo Rollouts in HA mode can help a little with this situation because each pod will download the plugin at startup. So if a single pod gets
deleted during a server outage, the other pods will still be able to take over because there will already be a plugin executable available to it. It is the
responsibility of the Argo Rollouts administrator to define the plugin installation method considering the risks of each approach.
## List of Available Plugins (alphabetical order)
If you have created a plugin, please submit a PR to add it to this list.
### [rollouts-plugin-metric-opensearch](https://github.com/argoproj-labs/rollouts-plugin-metric-opensearch)
- The application is an OpenSearch plugin designed for use with the Argo Rollouts plugin system. This plugin enables the integration of OpenSearch metrics into Argo Rollouts, allowing for advanced metric analysis and monitoring during application rollouts.
### [rollouts-plugin-metric-sample-prometheus](https://github.com/argoproj-labs/rollouts-plugin-metric-sample-prometheus)
- This is just a sample plugin that can be used as a starting point for creating your own plugin.
It is not meant to be used in production. It is based on the built-in prometheus provider.

179
docs/analysis/prometheus.md Normal file
View File

@ -0,0 +1,179 @@
# Prometheus Metrics
A [Prometheus](https://prometheus.io/) query can be used to obtain measurements for analysis.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: success-rate
spec:
args:
- name: service-name
metrics:
- name: success-rate
interval: 5m
# NOTE: prometheus queries return results in the form of a vector.
# So it is common to access the index 0 of the returned array to obtain the value
successCondition: result[0] >= 0.95
failureLimit: 3
provider:
prometheus:
address: http://prometheus.example.com:9090
# timeout is expressed in seconds
timeout: 40
headers:
- key: X-Scope-OrgID
value: tenant_a
query: |
sum(irate(
istio_requests_total{reporter="source",destination_service=~"{{args.service-name}}",response_code!~"5.*"}[5m]
)) /
sum(irate(
istio_requests_total{reporter="source",destination_service=~"{{args.service-name}}"}[5m]
))
```
The example shows Istio metrics, but you can use any kind of metric available to your prometheus instance. We suggest
you validate your [PromQL expression](https://prometheus.io/docs/prometheus/latest/querying/basics/) using the [Prometheus GUI first](https://prometheus.io/docs/introduction/first_steps/#using-the-expression-browser).
See the [Analysis Overview page](../../features/analysis) for more details on the available options.
## Range queries
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: range-query-example
spec:
args:
- name: service-name
- name: lookback-duration
value: 5m
metrics:
- name: success-rate
# checks that all returned values are under 1000ms
successCondition: "all(result, # < 1000)"
failureLimit: 3
provider:
prometheus:
rangeQuery:
# See https://expr-lang.org/docs/language-definition#date-functions
# for value date functions
# The start point to query from
start: 'now() - duration("{{args.lookback-duration}}")'
# The end point to query to
end: 'now()'
# Query resolution width
step: 1m
address: http://prometheus.example.com:9090
query: http_latency_ms{service="{{args.service-name}}"}
```
### Range query and successCondition/failureCondition
Since range queries will usually return multiple values from prometheus. It is important to assert on every value returned. See the following examples:
* ❌ `result[0] < 1000` - this will only check the first value returned
* ✅ `all(result, # < 1000)` - checks every value returns from prometheus
See [expr](https://github.com/expr-lang/expr) for more expression options.
## Authorization
### Utilizing Amazon Managed Prometheus
Amazon Managed Prometheus can be used as the prometheus data source for analysis. In order to do this the namespace where your analysis is running will have to have the appropriate [IRSA attached](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-ingest-metrics-new-Prometheus.html#AMP-onboard-new-Prometheus-IRSA) to allow for prometheus queries. Once you ensure the proper permissions are in place to access AMP, you can use an AMP workspace url in your ```provider``` block and add a SigV4 config for Sigv4 signing:
```yaml
provider:
prometheus:
address: https://aps-workspaces.$REGION.amazonaws.com/workspaces/$WORKSPACEID
query: |
sum(irate(
istio_requests_total{reporter="source",destination_service=~"{{args.service-name}}",response_code!~"5.*"}[5m]
)) /
sum(irate(
istio_requests_total{reporter="source",destination_service=~"{{args.service-name}}"}[5m]
))
authentication:
sigv4:
region: $REGION
profile: $PROFILE
roleArn: $ROLEARN
```
### With OAuth2
You can setup an [OAuth2 client credential](https://datatracker.ietf.org/doc/html/rfc6749#section-4.4) flow using the following values:
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: success-rate
spec:
args:
- name: service-name
# from secret
- name: oauthSecret # This is the OAuth2 shared secret
valueFrom:
secretKeyRef:
name: oauth-secret
key: secret
metrics:
- name: success-rate
interval: 5m
# NOTE: prometheus queries return results in the form of a vector.
# So it is common to access the index 0 of the returned array to obtain the value
successCondition: result[0] >= 0.95
failureLimit: 3
provider:
prometheus:
address: http://prometheus.example.com:9090
# timeout is expressed in seconds
timeout: 40
authentication:
oauth2:
tokenUrl: https://my-oauth2-provider/token
clientId: my-client-id
clientSecret: "{{ args.oauthSecret }}"
scopes: [
"my-oauth2-scope"
]
query: |
sum(irate(
istio_requests_total{reporter="source",destination_service=~"{{args.service-name}}",response_code!~"5.*"}[5m]
)) /
sum(irate(
istio_requests_total{reporter="source",destination_service=~"{{args.service-name}}"}[5m]
))
```
The AnalysisRun will first get an access token using that information, and provide it as an `Authorization: Bearer` header for the metric provider call.
## Additional Metadata
Any additional metadata from the Prometheus controller, like the resolved queries after substituting the template's
arguments, etc. will appear under the `Metadata` map in the `MetricsResult` object of `AnalysisRun`.
## Skip TLS verification
You can skip the TLS verification of the prometheus host provided by setting the options `insecure: true`.
```yaml
provider:
prometheus:
address: https://prometheus.example.com
insecure: true
query: |
sum(irate(
istio_requests_total{reporter="source",destination_service=~"{{args.service-name}}",response_code!~"5.*"}[5m]
)) /
sum(irate(
istio_requests_total{reporter="source",destination_service=~"{{args.service-name}}"}[5m]
))
```

View File

@ -0,0 +1,35 @@
# Apache SkyWalking Metrics
!!! important
Available since v1.5.0
A [SkyWalking](https://skywalking.apache.org/) query using GraphQL can be used to obtain measurements for analysis.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: apdex
spec:
args:
- name: service-name
metrics:
- name: apdex
interval: 5m
successCondition: "all(result.service_apdex.values.values, {asFloat(.value) >= 9900})"
failureLimit: 3
provider:
skywalking:
interval: 3m
address: http://skywalking-oap.istio-system:12800
query: |
query queryData($duration: Duration!) {
service_apdex: readMetricsValues(
condition: { name: "service_apdex", entity: { scope: Service, serviceName: "{{ args.service-name }}", normal: true } },
duration: $duration) {
label values { values { value } }
}
}
```
The `result` evaluated for the query depends on the specific GraphQL you give, you can try to run the GraphQL query first and inspect the output format, then compose the condition.

View File

@ -0,0 +1,41 @@
# Wavefront Metrics
A [Wavefront](https://www.wavefront.com/) query can be used to obtain measurements for analysis.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: success-rate
spec:
args:
- name: service-name
metrics:
- name: success-rate
interval: 5m
successCondition: result >= 0.95
failureLimit: 3
provider:
wavefront:
address: example.wavefront.com
query: |
sum(rate(
5m, ts("istio.requestcount.count", response_code!=500 and destination_service="{{args.service-name}}"
))) /
sum(rate(
5m, ts("istio.requestcount.count", reporter=client and destination_service="{{args.service-name}}"
)))
```
Wavefront api tokens can be configured in a kubernetes secret in argo-rollouts namespace.
```yaml
apiVersion: v1
kind: Secret
metadata:
name: wavefront-api-tokens
type: Opaque
stringData:
example1.wavefront.com: <token1>
example2.wavefront.com: <token2>
```

158
docs/analysis/web.md Normal file
View File

@ -0,0 +1,158 @@
# Web Metrics
An HTTP request can be performed against some external service to obtain the measurement. This example
makes an HTTP GET request to some URL. The webhook response must return JSON content. The result of
the optional `jsonPath` expression will be assigned to the `result` variable that can be referenced
in the `successCondition` and `failureCondition` expressions. If omitted, will use the entire body
of the as the result variable.
```yaml
metrics:
- name: webmetric
successCondition: result == true
provider:
web:
url: "http://my-server.com/api/v1/measurement?service={{ args.service-name }}"
timeoutSeconds: 20 # defaults to 10 seconds
headers:
- key: Authorization
value: "Bearer {{ args.api-token }}"
jsonPath: "{$.data.ok}"
```
In the following example, given the payload, the measurement will be Successful if the `data.ok` field was `true`, and the `data.successPercent`
was greater than `0.90`
```json
{
"data": {
"ok": true,
"successPercent": 0.95
}
}
```
```yaml
metrics:
- name: webmetric
successCondition: "result.ok && result.successPercent >= 0.90"
provider:
web:
url: "http://my-server.com/api/v1/measurement?service={{ args.service-name }}"
headers:
- key: Authorization
value: "Bearer {{ args.api-token }}"
jsonPath: "{$.data}"
```
NOTE: if the result is a string, two convenience functions `asInt` and `asFloat` are provided
to convert a result value to a numeric type so that mathematical comparison operators can be used
(e.g. >, <, >=, <=).
## Optional web methods
It is possible to use a POST or PUT requests, by specifying the `method` and either `body` or `jsonBody` fields
```yaml
metrics:
- name: webmetric
successCondition: result == true
provider:
web:
method: POST # valid values are GET|POST|PUT, defaults to GET
url: "http://my-server.com/api/v1/measurement?service={{ args.service-name }}"
timeoutSeconds: 20 # defaults to 10 seconds
headers:
- key: Authorization
value: "Bearer {{ args.api-token }}"
- key: Content-Type # if body is a json, it is recommended to set the Content-Type
value: "application/json"
body: "string value"
jsonPath: "{$.data.ok}"
```
!!! tip
In order to send in JSON, you can use jsonBody and Content-Type will be automatically set as json.
Setting a `body` or `jsonBody` field for a `GET` request will result in an error.
Set either `body` or `jsonBody` and setting both will result in an error.
```yaml
metrics:
- name: webmetric
successCondition: result == true
provider:
web:
method: POST # valid values are GET|POST|PUT, defaults to GET
url: "http://my-server.com/api/v1/measurement?service={{ args.service-name }}"
timeoutSeconds: 20 # defaults to 10 seconds
headers:
- key: Authorization
value: "Bearer {{ args.api-token }}"
- key: Content-Type # if body is a json, it is recommended to set the Content-Type
value: "application/json"
jsonBody: # If using jsonBody Content-Type header will be automatically set to json
key1: value_1
key2:
nestedObj: nested value
key3: "{{ args.service-name }}"
jsonPath: "{$.data.ok}"
```
## Skip TLS verification
You can skip the TLS verification of the web host provided by setting the options `insecure: true`.
```yaml
metrics:
- name: webmetric
successCondition: "result.ok && result.successPercent >= 0.90"
provider:
web:
url: "https://my-server.com/api/v1/measurement?service={{ args.service-name }}"
insecure: true
headers:
- key: Authorization
value: "Bearer {{ args.api-token }}"
jsonPath: "{$.data}"
```
## Authorization
### With OAuth2
You can setup an [OAuth2 client credential](https://datatracker.ietf.org/doc/html/rfc6749#section-4.4) flow using the following values:
```yaml
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: success-rate
spec:
args:
- name: service-name
# from secret
- name: oauthSecret # This is the OAuth2 shared secret
valueFrom:
secretKeyRef:
name: oauth-secret
key: secret
metrics:
- name: webmetric
successCondition: result == true
provider:
web:
url: "http://my-server.com/api/v1/measurement?service={{ args.service-name }}"
timeoutSeconds: 20 # defaults to 10 seconds
authentication:
oauth2:
tokenUrl: https://my-oauth2-provider/token
clientId: my-client-id
clientSecret: "{{ args.oauthSecret }}"
scopes: [
"my-oauth2-scope"
]
headers:
- key: Content-Type # if body is a json, it is recommended to set the Content-Type
value: "application/json"
jsonPath: "{$.data.ok}"
```
In that case, no need to provide specifically the `Authentication` header.
The AnalysisRun will first get an access token using that information, and provide it as an `Authorization: Bearer` header for the metric provider call.

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 KiB

59
docs/architecture.md Normal file
View File

@ -0,0 +1,59 @@
# Architecture
Here is an overview of all the components that take part in a deployment managed by Argo Rollouts.
[![Argo Rollouts Architecture](architecture-assets/argo-rollout-architecture.png)](architecture-assets/argo-rollout-architecture.png)
## Argo Rollouts controller
This is the main controller that monitors the cluster for events and reacts whenever a resource of type `Rollout` is changed. The controller
will read all the details of the rollout and bring the cluster to the same state as described in the rollout definition.
Note that Argo Rollouts will not tamper with or respond to any changes that happen on normal [Deployment Resources](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/). This means
that you can install Argo Rollouts in a cluster that is also deploying applications with alternative methods.
To install the controller in your cluster and get started with Progressive Delivery, see the [Installation page](../installation/).
## Rollout resource
The Rollout resource is a custom Kubernetes resource introduced and managed by Argo Rollouts. It is mostly compatible with the native Kubernetes Deployment resource but with extra
fields that control the stages, thresholds and methods of advanced deployment methods such as canaries and blue/green deployments.
Note that the Argo Rollouts controller will only respond to those changes that happen in Rollout sources. It will do nothing for normal deployment resources. This means that you need to [migrate your Deployments to Rollouts](../migrating/) if you want to manage them with Argo Rollouts.
You can see all possible options of a Rollout in the [full specification page](../features/specification/).
## Replica sets for old and new version
These are instances of the [standard Kubernetes ReplicaSet resources](https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/). Argo Rollouts puts some extra metadata on them in order to keep track of the different versions that are part of an application.
Note also that the replica sets that take part in a Rollout are fully managed by the controller in an automatic way. You should not tamper with them with external tools.
## Ingress/Service
This is the mechanism that traffic from live users enters your cluster and is redirected to the appropriate version. Argo Rollouts use the [standard Kubernetes service resource](https://kubernetes.io/docs/concepts/services-networking/service/), but with some extra metadata needed for management.
Argo Rollouts is very flexible on networking options. First of all you can have different services during a Rollout, that go only to the new version, only to the old version or both.
Specifically for Canary deployments, Argo Rollouts supports several [service mesh and ingress solutions](../features/traffic-management/) for splitting traffic with specific percentages instead of simple balancing based on pod counts and it is possible to use multiple routing providers simultaneously.
## AnalysisTemplate and AnalysisRun
Analysis is the capability to connect a Rollout to your metrics provider and define specific thresholds for certain metrics that will decide if an update is successful or not. For each analysis you can define one or more metric queries along with their expected results. A Rollout will progress on its own if metric queries are good, rollback automatically if metrics show failure and pause the rollout if metrics cannot provide a success/failure answer.
For performing an analysis, Argo Rollouts includes two custom Kubernetes resources: `AnalysisTemplate` and `AnalysisRun`.
`AnalysisTemplate` contains instructions on what metrics to query. The actual result that is attached to a Rollout is the `AnalysisRun` custom resource. You can define an `AnalysisTemplate` on a specific Rollout or globally on the cluster to be shared by multiple rollouts as a `ClusterAnalysisTemplate`. The `AnalysisRun` resource is scoped on a specific rollout.
Note that using an analysis and metrics in a Rollout is completely optional. You can manually pause and promote a rollout or use other external methods (e.g. smoke tests) via the API or the CLI. You don't need a metric solution just to use Argo Rollouts. You can also mix both automated (i.e. analysis based) and manual steps in a Rollout.
Apart from metrics, you can also decide the success of a rollout by running a [Kubernetes job](../analysis/job/) or running [a webhook](../analysis/web/).
## Metric providers
Argo Rollouts includes [native integration for several popular metrics providers](../features/analysis/) that you can use in the Analysis resources to automatically promote or rollback a rollout. See the documentation of each provider for specific setup options.
## CLI and UI (Not shown in the diagram)
You can view and manage Rollouts with the [Argo Rollouts CLI](../features/kubectl-plugin/) or the [integrated UI](../dashboard/). Both are optional.

175
docs/assets/versions.css Normal file
View File

@ -0,0 +1,175 @@
.md-header__title {
display: flex;
}
.dropdown-caret {
display: inline-block !important;
position: absolute;
right: 4px;
}
.fa .fa-caret-down {
display: none !important;
}
.rst-other-versions {
text-align: right;
}
.rst-other-versions > dl, .rst-other-versions dt, .rst-other-versions small {
display: none;
}
.rst-other-versions > dl:first-child {
display: flex !important;
flex-direction: column;
line-height: 0px !important;
}
.rst-versions.shift-up .rst-other-versions {
display: flex !important;
}
.rst-versions .rst-other-versions {
display: none;
}
/* Version Warning */
div[data-md-component=announce] {
background-color: rgb(248, 243, 236);
position: sticky;
top: 0;
z-index: 2;
}
div[data-md-component=announce]>div#announce-msg{
color: var(--md-code-hl-number-color);
font-size: .8rem;
text-align: center;
margin: 15px;
}
div[data-md-component=announce]>div#announce-msg>a{
color: var(--md-typeset-a-color);
text-decoration: underline;
}
/* from https://assets.readthedocs.org/static/css/badge_only.css,
most styles have to be overridden here */
.rst-versions{
position: relative !important;
bottom: 0;
left: 0;
width: 100px !important;
background: hsla(173, 100%, 24%, 1) !important;
font-family: inherit !important;
z-index: 0 !important;
}
.rst-versions a{
color:#2980B9;
text-decoration:none
}
.rst-versions .rst-badge-small{
display:none
}
.rst-versions .rst-current-version{
padding:12px;
background: hsla(173, 100%, 24%, 1) !important;
display:block;
text-align:right;
font-size:90%;
cursor:pointer;
color: white !important;
*zoom:1
}
.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{
display:table;content:""
}
.rst-versions .rst-current-version:after{
clear:both
}
.rst-versions .rst-current-version .fa{
color:#fcfcfc
}
.rst-versions .rst-current-version .fa-caret-down{
display: none;
}
.rst-versions.shift-up .rst-other-versions{
display:block
}
.rst-versions .rst-other-versions{
font-size:90%;
padding:12px;
color:gray;
display:none
}
.rst-versions .rst-other-versions hr{
display: none !important;
height: 0px !important;
border: 0px;
margin: 0px !important;
padding: 0px;
border-top: none !important;
}
.rst-versions .rst-other-versions dd{
display:inline-block;
margin:0
}
.rst-versions .rst-other-versions dd a{
display:inline-block;
padding: 1em 0em !important;
color:#fcfcfc;
font-size: .6rem !important;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
width: 80px;
}
.rst-versions .rst-other-versions dd a:hover{
font-size: .7rem !important;
font-weight: bold;
}
.rst-versions.rst-badge{
display: block !important;
width: 100px !important;
bottom: 0px !important;
right: 0px !important;
left:auto;
border:none;
text-align: center !important;
line-height: 0;
}
.rst-versions.rst-badge .icon-book{
display: none;
}
.rst-versions.rst-badge .fa-book{
display: none !important;
}
.rst-versions.rst-badge.shift-up .rst-current-version{
text-align: left !important;
}
.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{
display: none !important;
}
.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{
display: none !important;
}
.rst-versions.rst-badge .rst-current-version{
width: 70px !important;
height: 2.4rem !important;
line-height:2.4rem !important;
padding: 0px 5px !important;
display: inline-block !important;
font-size: .6rem !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
white-space: nowrap !important;
text-align: left !important;
}
@media screen and (max-width: 768px){
.rst-versions{
width:85%;
display:none
}
.rst-versions.shift{
display:block
}
}

75
docs/assets/versions.js Normal file
View File

@ -0,0 +1,75 @@
const targetNode = document.querySelector('.md-header__inner');
const observerOptions = {
childList: true,
subtree: true
};
const observerCallback = function(mutationsList, observer) {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
const titleElement = document.querySelector('.md-header__inner > .md-header__title');
if (titleElement) {
initializeVersionDropdown();
observer.disconnect();
}
}
}
};
const observer = new MutationObserver(observerCallback);
observer.observe(targetNode, observerOptions);
function initializeVersionDropdown() {
const callbackName = 'callback_' + new Date().getTime();
window[callbackName] = function(response) {
const div = document.createElement('div');
div.innerHTML = response.html;
document.querySelector(".md-header__inner > .md-header__title").appendChild(div);
const container = div.querySelector('.rst-versions');
var caret = document.createElement('div');
caret.innerHTML = "<i class='fa fa-caret-down dropdown-caret'></i>";
caret.classList.add('dropdown-caret');
div.querySelector('.rst-current-version').appendChild(caret);
div.querySelector('.rst-current-version').addEventListener('click', function() {
container.classList.toggle('shift-up');
});
};
var CSSLink = document.createElement('link');
CSSLink.rel='stylesheet';
CSSLink.href = '/assets/versions.css';
document.getElementsByTagName('head')[0].appendChild(CSSLink);
var script = document.createElement('script');
script.src = 'https://argo-rollouts.readthedocs.io/_/api/v2/footer_html/?'+
'callback=' + callbackName + '&project=argo-rollouts&page=&theme=mkdocs&format=jsonp&docroot=docs&source_suffix=.md&version=' + (window['READTHEDOCS_DATA'] || { version: 'latest' }).version;
document.getElementsByTagName('head')[0].appendChild(script);
}
// VERSION WARNINGS
window.addEventListener("DOMContentLoaded", function() {
var currentVersion = window.location.href.match(/\/en\/(release-(?:v\d+|\w+)|latest|stable)\//);
var margin = 30;
var headerHeight = document.getElementsByClassName("md-header")[0].offsetHeight;
if (currentVersion && currentVersion.length > 1) {
currentVersion = currentVersion[1];
if (currentVersion === "latest") {
document.querySelector("div[data-md-component=announce]").innerHTML = "<div id='announce-msg'>You are viewing the docs for an unreleased version of Argo Rollouts, <a href='https://argoproj.github.io/argo-rollouts/'>click here to go to the latest stable version.</a></div>";
var bannerHeight = document.getElementById('announce-msg').offsetHeight + margin;
document.querySelector("header.md-header").style.top = bannerHeight + "px";
document.querySelector('style').textContent +=
"@media screen and (min-width: 76.25em){ .md-sidebar { height: 0; top:" + (bannerHeight + headerHeight) + "px !important; }}";
document.querySelector('style').textContent +=
"@media screen and (min-width: 60em){ .md-sidebar--secondary { height: 0; top:" + (bannerHeight + headerHeight) + "px !important; }}";
} else if (currentVersion !== "stable") {
document.querySelector("div[data-md-component=announce]").innerHTML = "<div id='announce-msg'>You are viewing the docs for a previous version of Argo Rollouts, <a href='https://argoproj.github.io/argo-rollouts/'>click here to go to the latest stable version.</a></div>";
var bannerHeight = document.getElementById('announce-msg').offsetHeight + margin;
document.querySelector("header.md-header").style.top = bannerHeight + "px";
document.querySelector('style').textContent +=
"@media screen and (min-width: 76.25em){ .md-sidebar { height: 0; top:" + (bannerHeight + headerHeight) + "px !important; }}";
document.querySelector('style').textContent +=
"@media screen and (min-width: 60em){ .md-sidebar--secondary { height: 0; top:" + (bannerHeight + headerHeight) + "px !important; }}";
}
}
});

190
docs/best-practices.md Normal file
View File

@ -0,0 +1,190 @@
# Best Practices
This document describes some best practices, tips and tricks when using Argo Rollouts. Be sure to read the [FAQ page](../FAQ) as well.
## Check application compatibility
Argo Rollouts is a great solution for applications that your team is deploying in a continuous manner (and you have access to the source code). Before using Argo Rollouts you need to contact the developers of the application and verify that you can indeed run multiple versions of the same application at the same time.
Not all applications can work with Argo Rollouts. Applications that use shared resources (e.g. writing to a shared file) will have issues, and "worker" type applications (that load data from queues) will rarely work ok without source code modifications.
Note that using Argo Rollouts for "infrastructure" applications such as cert-manager, nginx, coredns, sealed-secrets etc is **NOT** recommended.
## Understand the scope of Argo Rollouts
Currently, Argo Rollouts works with a single Kubernetes deployment/application and within a single cluster only. You also need to have the controller deployed on *every* cluster where a Rollout is running if have more than one clusters using Rollout workloads.
If you want to look at multiple-services on multiple clusters
see discussion at issues [2737](https://github.com/argoproj/argo-rollouts/issues/2737), [451](https://github.com/argoproj/argo-rollouts/issues/451) and [2088](https://github.com/argoproj/argo-rollouts/issues/2088).
Note also that Argo Rollouts is a self-contained solution. It doesn't need Argo CD or any other Argo project to work.
## Understand your use case
Argo Rollouts is perfect for all progressive delivery scenarios as explained in [the concepts page](../concepts).
You should *NOT* use Argo Rollouts for preview/ephemeral environments. For that use case check the [Argo CD Pull Request generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/).
The recommended way to use Argo Rollouts is for brief deployments that take 15-20 minutes or maximum 1-2 hours. If you want to run new versions for days or weeks before deciding to promote, then Argo Rollouts is probably not the best solution for you.
Keeping parallel releases for long times, complicates the deployment process a lot and opens several questions where different people have different views on how Argo Rollouts should work.
For example let's say that you are testing for a week version 1.3 as stable and 1.4 as preview.
Then somebody deploys 1.5
1. Some people believe that the new state should be 1.3 stable and 1.5 as preview
1. Some people believe that the new state should be 1.4 stable and 1.5 as preview
Currently, Argo Rollouts follows the first approach, under the assumption that something was really wrong with 1.4 and 1.5 is the hotfix.
And then let's say that 1.5 has an issue. Some people believe that Argo rollouts should "rollback" to 1.3 while other people think it should rollback to 1.4
Currently, Argo Rollouts assumes that the version to rollback is always 1.3 regardless of how many "hotfixes" have been previewed in-between.
All these problems are not present if you make the assumption that each release stays active only for a minimal time and you always create one new version when the previous one has finished.
Also, if you want to run a wave of multiple versions at the same time (i.e. have 1.1 and 1.2 and 1.3 running at the same time), know that Argo Rollouts was not designed for this scenario. Argo Rollouts always works with the assumption that there is one stable/previous version and one preview/next version.
A version that has just been promoted is assumed to be ready for production and has already passed all your tests (either manual or automated).
## Prepare your metrics
The end-goal for using Argo Rollouts is to have **fully automated** deployments that also include rollbacks when needed.
While Argo Rollouts supports manual promotions and other manual pauses, these are best used for experimentation and test reasons.
Ideally you should have proper metrics that tell you in 5-15 minutes if a deployment is successful or not. If you don't have those metrics, then you will miss a lot of value from Argo Rollouts.
If you are doing a deployment right now and then have an actual human looking at logs/metrics/traces for the next 2 hours, adopting Argo Rollouts is not going to help you a lot with automated deployments.
Get your [metrics](../features/analysis) in place first and test them with dry-runs before applying them to production deployments.
## There is no "Argo Rollouts API"
A lot of people want to find an official API for managing Rollouts. There isn't any separate Argo Rollouts API. You can always use the Kubernetes API and patching of resources if you want to control a rollout.
But as explained in the previous point the end goal should be fully automated deployments without you having to tell Argo Rollouts to promote or abort.
## Integrating with other systems and processes
There are two main ways to integrate other systems with Argo Rollouts.
The easiest way is to use [Notifications](../features/notifications). This means that when a rollout is finished/aborted you send a notification to another system that does other tasks that you want to happen.
Alternatively you can control Rollouts with the CLI or by patching manually the Kubernetes resources.
## Use the Kubernetes Downward API
If you want your applications to know if they are part of a canary or not, you can use [Ephemeral labels](../features/ephemeral-metadata) along with the [Kubernetes downward api](https://kubernetes.io/docs/concepts/workloads/pods/downward-api/).
This means that your application will read from files its configuration in a dynamic manner and adapt according to the situation.
## Ingress desired/stable host routes
For various reasons, it is often desired that external services are able to reach the
desired pods (aka canary/preview) or stable pods specifically, without the possibility of traffic
arbitrarily being split between the two versions. Some use cases include:
* The new version of the service is able to be reach internally/privately (e.g. for manual verification),
before exposing it externally.
* An external CI/CD pipeline runs tests against the blue-green preview stack before it is
promoted to production.
* Running tests which compare the behavior of old version against the new version.
If you are using an Ingress to route traffic to the service, additional host rules can be added
to the ingress rules so that it is possible to specifically reach to the desired (canary/preview)
pods or stable pods.
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: guestbook
spec:
rules:
# host rule to only reach the desired pods (aka canary/preview)
- host: guestbook-desired.argoproj.io
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: guestbook-desired
port:
number: 443
# host rule to only reach the stable pods
- host: guestbook-stable.argoproj.io
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: guestbook-stable
port:
number: 443
# default rule which omits host, and will split traffic between desired vs. stable
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: guestbook-root
port:
number: 443
```
The above technique has a benefit in that it would not incur additional cost of allocating
additional load balancers.
## Reducing operator memory usage
On clusters with thousands of rollouts memory usage for the argo-rollouts
controller can be reduced significantly by changing the `RevisionHistoryLimit` property from the
default of 10 to a lower number.
One user of Argo Rollouts saw a 27% reduction
in memory usage for a cluster with 1290 rollouts by changing
`RevisionHistoryLimit` from 10 to 0.
## Rollout a ConfigMap change
Argo Rollouts is meant to work on a Kubernetes Deployment. When a ConfigMap is mounted inside one the Deployment container and a change occurs inside the ConfigMap, it won't trigger a new Rollout by default.
One technique to trigger the Rollout it to name dynamically the ConfigMap.
For example, adding a hash of its content at the end of the name:
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config-7270e14e6
```
Each time a change occurs in the ConfigMap, its name will change in the Deployment reference as well, triggering a Rollout.
However, it's not enough to perform correctly progressive rollouts, as the old ConfigMap might get deleted as soon as the new one is created. This would prevent Experiments and rollbacks in case of rollout failure to work correctly.
While no magical solution exist to work aroud that, you can tweak your deployment tool to remove the ConfigMap only when the Rollout is completed successfully.
Example with Argo CD:
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config-7270e14e6
annotations:
argocd.argoproj.io/sync-options: PruneLast=true
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

78
docs/concepts.md Normal file
View File

@ -0,0 +1,78 @@
# Concepts
## Rollout
A Rollout is Kubernetes workload resource which is equivalent to a Kubernetes Deployment object.
It is intended to replace a Deployment object in scenarios when more advanced deployment or
progressive delivery functionality is needed. A Rollout provides the following features which
a Kubernetes Deployment cannot:
* blue-green deployments
* canary deployments
* integration with ingress controllers and service meshes for advanced traffic routing
* integration with metric providers for blue-green & canary analysis
* automated promotion or rollback based on successful or failed metrics
## Progressive Delivery
Progressive delivery is the process of releasing updates of a product in a controlled and gradual
manner, thereby reducing the risk of the release, typically coupling automation and metric analysis
to drive the automated promotion or rollback of the update.
Progressive delivery is often described as an evolution of continuous delivery, extending the
speed benefits made in CI/CD to the deployment process. This is accomplished by limiting the
exposure of the new version to a subset of users, observing and analyzing for correct behavior,
then progressively increasing the exposure to a broader and wider audience while continuously
verifying correctness.
## Deployment Strategies
While the industry has used a consistent terminology to describe various deployment strategies, the implementations of these strategies tend to differ across tooling. To make it clear how the Argo Rollouts will behave, here are the descriptions of the various deployment strategy implementations. Argo Rollouts only supports Blue-Green and Canary.
### Rolling Update
A `RollingUpdate` slowly replaces the old version with the new version. As the new version comes up, the old version is scaled down in order to maintain the overall count of the application. This is the default strategy of the Deployment object.
### Recreate
A Recreate deployment deletes the old version of the application before bring up the new version. As a result, this ensures that two versions of the application never run at the same time, but there is downtime during the deployment.
### Blue-Green
A Blue-Green deployment (sometimes referred to as a Red-Black) has both the new and old version of the application deployed at the same time. During this time, only the old version of the application will receive production traffic. This allows the developers to run tests against the new version before switching the live traffic to the new version.
[![How Blue Green deployments work](concepts-assets/blue-green-deployments.png)](concepts-assets/blue-green-deployments.png)
### Canary
A Canary deployment exposes a subset of users to the new version of the application while serving the rest of the traffic to the old version. Once the new version is verified to be correct, the new version can gradually replace the old version. Ingress controllers and service meshes such as NGINX and Istio, enable more sophisticated traffic shaping patterns for canarying than what is natively available (e.g. achieving very fine-grained traffic splitting, or splitting based on HTTP headers).
[![How Canary deployments work](concepts-assets/canary-deployments.png)](concepts-assets/canary-deployments.png)
The picture above shows a canary with two stages (10% and 33% of traffic goes to new version) but this is just an example. With Argo Rollouts you can define the exact number of stages
and percentages of traffic according to your use case.
## Which strategy to choose
In general Blue/Green is the easier strategy to start with, but also the more limited. We recommend you start with Blue/Green deployments first and as you gain confidence for your metrics and applications switch to Canaries.
You also need to examine if your application can handle canaries or not.
* Blue/Green always works because only one application is active at a time. Not all applications can have different versions running in parallel at the same time (which is what canaries are doing). This can be a showstopper for adopting canary deployments especially for legacy applications.
* Blue/Green is simpler because you can get their full value WITHOUT a traffic manager. While canaries can also work without a traffic manager, most of their advanced features assume a fine-grained way to control traffic. If you don't have a traffic manager, then you can easily get the full value
of blue/green deployments but only the basic capabilities of canaries.
* Blue/Green also works with services that use queues and databases (workers that fetch tasks). Argo Rollouts doesn't control traffic flow for
connections it doesn't understand (i.e. binary/queue channels).
Here is a summary table for the possible approaches.
| | Blue/Green | Basic Canary | Canary with Traffic manager |
|--------------------------:|:-------------------------:|:--------------------------:| :-----------------------------:|
| Adoption Complexity | Low | Medium | High |
| Flexibility | Low | High | Maximum |
| Needs traffic provider | No | No | Yes |
| Works with queue workers | Yes | No | No |
| Works with shared/locked resources | Yes | No | No |
| Traffic switch | All or nothing | Gradual percentage | Gradual percentage |
| Traffic control | 0% or 100% | coarse grained | fine grained |
| Traffic depends on | deployment state | number of canary pods | Any split option is possible |
| Advanced routing scenarios | No | No | Yes |
| Failure Blast Radius | Massive impact | Low impact | Low impact |
Note that the traffic manager can be any compatible Service Mesh or Ingress Controller or Gateway API implementation (via a plugin).

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

14
docs/dashboard.md Normal file
View File

@ -0,0 +1,14 @@
# UI Dashboard
The Argo Rollouts Kubectl plugin can serve a local UI Dashboard to visualize your Rollouts.
To start it, run `kubectl argo rollouts dashboard` in the namespace that contains your Rollouts.
Then visit `localhost:3100` to view the user interface.
## List view
![Rollouts List](dashboard/rollouts-list.png)
## Individual Rollout view
![Rollouts List](dashboard/rollout-ui.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

View File

@ -1,14 +0,0 @@
# Deployment Concepts
While the industry has agreed upon high-level definitions of various deployment strategies, the implementations of these strategies tend to differ across tooling. To make it clear how the Argo Rollouts will behave, here are the descriptions of the various deployment strategies implementations offered by the Argo Rollouts.
## Rolling Update
A `RollingUpdate` slowly replaces the old version with the new version. As the new version comes up, the old version is scaled down in order to maintain the overall count of the application. This is the default strategy of the deployment object.
## Recreate
A Recreate deployment deletes the old version of the application before bring up the new version. As a result, this ensures that two versions of the application never run at the same time, but there is downtime during the deployment.
## Blue Green
A Blue Green deployment (which is sometimes referred to as a Red-Black) has both the new and old version of the application deployed at the same time. During this time, only the old version of the application will receive production traffic. This allows the developers to run tests against the new version before switching the live traffic to the new version.
## Canary
A Canary deployment exposes a subset of users (usually 5%) to the new version of the application while serving the rest of the traffic to the old version. Once the new version is verified to be correct that the new version can gradually replace the old version. Service Meshes like Istio make canary deployments easily to rollout as the service mesh can filter the traffic for you.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
# Anti Affinity
## Background
Depending on a cluster's configuration, a Blue Green Rollout (or a Canary rollout that uses traffic management) can cause newly created pods to restart after deploying a new version. This can be problematic, especially for applications that cannot startup quickly or do not gracefully exit.
This behavior occurs because cluster auto-scaler wants to scale down the extra capacity which was created to support a Rollout
running in double capacity. When a node is scaled down, the pods it owns are deleted and recreated. This usually happens if a Rollout has its own dedicated instance group since a Rollout has a greater effect on
cluster auto-scaling. Therefore, clusters with a large pool of shared nodes experience the behavior less often.
For example, here is a Rollout is running with 8 pods spread across 2 nodes. Each node can hold 6 pods:
![ Original Rollout is running, spread across two nodes](images/step-0.png)
When the `spec.template` of the Rollout changes, the controller creates a new ReplicaSet with the spec update and the total number of pods doubles. In this case, the number of pods increases
to 16.
Since each node can only hold 6 pods, the cluster autoscaler must increase the node count to 3 to accommodate
all 16 pods. The resulting distribution of pods across nodes is shown here:
![ Rollout running at double capacity](images/step-1.png)
Once the Rollout finishes progressing, the old version is scaled down. This leaves the cluster with more nodes than necessary, thus wasting resources (as shown below).
![ Original Rollout is running, spread across two nodes](images/step-2.png)
The cluster auto-scaler terminates the extra node and the pods are rescheduled on the remaining 2 nodes.
![ Original Rollout is running, spread across two nodes](images/step-3.png)
To reduce the chance of this behavior, a rollout can inject anti-affinity into the ReplicaSet. This prevents new pods from running on nodes which have the previous version's pods.
You can learn more about anti-affinity [here](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#inter-pod-affinity-and-anti-affinity).
Repeating the above example with anti-affinity enabled, here is what happens when the `.spec.template` of the Rollout changes. Due to anti-affinity, the new pods cannot be scheduled on nodes which run the old ReplicaSet's pods.
As a result, the cluster auto-scaler must create 2 nodes to host the new ReplicaSet's pods. In this case, pods won't be started since the scaled-down nodes are guaranteed to not have the new pods.
![ Original Rollout is running, spread across two nodes](images/solution.png)
## Enabling Anti-Affinity in Rollouts
Anti-affinity is enabled by adding the anti-affinity struct to the Blue-Green or Canary strategy. When the anti-affinity struct is set, controller injects a PodAntiAffinity struct into the ReplicaSet's Affinity.
This feature will not modify any of the ReplicaSet's pre-existing affinity rules.
Users have a choice between these scheduling rules: `RequiredDuringSchedulingIgnoredDuringExecution` and `PreferredDuringSchedulingIgnoredDuringExecution`.
`RequiredDuringSchedulingIgnoredDuringExecution` requires a new version's pods to be on a separate node than the previous versions. If this
is not possible, the new version's pods will not be scheduled.
```yaml
strategy:
bluegreen:
antiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: {}
```
Unlike the Required strategy, `PreferredDuringSchedulingIgnoredDuringExecution` does not force a new version's pods to be on a separate node than the previous versions.
The scheduler attempts to place the new version's pods on separate node(s). If that's not possible, the new version's pods will still be scheduled. The `Weight` is used to create a priority order for preferred anti-affinity rules.
```yaml
strategy:
canary:
antiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
weight: 1 # Between 1 - 100
```
!!! important
The main downside to this approach is that deployments can take longer because new nodes are more likely to be created in order to schedule pods with respect to anti-affinity rules. This delay most frequently occurs when a rollout has its own dedicated instance group,
since new nodes are more likely to be created to honor anti-affinity rules.

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

View File

@ -1,5 +1,6 @@
# BlueGreen Deployment Strategy
A Blue Green Deployment allows users to reduce the amount of time multiple versions running at the same time.
A Blue Green Deployment allows users to reduce the amount of time multiple versions are running at the same time.
## Overview
@ -7,8 +8,54 @@ In addition to managing ReplicaSets, the rollout controller will modify a Servic
When there is a change to the `.spec.template` field of a rollout, the controller will create the new ReplicaSet. If the active service is not sending traffic to a ReplicaSet, the controller will immediately start sending traffic to the ReplicaSet. Otherwise, the active service will point at the old ReplicaSet while the ReplicaSet becomes available. Once the new ReplicaSet becomes available, the controller will modify the active service to point at the new ReplicaSet. After waiting some time configured by the `.spec.strategy.blueGreen.scaleDownDelaySeconds`, the controller will scale down the old ReplicaSet.
__Important note__
When the rollout changes the selector on a service, there is a propagation delay before all the nodes update their IP tables to send traffic to the new pods instead of the old. During this delay, traffic will be directed to the old pods if the nodes have not been updated yet. In order to prevent the packets from being sent to a node that killed the old pod, the rollout uses the scaleDownDelaySeconds field to give nodes enough time to broadcast the IP table changes.
!!! important
When the rollout changes the selector on a service, there is a propagation delay before all the nodes update their IP tables to send traffic to the new pods instead of the old. During this delay, traffic will be directed to the old pods if the nodes have not been updated yet. In order to prevent the packets from being sent to a node that killed the old pod, the rollout uses the scaleDownDelaySeconds field to give nodes enough time to broadcast the IP table changes.
!!! important
ALB Ingress with Rollouts blue-green strategy is not supported without a chance of downtime.
When using an AWS ALB to route traffic to a service, the ALB Ingress Controller does not update the target groups in an atomic or safe manner. This can result in a situation where, during a deployment, the stable target group temporarily has no pods registered. This occurs because the ALB Controller removes all current pods from the target group before registering pods from the desired ReplicaSet.
The desired pods must pass their initial configured health check on the stable target group to be considered healthy by the ALB. This creates a risk where the ALB may temporarily have no healthy pods registered to the target group, depending on the timing of deregistration and registration of new pods. This can lead to application downtime that the rollouts controller cannot prevent.
## Example
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: rollout-bluegreen
spec:
replicas: 2
revisionHistoryLimit: 2
selector:
matchLabels:
app: rollout-bluegreen
template:
metadata:
labels:
app: rollout-bluegreen
spec:
containers:
- name: rollouts-demo
image: argoproj/rollouts-demo:blue
imagePullPolicy: Always
ports:
- containerPort: 8080
strategy:
blueGreen:
# activeService specifies the service to update with the new template hash at time of promotion.
# This field is mandatory for the blueGreen update strategy.
activeService: rollout-bluegreen-active
# previewService specifies the service to update with the new template hash before promotion.
# This allows the preview stack to be reachable without serving production traffic.
# This field is optional.
previewService: rollout-bluegreen-preview
# autoPromotionEnabled disables automated promotion of the new stack by pausing the rollout
# immediately before the promotion. If omitted, the default behavior is to promote the new
# stack as soon as the ReplicaSet are completely ready/available.
# Rollouts can be resumed using: `kubectl argo rollouts promote ROLLOUT`
autoPromotionEnabled: false
```
## Configurable Features
Here are the optional fields that will change the behavior of BlueGreen deployment:
@ -16,45 +63,93 @@ Here are the optional fields that will change the behavior of BlueGreen deployme
spec:
strategy:
blueGreen:
previewService: string
previewReplicaCount: *int32
autoPromotionEnabled: true
autoPromotionEnabled: boolean
autoPromotionSeconds: *int32
antiAffinity: object
previewService: string
prePromotionAnalysis: object
postPromotionAnalysis: object
previewReplicaCount: *int32
scaleDownDelaySeconds: *int32
scaleDownDelayRevisionLimit: *int32
```
### PreviewService
The PreviewService field references a Service that will be modified to send traffic to the new replicaset before the new one is promoted to receiving traffic from the active service. Once the new replicaset start receives traffic from the active service, the preview service will be modified to send traffic to no ReplicaSets. The Rollout always makes sure that the preview service is sending traffic to the new ReplicaSet. As a result, if a new version is introduced before the old version is promoted to the active service, the controller will immediately switch over to the new version.
## Sequence of Events
The following describes the sequence of events that happen during a blue-green update.
1. Beginning at a fully promoted, steady-state, a revision 1 ReplicaSet is pointed to by both the `activeService` and `previewService`.
1. A user initiates an update by modifying the pod template (`spec.template.spec`).
1. The revision 2 ReplicaSet is created with size 0.
1. The `previewService` is modified to point to the revision 2 ReplicaSet. The `activeService` remains pointing to revision 1.
1. The revision 2 ReplicaSet is scaled to either `spec.replicas` or `previewReplicaCount` if set.
1. Once revision 2 ReplicaSet Pods are fully available, `prePromotionAnalysis` begins.
1. Upon success of `prePromotionAnalysis`, the blue/green pauses if `autoPromotionEnabled` is false, or `autoPromotionSeconds` is non-zero.
1. The rollout is resumed either manually by a user, or automatically by surpassing `autoPromotionSeconds`.
1. The revision 2 ReplicaSet is scaled to the `spec.replicas`, if the `previewReplicaCount` feature was used.
1. The rollout "promotes" the revision 2 ReplicaSet by updating the `activeService` to point to it. At this point, there are no services pointing to revision 1
1. `postPromotionAnalysis` analysis begins
1. Once `postPromotionAnalysis` completes successfully, the update is successful and the revision 2 ReplicaSet is marked as stable. The rollout is considered fully-promoted.
1. After waiting `scaleDownDelaySeconds` (default 30 seconds), the revision 1 ReplicaSet is scaled down
### autoPromotionEnabled
The AutoPromotionEnabled will make the rollout automatically promote the new ReplicaSet to the active service once the new ReplicaSet is healthy. This field is defaulted to true if it is not specified.
Defaults to true
### autoPromotionSeconds
Setting a positive non-zero value here would make the rollout automatically promote the new `ReplicaSet` to active Service after this much time has been elapsed since the rollout has entered a paused state. If the `AutoPromotionEnabled` field is set to **false**, this field would be ignored.
Defaults to nil
### antiAffinity
Check out the [Anti Affinity document](anti-affinity/anti-affinity.md) for more information.
Defaults to nil
### maxUnavailable
The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxSurge is 0.
Defaults to 0
### prePromotionAnalysis
Configures the [Analysis](analysis.md#bluegreen-pre-promotion-analysis) before it switches traffic to the new version. The
AnalysisRun can be used to block the Service selector switch until the AnalysisRun finishes successful. The success or
failure of the analysis run decides if the Rollout will switch traffic, or abort the Rollout completely.
Defaults to nil
### postPromotionAnalysis
Configures the [Analysis](analysis.md#bluegreen-pre-promotion-analysis) after the traffic switch to new version. If the analysis
run fails or errors out, the Rollout enters an aborted state and switch traffic back to the previous stable Replicaset.
If `scaleDownDelaySeconds` is specified, the controller will cancel any AnalysisRuns at time of `scaleDownDelay` to
scale down the ReplicaSet. If it is omitted, and post analysis is specified, it will scale down the ReplicaSet only
after the AnalysisRun completes (with a minimum of 30 seconds).
Defaults to nil
### previewService
The PreviewService field references a Service that will be modified to send traffic to the new ReplicaSet before the new one is promoted to receiving traffic from the active service. Once the new ReplicaSet starts receiving traffic from the active service, the preview service will also be modified to send traffic to the new ReplicaSet as well. The Rollout always makes sure that the preview service is sending traffic to the newest ReplicaSet. As a result, if a new version is introduced before the old version is promoted to the active service, the controller will immediately switch over to that brand new version.
This feature is used to provide an endpoint that can be used to test a new version of an application.
Defaults to an empty string
### PreviewReplicaCount
The PreviewReplicaCount will indicate the number of replicas that the new version of an application should run. Once the application is ready to promote to the active service, the controller will scale the new ReplicaSet to the value of the `spec.replicas`. The rollout will not switch over the active service to the new ReplicaSet until it matches the `spec.replicas` count.
### previewReplicaCount
The PreviewReplicaCount field will indicate the number of replicas that the new version of an application should run. Once the application is ready to promote to the active service, the controller will scale the new ReplicaSet to the value of the `spec.replicas`. The rollout will not switch over the active service to the new ReplicaSet until it matches the `spec.replicas` count.
This feature is mainly used to save resources during the testing phase. If the application does not need a fully scaled up application for the tests, this feature can help save some resources.
Defaults to nil
If omitted, the preview ReplicaSet stack will be scaled to 100% of the replicas.
### AutoPromotionEnabled
The AutoPromotionEnabled will make the rollout automatically promote the new ReplicaSet to the active service once the new ReplicaSet is healthy. This field is defaulted to true if it is not specified.
Defaults to true
### AutoPromotionSeconds
The AutoPromotionSeconds will make the rollout automatically promote the new ReplicaSet to active Service after the AutoPromotionSeconds time has passed since the rollout has entered a paused state. If the `AutoPromotionEnabled` field is set to true, this field will be ignored
Defaults to nil
### ScaleDownDelaySeconds
### scaleDownDelaySeconds
The ScaleDownDelaySeconds is used to delay scaling down the old ReplicaSet after the active Service is switched to the new ReplicaSet.
Defaults to 30
### ScaleDownDelayRevisionLimit
### scaleDownDelayRevisionLimit
The ScaleDownDelayRevisionLimit limits the number of old active ReplicaSets to keep scaled up while they wait for the scaleDownDelay to pass after being removed from the active service.
Default to nil
If omitted, all ReplicaSets will be retained for the specified scaleDownDelay

View File

@ -1,69 +0,0 @@
# Canary Deployment Strategy
A canary rollout is a deployment strategy where the operator releases a new version of their application to a small percentage of the production traffic.
## Overview
Since there is no agreed upon standard for a canary deployment, the rollouts controller allows users to outline how they want to run their canary deployment. Users can define a list of steps the controller uses to manipulate the RepliaSets where there is a change to the `.spec.template`. Each step will be evaluated before the new ReplicaSet is promoted to the stable version, and the old version is completely scaled down.
Each step can have one of two fields. The `setWeight` field dictates the percentage of traffic that should be sent to the canary, and the `pause` struct instructs the rollout to pause. When the controller reaches a `pause` step for a rollout, it will set the `.spec.paused` field to `true`. If the `duration` field within the `pause` struct is set, the rollout will not progress to the next step until it has waited for the value of the `duration` field. Otherwise, the rollout will wait indefinitely until the `.spec.paused` field is set to `false`. By using the `setWeight` and the `pause` fields, a user can declarative describe how they want to progress to the new version. Below is an example of a canary strategy.
## Example
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: example-rollout
spec:
replicas: 10
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.15.4
ports:
- containerPort: 80
minReadySeconds: 30
revisionHistoryLimit: 3
strategy:
canary: #Indicates that the rollout should use the Canary strategy
maxSurge: "25%"
maxUnavailable: 0,
steps:
- setWeight: 10
- pause:
duration: 3600 # 1 hour
- setWeight: 20
- pause: {}
```
## Mimicking Rolling Update
If the steps field is omitted, the canary strategy will mimic the rolling update behavior. Similar to the deployment, the canary strategy has the `maxSurge` and `maxUnavailable` fields to configure how the Rollout should progress to the new version.
## Other Configurable Features
Here are the optional fields that will modify the behavior of canary strategy:
```yaml
spec:
strategy:
canary:
maxSurge: stringOrInt
maxUnavailable: stringOrInt
canaryService: string
```
### maxSurge
`maxSurge` defines the maximum number of replicas the rollout can create to move to the correct ratio set by the last setWeight. Max Surge can either be an integer or percentage as a string (i.e. "20%")
Defaults to "25%".
### maxUnavailable
The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxSurge is 0.
// Defaults to 0
### CanaryService
`canaryService` references a Service that will be modified to send traffic to only the canary ReplicaSet. This allows users to only hit the canary ReplicaSet.
Defaults to an empty string

Some files were not shown because too many files have changed in this diff Show More