aws / aws/containers-roadmap

[EKS] [request]: New API for Supported EKS Node Group Release Versions

Open
#771 1 comment 44 reactions 1 assignee Claimed by @mikestef9 View on GitHub
EKS EKS Managed Nodes Proposed
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.