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 TGB webhook error message to report changes to immutable field #4070

Merged
merged 1 commit into from
Feb 27, 2025

Conversation

maruina
Copy link
Contributor

@maruina maruina commented Feb 25, 2025

Issue

Description

Flux is not able to delete and re-create a TargetGroupBinding object when users try to change an immutable field. The issues has been reported in fluxcd/kustomize-controller#834

This is because the kustomize-controller is using those regular expressions to detect immutable errors returned by custom admission webhooks and Kubernetes CEL.

This PR is changing the error message to match the regular expression

regexp.MustCompile(`.*immutable\sfield.*`)

Checklist

  • Added tests that cover your change (if possible)
  • Added/modified documentation as required (such as the README.md, or the docs directory)
  • Manually tested
  • Made sure the title of the PR is a good description that can go into the release notes

BONUS POINTS checklist: complete for good vibes and maybe prizes?! 🤯

  • Backfilled missing tests for code in same general area 🎉
  • Refactored something and made the world a better place 🌟

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Feb 25, 2025
@k8s-ci-robot
Copy link
Contributor

Welcome @maruina!

It looks like this is your first PR to kubernetes-sigs/aws-load-balancer-controller 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/aws-load-balancer-controller has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Feb 25, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @maruina. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Feb 25, 2025
@maruina maruina changed the title Fix webhook error message Fix TGB webhook error message to report changes to immutable field Feb 25, 2025
@zac-nixon
Copy link
Collaborator

/lgtm
/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Feb 25, 2025
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 25, 2025
@maruina
Copy link
Contributor Author

maruina commented Feb 27, 2025

Tested manually in a cluster. After updating the AWS load balancer controller with this PR, the kustomize-controller is detecting an immutable field, deleting the TGB and re-creating it

kubectl -n flux-system describe kustomizations.kustomize.toolkit.fluxcd.io XYZ
[...]
Events:
  Type     Reason                Age                   From                  Message
  ----     ------                ----                  ----                  -------
  Warning  ReconciliationFailed  6m49s (x131 over 2d)  kustomize-controller  TargetGroupBinding/XYZ dry-run failed (Forbidden): admission webhook "vtargetgroupbinding.elbv2.k8s.aws" denied the request: TargetGroupBinding update may not change these fields: spec.targetGroupARN
  Warning  ReconciliationFailed  52s                   kustomize-controller  TargetGroupBinding/XYZ immutable field detected, failed to wait for object to be deleted: context canceled
  Normal   Progressing           18s                   kustomize-controller  TargetGroupBinding/XYZ created
  Normal  Progressing              18s  kustomize-controller  Health check passed in 77.803065ms
  Normal  ReconciliationSucceeded  18s  kustomize-controller  Reconciliation finished in 1.188936124s, next run in 10m0s

@zac-nixon zac-nixon added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 27, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by: maruina

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@zac-nixon
Copy link
Collaborator

Thanks for the PR.

@k8s-ci-robot k8s-ci-robot merged commit f9699da into kubernetes-sigs:main Feb 27, 2025
9 checks passed
@maruina maruina deleted the maruina/flux branch February 27, 2025 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants