fix(lambda): remove empty DestinationConfig from EventSourceMapping#220
Conversation
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.
|
[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 |
|
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. |
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.