[EKS] [request]: New API for Supported EKS Node Group Release Versions
- Dominant language
- Shell
- Stars
- 5.4k
- Forks
- 334
- PR merge metrics
- No merged PRs in 30d
Description
### Community Note
* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment
**Tell us about your request**
Provide an EKS `DescribeNodegroupReleaseVersions` API call or similar.
**Which service(s) is this request for?**
EKS
**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
The [EKS `CreateNodeGroup` API call accepts a parameter named `releaseVersion`](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateNodegroup.html#AmazonEKS-CreateNodegroup-request-releaseVersion) which needs to match the published "AMI Version" names on the [Amazon EKS-Optimized Linux AMI Versions documentation page](https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html), e.g. `1.14.8-20191213`.
Over time, it appears the supported values change. From the Terraform AWS Provider acceptance testing we currently see:
```
--- FAIL: TestAccAWSEksNodeGroup_ReleaseVersion (1225.88s)
testing.go:654: Step 0 error: errors during apply:
Error: error creating EKS Node Group (tf-acc-test-9113909416381506697:tf-acc-test-9113909416381506697): InvalidParameterException: Requested Node Group release version 1.14.7-20190927 is invalid. Allowed release version is 1.14.8-20191213
```
There is currently no API or SSM Parameter lookup mechanism to find the latest AMI version supported by the EKS API. I have filed a separate issue in awslabs/amazon-eks-ami to potentially support an additional SSM Parameter with the latest value, however there also appears to be a delay between the AMI release process and the EKS API validation. For example, AMI `1.14.9-20200122` was released earlier today, but it returns a similar error:
```
--- FAIL: TestAccAWSEksNodeGroup_ReleaseVersion (1375.87s)
testing.go:654: Step 0 error: errors during apply:
Error: error creating EKS Node Group (tf-acc-test-7174874914828901519:tf-acc-test-7174874914828901519): InvalidParameterException: Requested Node Group release version 1.14.9-20200122 is invalid. Allowed release version is 1.14.8-20191213
```
Since the API service logic is authoritative about valid values, it would be great if the API provided functionality to return acceptable values. In the Terraform AWS Provider, we would implement a data source for this lookup and its value changing over time would allow Terraform to automatically propose upgrades.
**Are you currently working around this issue?**
Hardcoding an acceptable value and manually updating it over time.
**References**
- https://github.com/awslabs/amazon-eks-ami/issues/423
- https://github.com/terraform-providers/terraform-provider-aws/pull/12172
Contributor guide
Assessment
This issue has not been assessed yet.