Skip to content
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

Updated aws-sdk-go to 1.23.18 #2323

Merged
merged 2 commits into from
Sep 12, 2019
Merged

Conversation

alexpekurovsky
Copy link
Contributor

@k8s-ci-robot
Copy link
Contributor

Welcome @alexpekurovsky!

It looks like this is your first PR to kubernetes/autoscaler 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/autoscaler has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot
Copy link
Contributor

Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA.

It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.


  • If you've already signed a CLA, it's possible we don't have your GitHub username or you're using a different email address. Check your existing CLA data and verify that your email is set on your git commits.
  • If you signed the CLA as a corporation, please sign in with your organization's credentials at https://identity.linuxfoundation.org/projects/cncf to be authorized.
  • If you have done the above and are still having issues with the CLA being reported as unsigned, please log a ticket with the Linux Foundation Helpdesk: https://support.linuxfoundation.org/
  • Should you encounter any issues with the Linux Foundation Helpdesk, send a message to the backup e-mail support address at: [email protected]

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/test-infra repository. I understand the commands that are listed here.

@k8s-ci-robot k8s-ci-robot added cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Sep 10, 2019
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Sep 10, 2019
@alexpekurovsky
Copy link
Contributor Author

/assign @piosz

@alexpekurovsky
Copy link
Contributor Author

Could it also be backported? EKS currently is 1.14, so even releasing it to 1.16/1.17 won't help with EKS

@alfredkrohmer
Copy link
Contributor

I would also love to have this backported. The alternative would be to wait for Kubernetes 1.16 on EKS or everyone needs to build their own image with this fix included to get the advantage of IAM roles for serviceaccounts.

@losipiuk
Copy link
Contributor

The contents of this PR are unexpected. Why the only file changed in vendor is cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/version.go. It seems that something else should be changed. Otherwise what is the point of upgrading?

Btw. Did you run the update-vendor.sh script? After changing go.mod-extra it should be rerun. To limit amount of changes in go.mod and vendor we can rerun it agains the same commit which was used for previous updating. I.e.

update-vendor.sh -r708a7f76dba706ed1e7dc4b4c3a53f63b0b7544a

@alexpekurovsky
Copy link
Contributor Author

The point of upgrading of AWS SDK is to get support of new way of getting IAM Roles credentials (without reading them from metadata). I just did search&replace of aws-sdk-go version. If something is needed additionally - please process.

Identical PR for external-dns: kubernetes-sigs/external-dns#1182

@micahhausler
Copy link
Member

@alexpekurovsky The external-dns change was only to go.mod and go.sum because that project doesn't vendor its dependencies. Autoscaler vendors its dependences, so there needed to be a vendor update in addition to a go.mod bump

#2305 includes an updated version of the AWS SDK which will support this

@alexpekurovsky
Copy link
Contributor Author

@micahhausler, I see. However #2305 upgrades aws-sdk-go to 1.23.12, but for WebIdentity at least 1.23.13 is required

@k8s-ci-robot k8s-ci-robot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Sep 12, 2019
@alexpekurovsky
Copy link
Contributor Author

@losipiuk, PR updated using update-vendor.sh -r708a7f76dba706ed1e7dc4b4c3a53f63b0b7544a

@losipiuk
Copy link
Contributor

Looks fine to me.
@Jeffwan PTAL.

@losipiuk losipiuk assigned Jeffwan and unassigned piosz Sep 12, 2019
@losipiuk
Copy link
Contributor

losipiuk commented Sep 12, 2019

One thing @alexpekurovsky . If you could extract change to go.mod-extra to separate commit, it would be easier to track changes in git history.

@alexpekurovsky
Copy link
Contributor Author

@losipiuk Do you prefer change to go.mod-extra to be before or after update-vendor commit?

@losipiuk
Copy link
Contributor

Łukasz Osipiuk Do you prefer change to go.mod-extra to be before or after update-vendor commit?

Before :)

…7f76dba706ed1e7dc4b4c3a53f63b0b7544a (708a7f76dba706ed1e7dc4b4c3a53f63b0b7544a)
@alexpekurovsky
Copy link
Contributor Author

@losipiuk Done

@micahhausler
Copy link
Member

micahhausler commented Sep 12, 2019

@micahhausler, I see. However #2305 upgrades aws-sdk-go to 1.23.12, but for WebIdentity at least 1.23.13 is required

That version is only for the front end model change. The credential provider SDK changes came in 1.23.2 and 1.21.0

That said, this PR doesn’t hurt anything, but it also doesn’t add anything required.

@Jeffwan
Copy link
Contributor

Jeffwan commented Sep 12, 2019

Thanks @micahhausler for details. @alexpekurovsky What you ask has been supported in the version. I don't see downside to merge this one. Always good to get higher version. :D

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Sep 12, 2019
@losipiuk
Copy link
Contributor

/lgtm
/approve
Thanks!

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: losipiuk

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 k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 12, 2019
@k8s-ci-robot k8s-ci-robot merged commit 01ab6d2 into kubernetes:master Sep 12, 2019
@alexpekurovsky
Copy link
Contributor Author

@micahhausler I noticed you're working in EKS team, so can we update documentation on AWS website, that states minimum version of Go to be 1.23.13 to support Web Identity?

@losipiuk Can this PR be cherry-picked to 1.13+ releases? I've checked 1.14 release is based on aws 1.16.26, so it shouldn't support Web Identity according to information from @micahhausler

@losipiuk
Copy link
Contributor

Łukasz Osipiuk Can this PR be cherry-picked to 1.13+ releases? I've checked 1.14 release is based on aws 1.16.26, so it shouldn't support Web Identity according to information from Micah Hausler

I am not big fan of the idea. This is not a bugfix. And also it cannot be cherry picked directly as all the release branches have very different set of libraries in vendor folder (each matching different k8s minor version). Revendoring 1.14 and and below is painful and risky process (see https://github.com/kubernetes/autoscaler/blob/cluster-autoscaler-release-1.14/cluster-autoscaler/FAQ.md#how-can-i-update-ca-dependencies-particularly-k8siokubernetes) and doing that for patch release feels to me as bad idea.

@asthasr
Copy link

asthasr commented Sep 16, 2019

Is it not possible to revendor only the AWS SDK for 1.14? After all, updating the AWS SDK to support this feature is pointless if EKS does not support the version in question. It may be months before EKS catches up to the k8s version, and it strikes me as very bad if SDKs for a cloud provider cannot be updated at a cadence that matches the cloud provider instead of mainline Kubernetes.

@whereisaaron
Copy link

@losipiuk I think that maintaining the auto-scaler 1.14 branch is a necessary consequence of not supporting backward compatibility in the cluster autoscaler. If each cluster autoscaler release supported the current and previous couple k8s releases, then I see your point about not back-porting features. But since releases are 1:1, old cluster autoscaler releases need to be maintained and supported until that release of k8s is EOL. For 1.14 on AWS/EKS, EOL is still 9 months away. And 1.16 won't even be available to deploy on AWS for another ~5 months.

https://aws.amazon.com/blogs/compute/updates-to-amazon-eks-version-lifecycle/
https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html

@losipiuk
Copy link
Contributor

losipiuk commented Nov 4, 2019

Łukasz Osipiuk I think that maintaining the auto-scaler 1.14 branch is a necessary consequence of not supporting backward compatibility in the cluster autoscaler. If each cluster autoscaler release supported the current and previous couple k8s releases, then I see your point about not back-porting features. But since releases are 1:1, old cluster autoscaler releases need to be maintained and supported until that release of k8s is EOL. For 1.14 on AWS/EKS, EOL is still 9 months away. And 1.16 won't even be available to deploy on AWS for another ~5 months.

https://aws.amazon.com/blogs/compute/updates-to-amazon-eks-version-lifecycle/
https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html

We mostly follow the OSS k8s release cycle (which unless something changed) provide patch fixes for 3 most recent releases. We try our best to support a wider set of releases, as we understand that service providers are lagging behind OSS. Yet all that happens within constraints coming from how much resources we can put to maintenance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants