Skip to content

feat: improve StatefulSet immutable field error messages #21209

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

Merged
merged 5 commits into from
Feb 26, 2025

Conversation

aali309
Copy link
Contributor

@aali309 aali309 commented Dec 17, 2024

Checklist:

Fixes: #20899
Depends on: 654

  • Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this does not need to be in the release notes.
  • The title of the PR states what changed and the related issues number (used for the release note).
  • The title of the PR conforms to the Toolchain Guide
  • I've included "Closes [ISSUE #]" or "Fixes [ISSUE #]" in the description to automatically close the associated issue.
  • I've updated both the CLI and UI to expose my feature, or I plan to submit a second PR with them.
  • Does this PR require documentation updates?
  • I've updated documentation as required by this PR.
  • I have signed off all my commits as required by DCO
  • I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
  • My build is green (troubleshooting builds).
  • My new feature complies with the feature status guidelines.
  • I have added a brief description of why this PR is necessary and/or what this PR solves.
  • Optional. My organization is added to USERS.md.
  • Optional. For bug fixes, I've indicated what older releases this fix should be cherry-picked into (this may or may not happen depending on risk/complexity).

Before:
Screenshot 2024-12-13 at 8 30 35 PM

After:
Screenshot 2025-02-13 at 4 33 35 PM

Copy link

bunnyshell bot commented Dec 17, 2024

❌ Preview Environment deleted from Bunnyshell

Available commands (reply to this comment):

  • 🚀 /bns:deploy to deploy the environment

@aali309
Copy link
Contributor Author

aali309 commented Dec 18, 2024

How to test locally

  1. See changes made on the gitops-engine repo

  2. checkout to this PR

  3. Add this line at the bottom of the go.mod file:
    replace github.com/argoproj/gitops-engine => github.com/aali309/gitops-engine 3df63b12b15bd2290d40f2f117eac2b8310156e1

  4. run make mod-download-local && make mod-vendor-local

this should change the above added replace github...... to something similar to the below screenshot

Screenshot 2024-12-18 at 2 52 36 PM

  1. Run the server locally and make changes to any immutable fields and try to sync. The error should provide the exact field that was changed with the old and new values.

@aali309 aali309 marked this pull request as ready for review December 18, 2024 20:36
@aali309 aali309 requested a review from a team as a code owner December 18, 2024 20:36
}

// Format immutable fields error message
if (cleanMessage.includes('attempting to change immutable fields:')) {
Copy link
Member

Choose a reason for hiding this comment

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

maybe it will be better to move this part to some formatter util that will cover such cases and use it here? i am sure we probably will want cover other formatting cases in future

@aali309 aali309 force-pushed the violatedField branch 4 times, most recently from 223a774 to d79065f Compare January 8, 2025 17:45
@aali309 aali309 force-pushed the violatedField branch 3 times, most recently from 493abda to fcda7ab Compare January 16, 2025 21:41
@aali309 aali309 force-pushed the violatedField branch 2 times, most recently from 3e13b40 to 9ce0f82 Compare January 29, 2025 20:12
Copy link
Member

@ishitasequeira ishitasequeira left a comment

Choose a reason for hiding this comment

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

LGTM!!

@ishitasequeira
Copy link
Member

@pasha-codefresh any more concerns regarding the changes?

@aali309
Copy link
Contributor Author

aali309 commented Feb 10, 2025

PING @pasha-codefresh

@aali309 aali309 force-pushed the violatedField branch 4 times, most recently from c0fc4a6 to d2c3234 Compare February 14, 2025 17:16
@aali309 aali309 force-pushed the violatedField branch 2 times, most recently from 46abb0c to 642897c Compare February 20, 2025 00:00
@pasha-codefresh
Copy link
Member

Will review it one more time today

return message;
}

const cleanMessage = message;
Copy link
Member

Choose a reason for hiding this comment

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

why you need this? you not doing any modification of message

.filter(line => line.trim())
.map(line => {
if (line.startsWith('-')) {
const [field, changes] = line.substring(2).split(':');
Copy link
Member

Choose a reason for hiding this comment

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

can you please add some comment that explains why 2 and why split, i think you need move it to private function that will be named formatStatefulSet ( something like this ). And it will be covered at least with some comment to show what all these splits doing.

@pasha-codefresh
Copy link
Member

@aali309 few minor comments and we are good to go

Copy link
Member

@pasha-codefresh pasha-codefresh left a comment

Choose a reason for hiding this comment

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

LGTM!

@pasha-codefresh pasha-codefresh merged commit c09e6fa into argoproj:master Feb 26, 2025
23 checks passed
@github-project-automation github-project-automation bot moved this from Changes Requested to Done in Argo CD Review Feb 26, 2025
harshitSkyscanner pushed a commit to harshitSkyscanner/argo-cd that referenced this pull request Feb 27, 2025
chzar pushed a commit to chzar/argo-cd that referenced this pull request Mar 3, 2025
kingbj940429 pushed a commit to kingbj940429/argo-cd that referenced this pull request Mar 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Report the field that violated the updates to fields are forbidden constraint
4 participants