Switch to aws-sdk-go-v2
This PR switches the codebase from aws-sdk-go to aws-sdk-go-v2 due to aws-sdk-go going EoL next year https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-go-v1-on-july-31-2025/
For the most part, it is faithful to the original code, some differences to highlight:
- The
httputilpackage was removed from this codebase - it was providing an implementation of a client-side rate limiter that is now built-in functionality in aws-sdk-go-v2. - The
CredentialsChainVerboseErrorsoption was removed in aws-sdk-go-v2 https://github.com/aws/aws-sdk-go-v2/issues/98
Fixes #117
I added b9333f0 and a7a91e5 to this PR just to show that CI will pass with them included (otherwise, CI fails due to linting errors). The same two commits are also split out into a separate PR in #122 to help make this PR smaller and more easily reviewable.
cc @justinsb @micahhausler @nckturner @wongma7 @xdu31
Anyone have cycles to help review this? I'm very sympathetic about the size of this PR and so I tried to keep changes to an absolute minimum, but if there's anything I can do to help make this easier to review, please let me know.
/assign @gargipanatula @yue9944882
@yue9944882: GitHub didn't allow me to assign the following users: gargipanatula.
Note that only kubernetes-sigs members with read permissions, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. For more information please see the contributor guide
In response to this:
/assign @gargipanatula @yue9944882
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.
Verified changes with manual testing, create/get secret workflow:
# kubectl create secret generic secret2 -n default --from-literal=mykey=mydata
secret/secret2 created
# etcd_endpoints=$(grep -- "- --etcd-servers=" /etc/kubernetes/manifests/kube-apiserver.manifest | sed 's/- --etcd-servers=//' | tr -d '[:space:]'); ETCDCTL_API=3 etcdctl --endpoints=[$etcd_endpoints] get /registry/secrets/default/secret2 --insecure-skip-tls-verify=true --insecure-transport=false
/registry/secrets/default/secret2
k8s:enc:kms:v2:aws-encryption-provider-v2-aok:
���V�+��*�c�/W�!0�TuC��e��9p����^��2�5U܍"�`H�uC���FكĈ1�b~��
���u�.!�@P�l-(�1a���u��a�N��y�c+��F8�F$KD�Ӈݱ����EkGG7�Vk�ɓ}/��a��0by�ƃ����_����*�9�w���*��������(Gf�E����jQ��Ao�'b�m`�ջ}G��9���ϦV��Z���a�R~ݡBY
+�=.>n�����Karn:aws:kms:us-west-2:216989095152:key/6bbd726f-cf8d-4977-932d-23b7a13eb2e6�1x �\�
0o0m0h)�`�He.0�w��HY4��[�A�~�)z��!چF~0| *�H��
�Z#K��<Uq`�;t�%@���������la�}�/�?0[��v���ig~Aٿ��O��i��N5����(
# kubectl describe secret secret2 -n default
Name: secret2
Namespace: default
Labels: <none>
Annotations: <none>
Type: Opaque
Data
====
mykey: 6 bytes
/hold
for confirming with @micahhausler offline
/hold cancel
/approve
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mjlshen, yue9944882
The full list of commands accepted by this bot can be found here.
The pull request process is described here
- ~~OWNERS~~ [yue9944882]
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment