aws-encryption-provider icon indicating copy to clipboard operation
aws-encryption-provider copied to clipboard

Switch to aws-sdk-go-v2

Open mjlshen opened this issue 1 year ago • 2 comments

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 httputil package 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 CredentialsChainVerboseErrors option was removed in aws-sdk-go-v2 https://github.com/aws/aws-sdk-go-v2/issues/98

Fixes #117

mjlshen avatar Oct 08 '24 14:10 mjlshen

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.

mjlshen avatar Nov 13 '24 13:11 mjlshen

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.

mjlshen avatar Mar 13 '25 05:03 mjlshen

/assign @gargipanatula @yue9944882

yue9944882 avatar Mar 26 '25 22:03 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.

k8s-ci-robot avatar Mar 26 '25 22:03 k8s-ci-robot

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

gargipanatula avatar Apr 11 '25 17:04 gargipanatula

/hold

for confirming with @micahhausler offline

yue9944882 avatar Apr 11 '25 22:04 yue9944882

/hold cancel

yue9944882 avatar Apr 14 '25 19:04 yue9944882

/approve

yue9944882 avatar Apr 14 '25 22:04 yue9944882

[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

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

k8s-ci-robot avatar Apr 14 '25 22:04 k8s-ci-robot