Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: rs conflict with fallback to patch #3559

Merged

Conversation

zachaller
Copy link
Collaborator

@zachaller zachaller commented May 7, 2024

When updating a replicaset if we get a conflict with the replicaset, we fallback to a patch. This prevents us from getting into a loop of conflicts and preventing scaling from occurring. This is more of a temporary hot fix until a larger refactor can happen around how rollouts manages replicasets.

@zachaller zachaller changed the title Fix rs conflict with fallback to patch fix: rs conflict with fallback to patch May 7, 2024
Copy link
Contributor

github-actions bot commented May 7, 2024

Go Published Test Results

2 162 tests   2 162 ✅  2m 54s ⏱️
  119 suites      0 💤
    1 files        0 ❌

Results for commit ec9d9b0.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented May 7, 2024

E2E Tests Published Test Results

  4 files    4 suites   3h 24m 40s ⏱️
110 tests  99 ✅  6 💤  5 ❌
452 runs  416 ✅ 24 💤 12 ❌

For more details on these failures, see this check.

Results for commit ec9d9b0.

♻️ This comment has been updated with latest results.

Copy link

codecov bot commented May 7, 2024

Codecov Report

Attention: Patch coverage is 65.71429% with 24 lines in your changes missing coverage. Please review.

Project coverage is 80.26%. Comparing base (8405f2e) to head (e52400d).
Report is 114 commits behind head on master.

Current head e52400d differs from pull request most recent head ec9d9b0

Please upload reports for the commit ec9d9b0 to get more accurate results.

Files Patch % Lines
rollout/controller.go 75.00% 7 Missing and 7 partials ⚠️
rollout/sync.go 42.85% 4 Missing ⚠️
utils/controller/controller.go 0.00% 2 Missing and 1 partial ⚠️
rollout/ephemeralmetadata.go 33.33% 2 Missing ⚠️
rollout/canary.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3559      +/-   ##
==========================================
- Coverage   81.83%   80.26%   -1.58%     
==========================================
  Files         135      156      +21     
  Lines       20688    17970    -2718     
==========================================
- Hits        16931    14424    -2507     
+ Misses       2883     2634     -249     
- Partials      874      912      +38     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@zachaller zachaller force-pushed the fix-rs-conflict-with-fallback-to-patch branch from ef796a4 to 16e67ce Compare May 7, 2024 22:00
Signed-off-by: Zach Aller <[email protected]>

fix: switch to retry logic

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

retry experiments

Signed-off-by: Zach Aller <[email protected]>

remove TODO

Signed-off-by: Zach Aller <[email protected]>

remove accidental add

Signed-off-by: Zach Aller <[email protected]>

remove accidental add

Signed-off-by: Zach Aller <[email protected]>

add retry to setting revision

Signed-off-by: Zach Aller <[email protected]>

chore(deps): bump slsa-framework/slsa-github-generator from 1.10.0 to 2.0.0 (argoproj#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](slsa-framework/slsa-github-generator@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] <[email protected]>
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 (argoproj#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](sigstore/cosign-installer@e1523de...59acb62)

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

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

chore(deps): bump golangci/golangci-lint-action from 4 to 5 (argoproj#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](golangci/golangci-lint-action@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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

docs: provide recommendation for strategies (argoproj#3531)

* docs: provide recommendation for strategies

Signed-off-by: Kostis (Codefresh) <[email protected]>

* docs: traffic manager clarifications

Signed-off-by: Kostis (Codefresh) <[email protected]>

* docs: explain canary with/out traffic manager

Signed-off-by: Kostis (Codefresh) <[email protected]>

* docs: add 3 columns on the comparison table

Signed-off-by: Kostis (Codefresh) <[email protected]>

---------

Signed-off-by: Kostis (Codefresh) <[email protected]>

feat(dashboard): change the color of the current rollout step (argoproj#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 <[email protected]>

chore(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.37.0 to 1.38.0 (argoproj#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](aws/aws-sdk-go-v2@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] <[email protected]>
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 <[email protected]>

fix variable

Signed-off-by: Zach Aller <[email protected]>

add retry counts to log

Signed-off-by: Zach Aller <[email protected]>

add retry counts to logs

Signed-off-by: Zach Aller <[email protected]>

clean logs, always dump controller e2e logs

Signed-off-by: Zach Aller <[email protected]>

lower timeout

Signed-off-by: Zach Aller <[email protected]>

bump timeout on e2e

Signed-off-by: Zach Aller <[email protected]>

retry on rollout conflict

Signed-off-by: Zach Aller <[email protected]>

don't reque on rs changes

Signed-off-by: Zach Aller <[email protected]>

reque rs

Signed-off-by: Zach Aller <[email protected]>

bump qps for e2e

Signed-off-by: Zach Aller <[email protected]>

fix gen-crd

Signed-off-by: Zach Aller <[email protected]>

switch to patch

Signed-off-by: Zach Aller <[email protected]>

switch to patch

Signed-off-by: Zach Aller <[email protected]>

add log

Signed-off-by: Zach Aller <[email protected]>

move log lines

Signed-off-by: Zach Aller <[email protected]>

Trigger Build

Signed-off-by: Zach Aller <[email protected]>

fix one e2e test

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

add test

Signed-off-by: Zach Aller <[email protected]>

chore(deps): bump actions/setup-go from 5.0.0 to 5.0.1 (argoproj#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](actions/setup-go@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] <[email protected]>
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 (argoproj#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](codecov/codecov-action@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] <[email protected]>
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 (argoproj#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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

refactor

Signed-off-by: Zach Aller <[email protected]>

add test for updating rs revision

Signed-off-by: Zach Aller <[email protected]>

add retry for ephemeral metadata

Signed-off-by: Zach Aller <[email protected]>

clear some fields

Signed-off-by: Zach Aller <[email protected]>

add logs

Signed-off-by: Zach Aller <[email protected]>

refactor into function

Signed-off-by: Zach Aller <[email protected]>

change log

Signed-off-by: Zach Aller <[email protected]>

switch rollout update to patch fallback

Signed-off-by: Zach Aller <[email protected]>

siwtch ephemeral metadata sync to shared function

Signed-off-by: Zach Aller <[email protected]>

siwtch merge type

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

don't update status

Signed-off-by: Zach Aller <[email protected]>

switch rollout update to not use patch

Signed-off-by: Zach Aller <[email protected]>

change log

Signed-off-by: Zach Aller <[email protected]>

switch to small patch

Signed-off-by: Zach Aller <[email protected]>

some cleanup

Signed-off-by: Zach Aller <[email protected]>

remove not found rollout removal

Signed-off-by: Zach Aller <[email protected]>

working setup

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

fix test

Signed-off-by: Zach Aller <[email protected]>

small cleanup

Signed-off-by: Zach Aller <[email protected]>
@zachaller zachaller force-pushed the fix-rs-conflict-with-fallback-to-patch branch from 16e67ce to 7943d8d Compare May 7, 2024 22:02
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Copy link
Contributor

@leoluz leoluz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check my comments

test/e2e/aws_test.go Outdated Show resolved Hide resolved
test/e2e/aws_test.go Outdated Show resolved Hide resolved
utils/annotations/annotations.go Outdated Show resolved Hide resolved
rollout/ephemeralmetadata.go Outdated Show resolved Hide resolved
Comment on lines +795 to +799
func (f *fixture) expectGetReplicaSetAction(r *appsv1.ReplicaSet) int { //nolint:unused
len := len(f.kubeactions)
f.kubeactions = append(f.kubeactions, core.NewGetAction(schema.GroupVersionResource{Resource: "replicasets"}, r.Namespace, r.Name))
return len
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should probably add several test cases to validate the new updateReplicaSetFallbackToPatch method

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are two test that cover most the happy paths to lock in the behavior on the two conflict points here. I don't think it's worth going down a lot of the error paths like incorrect json marshal's etc.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that the coverage is comparing the wrong base from the link above.

rollout/controller.go Outdated Show resolved Hide resolved
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
Signed-off-by: Zach Aller <[email protected]>
rollout/controller.go Outdated Show resolved Hide resolved
Comment on lines +795 to +799
func (f *fixture) expectGetReplicaSetAction(r *appsv1.ReplicaSet) int { //nolint:unused
len := len(f.kubeactions)
f.kubeactions = append(f.kubeactions, core.NewGetAction(schema.GroupVersionResource{Resource: "replicasets"}, r.Namespace, r.Name))
return len
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that the coverage is comparing the wrong base from the link above.

Copy link

sonarcloud bot commented Jun 7, 2024

Quality Gate Passed Quality Gate passed

Issues
4 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
9.5% Duplication on New Code

See analysis details on SonarCloud

Copy link
Contributor

@leoluz leoluz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zachaller zachaller merged commit ec18d99 into argoproj:master Jun 7, 2024
21 checks passed
zachaller added a commit that referenced this pull request Jun 10, 2024
* fix: fallback to patch on scale conflict

Signed-off-by: Zach Aller <[email protected]>

fix: switch to retry logic

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

retry experiments

Signed-off-by: Zach Aller <[email protected]>

remove TODO

Signed-off-by: Zach Aller <[email protected]>

remove accidental add

Signed-off-by: Zach Aller <[email protected]>

remove accidental add

Signed-off-by: Zach Aller <[email protected]>

add retry to setting revision

Signed-off-by: Zach Aller <[email protected]>

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](slsa-framework/slsa-github-generator@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] <[email protected]>
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](sigstore/cosign-installer@e1523de...59acb62)

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

Signed-off-by: dependabot[bot] <[email protected]>
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](golangci/golangci-lint-action@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] <[email protected]>
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) <[email protected]>

* docs: traffic manager clarifications

Signed-off-by: Kostis (Codefresh) <[email protected]>

* docs: explain canary with/out traffic manager

Signed-off-by: Kostis (Codefresh) <[email protected]>

* docs: add 3 columns on the comparison table

Signed-off-by: Kostis (Codefresh) <[email protected]>

---------

Signed-off-by: Kostis (Codefresh) <[email protected]>

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 <[email protected]>

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](aws/aws-sdk-go-v2@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] <[email protected]>
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 <[email protected]>

fix variable

Signed-off-by: Zach Aller <[email protected]>

add retry counts to log

Signed-off-by: Zach Aller <[email protected]>

add retry counts to logs

Signed-off-by: Zach Aller <[email protected]>

clean logs, always dump controller e2e logs

Signed-off-by: Zach Aller <[email protected]>

lower timeout

Signed-off-by: Zach Aller <[email protected]>

bump timeout on e2e

Signed-off-by: Zach Aller <[email protected]>

retry on rollout conflict

Signed-off-by: Zach Aller <[email protected]>

don't reque on rs changes

Signed-off-by: Zach Aller <[email protected]>

reque rs

Signed-off-by: Zach Aller <[email protected]>

bump qps for e2e

Signed-off-by: Zach Aller <[email protected]>

fix gen-crd

Signed-off-by: Zach Aller <[email protected]>

switch to patch

Signed-off-by: Zach Aller <[email protected]>

switch to patch

Signed-off-by: Zach Aller <[email protected]>

add log

Signed-off-by: Zach Aller <[email protected]>

move log lines

Signed-off-by: Zach Aller <[email protected]>

Trigger Build

Signed-off-by: Zach Aller <[email protected]>

fix one e2e test

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

add test

Signed-off-by: Zach Aller <[email protected]>

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](actions/setup-go@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] <[email protected]>
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](codecov/codecov-action@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] <[email protected]>
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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

refactor

Signed-off-by: Zach Aller <[email protected]>

add test for updating rs revision

Signed-off-by: Zach Aller <[email protected]>

add retry for ephemeral metadata

Signed-off-by: Zach Aller <[email protected]>

clear some fields

Signed-off-by: Zach Aller <[email protected]>

add logs

Signed-off-by: Zach Aller <[email protected]>

refactor into function

Signed-off-by: Zach Aller <[email protected]>

change log

Signed-off-by: Zach Aller <[email protected]>

switch rollout update to patch fallback

Signed-off-by: Zach Aller <[email protected]>

siwtch ephemeral metadata sync to shared function

Signed-off-by: Zach Aller <[email protected]>

siwtch merge type

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

don't update status

Signed-off-by: Zach Aller <[email protected]>

switch rollout update to not use patch

Signed-off-by: Zach Aller <[email protected]>

change log

Signed-off-by: Zach Aller <[email protected]>

switch to small patch

Signed-off-by: Zach Aller <[email protected]>

some cleanup

Signed-off-by: Zach Aller <[email protected]>

remove not found rollout removal

Signed-off-by: Zach Aller <[email protected]>

working setup

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

fix test

Signed-off-by: Zach Aller <[email protected]>

small cleanup

Signed-off-by: Zach Aller <[email protected]>

* typo

Signed-off-by: Zach Aller <[email protected]>

* cleanup commented out code

Signed-off-by: Zach Aller <[email protected]>

* Trigger Build

Signed-off-by: Zach Aller <[email protected]>

* only patch rollouts manged fields

Signed-off-by: Zach Aller <[email protected]>

* lint

Signed-off-by: Zach Aller <[email protected]>

* fix flaky test

Signed-off-by: Zach Aller <[email protected]>

* fix flaky test

Signed-off-by: Zach Aller <[email protected]>

* reduce patch size

Signed-off-by: Zach Aller <[email protected]>

* get some logs

Signed-off-by: Zach Aller <[email protected]>

* cleanup

Signed-off-by: Zach Aller <[email protected]>

* improve tests

Signed-off-by: Zach Aller <[email protected]>

* Trigger Build

Signed-off-by: Zach Aller <[email protected]>

* add env var to log diff

Signed-off-by: Zach Aller <[email protected]>

* remove expirment rs patch

Signed-off-by: Zach Aller <[email protected]>

* imporve logs

Signed-off-by: Zach Aller <[email protected]>

* use correct variable

Signed-off-by: Zach Aller <[email protected]>

* change env var

Signed-off-by: Zach Aller <[email protected]>

* fix flaky e2e

Signed-off-by: Zach Aller <[email protected]>

* fix flaky e2e

Signed-off-by: Zach Aller <[email protected]>

* fix flaky e2e

Signed-off-by: Zach Aller <[email protected]>

* remove not found rollouts

Signed-off-by: Zach Aller <[email protected]>

* update replica count

Signed-off-by: Zach Aller <[email protected]>

* lint

Signed-off-by: Zach Aller <[email protected]>

* refactor cleanup

Signed-off-by: Zach Aller <[email protected]>

* keep track of UpdatedReplicas on sync

Signed-off-by: Zach Aller <[email protected]>

* some hpa tests and log changes

Signed-off-by: Zach Aller <[email protected]>

* remove update to UpdatedReplicas

Signed-off-by: Zach Aller <[email protected]>

* add more test

Signed-off-by: Zach Aller <[email protected]>

* fix test

Signed-off-by: Zach Aller <[email protected]>

* undo change

Signed-off-by: Zach Aller <[email protected]>

* add comment to flaky tests

Signed-off-by: Zach Aller <[email protected]>

* cleanup Makefile

Signed-off-by: Zach Aller <[email protected]>

* remove test

Signed-off-by: Zach Aller <[email protected]>

* use labels

Signed-off-by: Zach Aller <[email protected]>

* remove make file change

Signed-off-by: Zach Aller <[email protected]>

* add label to test

Signed-off-by: Zach Aller <[email protected]>

* review changes

Signed-off-by: Zach Aller <[email protected]>

* change to TODO

Signed-off-by: Zach Aller <[email protected]>

* fix test

Signed-off-by: Zach Aller <[email protected]>

* add extra logging for tests

Signed-off-by: Zach Aller <[email protected]>

* Trigger Build

Signed-off-by: Zach Aller <[email protected]>

* add ignore to codecov

Signed-off-by: Zach Aller <[email protected]>

* we always generate patch because we are comparing against emtpy obj

Signed-off-by: Zach Aller <[email protected]>

---------

Signed-off-by: Zach Aller <[email protected]>
zachaller added a commit that referenced this pull request Jun 13, 2024
* fix: fallback to patch on scale conflict

Signed-off-by: Zach Aller <[email protected]>

fix: switch to retry logic

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

retry experiments

Signed-off-by: Zach Aller <[email protected]>

remove TODO

Signed-off-by: Zach Aller <[email protected]>

remove accidental add

Signed-off-by: Zach Aller <[email protected]>

remove accidental add

Signed-off-by: Zach Aller <[email protected]>

add retry to setting revision

Signed-off-by: Zach Aller <[email protected]>

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](slsa-framework/slsa-github-generator@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] <[email protected]>
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](sigstore/cosign-installer@e1523de...59acb62)

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

Signed-off-by: dependabot[bot] <[email protected]>
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](golangci/golangci-lint-action@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] <[email protected]>
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) <[email protected]>

* docs: traffic manager clarifications

Signed-off-by: Kostis (Codefresh) <[email protected]>

* docs: explain canary with/out traffic manager

Signed-off-by: Kostis (Codefresh) <[email protected]>

* docs: add 3 columns on the comparison table

Signed-off-by: Kostis (Codefresh) <[email protected]>

---------

Signed-off-by: Kostis (Codefresh) <[email protected]>

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 <[email protected]>

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](aws/aws-sdk-go-v2@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] <[email protected]>
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 <[email protected]>

fix variable

Signed-off-by: Zach Aller <[email protected]>

add retry counts to log

Signed-off-by: Zach Aller <[email protected]>

add retry counts to logs

Signed-off-by: Zach Aller <[email protected]>

clean logs, always dump controller e2e logs

Signed-off-by: Zach Aller <[email protected]>

lower timeout

Signed-off-by: Zach Aller <[email protected]>

bump timeout on e2e

Signed-off-by: Zach Aller <[email protected]>

retry on rollout conflict

Signed-off-by: Zach Aller <[email protected]>

don't reque on rs changes

Signed-off-by: Zach Aller <[email protected]>

reque rs

Signed-off-by: Zach Aller <[email protected]>

bump qps for e2e

Signed-off-by: Zach Aller <[email protected]>

fix gen-crd

Signed-off-by: Zach Aller <[email protected]>

switch to patch

Signed-off-by: Zach Aller <[email protected]>

switch to patch

Signed-off-by: Zach Aller <[email protected]>

add log

Signed-off-by: Zach Aller <[email protected]>

move log lines

Signed-off-by: Zach Aller <[email protected]>

Trigger Build

Signed-off-by: Zach Aller <[email protected]>

fix one e2e test

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

add test

Signed-off-by: Zach Aller <[email protected]>

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](actions/setup-go@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] <[email protected]>
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](codecov/codecov-action@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] <[email protected]>
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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

refactor

Signed-off-by: Zach Aller <[email protected]>

add test for updating rs revision

Signed-off-by: Zach Aller <[email protected]>

add retry for ephemeral metadata

Signed-off-by: Zach Aller <[email protected]>

clear some fields

Signed-off-by: Zach Aller <[email protected]>

add logs

Signed-off-by: Zach Aller <[email protected]>

refactor into function

Signed-off-by: Zach Aller <[email protected]>

change log

Signed-off-by: Zach Aller <[email protected]>

switch rollout update to patch fallback

Signed-off-by: Zach Aller <[email protected]>

siwtch ephemeral metadata sync to shared function

Signed-off-by: Zach Aller <[email protected]>

siwtch merge type

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

don't update status

Signed-off-by: Zach Aller <[email protected]>

switch rollout update to not use patch

Signed-off-by: Zach Aller <[email protected]>

change log

Signed-off-by: Zach Aller <[email protected]>

switch to small patch

Signed-off-by: Zach Aller <[email protected]>

some cleanup

Signed-off-by: Zach Aller <[email protected]>

remove not found rollout removal

Signed-off-by: Zach Aller <[email protected]>

working setup

Signed-off-by: Zach Aller <[email protected]>

lint

Signed-off-by: Zach Aller <[email protected]>

fix test

Signed-off-by: Zach Aller <[email protected]>

small cleanup

Signed-off-by: Zach Aller <[email protected]>

* typo

Signed-off-by: Zach Aller <[email protected]>

* cleanup commented out code

Signed-off-by: Zach Aller <[email protected]>

* Trigger Build

Signed-off-by: Zach Aller <[email protected]>

* only patch rollouts manged fields

Signed-off-by: Zach Aller <[email protected]>

* lint

Signed-off-by: Zach Aller <[email protected]>

* fix flaky test

Signed-off-by: Zach Aller <[email protected]>

* fix flaky test

Signed-off-by: Zach Aller <[email protected]>

* reduce patch size

Signed-off-by: Zach Aller <[email protected]>

* get some logs

Signed-off-by: Zach Aller <[email protected]>

* cleanup

Signed-off-by: Zach Aller <[email protected]>

* improve tests

Signed-off-by: Zach Aller <[email protected]>

* Trigger Build

Signed-off-by: Zach Aller <[email protected]>

* add env var to log diff

Signed-off-by: Zach Aller <[email protected]>

* remove expirment rs patch

Signed-off-by: Zach Aller <[email protected]>

* imporve logs

Signed-off-by: Zach Aller <[email protected]>

* use correct variable

Signed-off-by: Zach Aller <[email protected]>

* change env var

Signed-off-by: Zach Aller <[email protected]>

* fix flaky e2e

Signed-off-by: Zach Aller <[email protected]>

* fix flaky e2e

Signed-off-by: Zach Aller <[email protected]>

* fix flaky e2e

Signed-off-by: Zach Aller <[email protected]>

* remove not found rollouts

Signed-off-by: Zach Aller <[email protected]>

* update replica count

Signed-off-by: Zach Aller <[email protected]>

* lint

Signed-off-by: Zach Aller <[email protected]>

* refactor cleanup

Signed-off-by: Zach Aller <[email protected]>

* keep track of UpdatedReplicas on sync

Signed-off-by: Zach Aller <[email protected]>

* some hpa tests and log changes

Signed-off-by: Zach Aller <[email protected]>

* remove update to UpdatedReplicas

Signed-off-by: Zach Aller <[email protected]>

* add more test

Signed-off-by: Zach Aller <[email protected]>

* fix test

Signed-off-by: Zach Aller <[email protected]>

* undo change

Signed-off-by: Zach Aller <[email protected]>

* add comment to flaky tests

Signed-off-by: Zach Aller <[email protected]>

* cleanup Makefile

Signed-off-by: Zach Aller <[email protected]>

* remove test

Signed-off-by: Zach Aller <[email protected]>

* use labels

Signed-off-by: Zach Aller <[email protected]>

* remove make file change

Signed-off-by: Zach Aller <[email protected]>

* add label to test

Signed-off-by: Zach Aller <[email protected]>

* review changes

Signed-off-by: Zach Aller <[email protected]>

* change to TODO

Signed-off-by: Zach Aller <[email protected]>

* fix test

Signed-off-by: Zach Aller <[email protected]>

* add extra logging for tests

Signed-off-by: Zach Aller <[email protected]>

* Trigger Build

Signed-off-by: Zach Aller <[email protected]>

* add ignore to codecov

Signed-off-by: Zach Aller <[email protected]>

* we always generate patch because we are comparing against emtpy obj

Signed-off-by: Zach Aller <[email protected]>

---------

Signed-off-by: Zach Aller <[email protected]>
@zachaller zachaller added the cherry-pick-completed Used once we have cherry picked the PR to all requested releases label Jun 13, 2024
@SleepyBrett
Copy link

SleepyBrett commented Jun 14, 2024

hey @zachaller It seems like this has had me chasing my tail for a few weeks now in relation to: #3569

We've been using the notification engine separately to create sqs events back to the deploying software on rollout progression and other factors. We've been seeing, as the ticket describes, rollouts that seem to hang for a very long time once they've completed their steps and then eventually they will suddenly resolve themselves, or we can go into the rollout and make some manual status block changes to unblock them. It wasn't every rollout, but it was a significant percentage of them.

I'm wondering if the updates on the rollout to the notified.notifications.argoproj.io: annotations that then automagically propagate down to the replicaset are what is causing our issue. We were seeing a lot of this kind of looping:

argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:49Z" level=info msg="Reconciliation completed" generation=4 namespace=fastlane-synthetic-health resourceVersion=3497127176 rollout=happy-path-canary-microservice time_ms=15.57145
argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:49Z" level=error msg="rollout syncHandler error: failed to getAllReplicaSetsAndSyncRevision in isScalingEvent: error updating replicaset revision: Operation cannot be fulfilled on replicasets.apps \"happy-path-canary-microservice-7767565bcf\": the object has been modified; please apply your changes to the latest version and try again" namespace=fastlane-synthetic-health rollout=happy-path-canary-microservice
argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:49Z" level=info msg="rollout syncHandler queue retries: 6128 : key \"fastlane-synthetic-health/happy-path-canary-microservice\"" namespace=fastlane-synthetic-health rollout=happy-path-canary-microservice
argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:49Z" level=error msg="failed to getAllReplicaSetsAndSyncRevision in isScalingEvent: error updating replicaset revision: Operation cannot be fulfilled on replicasets.apps \"happy-path-canary-microservice-7767565bcf\": the object has been modified; please apply your changes to the latest version and try again\n" error="<nil>"
argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:59Z" level=info msg="Started syncing rollout" generation=4 namespace=fastlane-synthetic-health resourceVersion=3497127176 rollout=happy-path-canary-microservice
argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:59Z" level=info msg="Updating replica set 'happy-path-canary-microservice-7767565bcf' revision from 11406 to 11408" namespace=fastlane-synthetic-health rollout=happy-path-canary-microservice
argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:59Z" level=error msg="Error: updating replicaset revision" error="Operation cannot be fulfilled on replicasets.apps \"happy-path-canary-microservice-7767565bcf\": the object has been modified; please apply your changes to the latest version and try again" namespace=fastlane-synthetic-health rollout=happy-path-canary-microservice
argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:59Z" level=error msg="roCtx.reconcile err failed to getAllReplicaSetsAndSyncRevision in isScalingEvent: error updating replicaset revision: Operation cannot be fulfilled on replicasets.apps \"happy-path-canary-microservice-7767565bcf\": the object has been modified; please apply your changes to the latest version and try again" generation=4 namespace=fastlane-synthetic-health resourceVersion=3497127176 rollout=happy-path-canary-microservice
argo-rollouts-6bff4d767b-fv26j argo-rollouts time="2024-06-13T23:57:59Z" level=info msg="Reconciliation completed" generation=4 namespace=fastlane-synthetic-health resourceVersion=3497127176 rollout=happy-path-canary-microservice time_ms=14.442395
argo

I'm now excited to try out 1.7.* once it's had a few days for other people to find any bugs for me ;) maybe 1.7.1.

Though it looks like maybe this got cherry picked into 1.6, i guess i can wait for a 1.6.7 as well.

Do you think my hypothesis makes sense?

@njtman njtman mentioned this pull request Jun 18, 2024
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cherry-pick/release-1.6 cherry-pick/release-1.7 cherry-pick-completed Used once we have cherry picked the PR to all requested releases
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants