fix(lambda): remove empty DestinationConfig from EventSourceMapping#220
Conversation
|
Hi @Mallikarjunadevops. Thanks for your PR. I'm waiting for a aws-controllers-k8s member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions 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. |
michaelhtm
left a comment
There was a problem hiding this comment.
Thanks @Mallikarjunadevops
just had one comment below
There was a problem hiding this comment.
not sure if this is necessary, especially if we clean all destinationConfigs from all outputs..
There was a problem hiding this comment.
Good catch! You are completely right. Since we clean it from all outputs during ReadOne and Create, it's impossible for the empty struct to be persisted in the Spec, rendering the update hook redundant.
I have pushed a new commit removing the sdk_update_pre_build_request template and its injection from generator.yaml.
Addresses review comment in aws-controllers-k8s#220. Since the DestinationConfig is sanitized on all outputs (ReadOne/Create), the empty struct is never persisted to the desired spec, making the pre-update sanitization redundant.
|
Would be awesome to see this merged! |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Mallikarjunadevops The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
0df10b0 to
b32a1f7
Compare
Addresses review comment in aws-controllers-k8s#220. Since the DestinationConfig is sanitized on all outputs (ReadOne/Create), the empty struct is never persisted to the desired spec, making the pre-update sanitization redundant.
|
@purkhusid Thanks for the support! Glad to hear this fix would be helpful for you. @sapphirew Whenever you have a moment, would it be possible to get an |
Fixes aws-controllers-k8s/community#2865 Co-authored-by: Mallikarjunadevops <73437975+Mallikarjunadevops@users.noreply.github.com>
b32a1f7 to
91207fb
Compare
|
/test all |
|
The tests are green. Any chance this could get into the next release? |
Fixes aws-controllers-k8s/community#2865
When creating an EventSourceMapping without specifying a DestinationConfig, the AWS Lambda API returns a DestinationConfig containing empty OnFailure or OnSuccess structs. The controller's ReadOne logic previously copied this empty structure into the resource's Spec, causing the Kubernetes API Server to persist the invalid empty config as a default value.
During subsequent reconciliations, the controller would then attempt to update the resource by sending this empty config back to AWS, resulting in an InvalidParameterValueException.
This fix injects hooks into the Create, ReadOne, and Update paths to detect and nil-out empty DestinationConfig blocks, preventing them from being saved to Kubernetes or sent to AWS.