-
Notifications
You must be signed in to change notification settings - Fork 2.3k
feat: Detect no matching resources #5917
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
base: master
Are you sure you want to change the base?
feat: Detect no matching resources #5917
Conversation
This PR has multiple commits, and the default merge method is: merge. 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. |
Welcome @adoramshoval! |
Hi @adoramshoval. 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 Once the patch is verified, the new status will be reflected by the 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. |
d88131f
to
015d04b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello there, @adoramshoval! Thanks for your contribution.
It's a good idea to refactor the code to use an object type instead of a map for patch options. Could we perhaps have that split out in a separate PR (with its tests), as it would result in a smaller change set to be reviewed for both PRs?
I also have a question: it looks like the new option allowNoTargetMatch
is false
by default. That would amount to a breaking change in the current kustomize flow, as current kustomizations with no matching resources do not fail to apply, but would start failing once this is merged. Could you please confirm that would be the case?
Hi @stormqueen1990 , thanks for your reply.
That is correct, thanks, I will work on that.
Yes, that is the case. Is there a certain work flow I should go through in case of a breaking change? |
015d04b
to
a7d3da1
Compare
Hi @stormqueen1990 , |
Hi there, @adoramshoval! In this case, we'll need some input from the current maintainers. |
Thank you very much! I'll take a look at the new PR soon. |
/ok-to-test |
a7d3da1
to
8da8556
Compare
Hi @koba1t , I have fixed the errors. Is it possible to re-run the tests? |
@koba1t , @stormqueen1990 allow me some time while I make some changes based on #5930 . |
hi @adoramshoval |
resolved conflicts
…nsformer This commit makes use of the new PatchArgs type and the new Patch option `allowNoTargetMatch`. This option, if true, allows rendering kustomization even if no resource is matched against the given target, while printing a warning to stderr. By default this option is set to false meaning that if no resource is matched against the given target an error is raised. This commit includes the extra tests to test this new feature.
8da8556
to
f329f91
Compare
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: adoramshoval The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi @koba1t , thanks a lot! Please let me know if there is anything else I am missing. |
@stormqueen1990 , @koba1t Could you go over this again and let me know? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi there, @adoramshoval! Sorry for the delay in reviewing this one.
I left some comments below, please let me know if you have any questions!
AllowNameChange: true, | ||
AllowKindChange: true, | ||
AllowKindChange: true, | ||
AllowNoTargetMatch: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is changing an existing test. Perhaps it would be better to keep it as-is, making only the necessary changes to pass with the current API changes, and add a new test to cover the new feature?
I'm also a bit confused about the removal of line 156.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh my bad, I thought it wouldn't make a difference if I change a bit the test.
I'll revert this change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we include some tests for this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have added a test for the change here: https://github.com/kubernetes-sigs/kustomize/pull/5917/files#diff-08aa260c0029be90fe08448a134735f879c3aec100f88c5b7275090c0a84228dR1276
Should it be somewhere else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to plugin/builtin/patchjson6902transformer/PatchJson6902Transformer.go
, could we include some tests to ensure things work as intended?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to the above, I have included the tests under api/krusty/extendedpatch_test.go
. Should I place them anywhere else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @stormqueen1990 , thanks a lot for your review! Answered your comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have added a test for the change here: https://github.com/kubernetes-sigs/kustomize/pull/5917/files#diff-08aa260c0029be90fe08448a134735f879c3aec100f88c5b7275090c0a84228dR1276
Should it be somewhere else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to the above, I have included the tests under api/krusty/extendedpatch_test.go
. Should I place them anywhere else?
AllowNameChange: true, | ||
AllowKindChange: true, | ||
AllowKindChange: true, | ||
AllowNoTargetMatch: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh my bad, I thought it wouldn't make a difference if I change a bit the test.
I'll revert this change.
Hi @stormqueen1990 , its been a while, could you give me the clarifications needed in order to continue with this PR? |
This PR aims to resolve the rotten issue no. #4379 .
As #4715 has rotten as well, this PR is continuing the contributor (@laxmikantbpandhare ) work maintaining the already existing commits.
This PR adds the enforcement for resources selectors not matching any resources at all by throwing an error if no resource has been selected.
A new option has been added,
allowNoTargetMatch
, allowing to avoid this error, which will cause a warning to be printed and resources to rendered if no further error is encountered.The
Options
attribute has been replaced from amap[string]bool
to a newtype
under theapi
directory namedPatchArgs
. This will provide a better documentation and will help to avoid typing errors.NOTE: The changes done in this PR have been requested in the PR mentioned above by @annasong20 .