Skip to content

[Feature] Enable launching Bottlerocket AMIs on AWS Neuron Instances #8111

@vigh-m

Description

@vigh-m

What feature/behavior/change do you want?

We would like eksctl to enable support for launching Managed and Unmanaged Nodes for AWS Neuron instance types (Inferentia and Trainium Instances) with Bottlerocket AMIs. This includes launching the neuron-device-plugin.

The standard Bottlerocket AMI variant (aws-k8s-1.xx) from v1.27.0 onwards has this support built in. The upcoming AMI will have greater support as described below.

For a Proof Of Concept and local testing, the following diff was used:

diff --git a/pkg/apis/eksctl.io/v1alpha5/validation.go b/pkg/apis/eksctl.io/v1alpha5/validation.go
index 1ac66eab9..b3bd93345 100644
--- a/pkg/apis/eksctl.io/v1alpha5/validation.go
+++ b/pkg/apis/eksctl.io/v1alpha5/validation.go
@@ -676,7 +676,7 @@ func validateNodeGroupBase(np NodePool, path string, controlPlaneOnOutposts bool
                }
        }

-       if ng.AMIFamily != NodeImageFamilyAmazonLinux2 && ng.AMIFamily != "" {
+       if ng.AMIFamily != NodeImageFamilyAmazonLinux2 && ng.AMIFamily != NodeImageFamilyBottlerocket && ng.AMIFamily != "" {
                // Only AL2 supports Inferentia hosts.
                if instanceutils.IsInferentiaInstanceType(instanceType) {
                        return ErrUnsupportedInstanceTypes("Inferentia", ng.AMIFamily, fmt.Sprintf("please use %s instead", NodeImageFamilyAmazonLinux2))

Why do you want this feature?

Bottlerocket OS is adding support for Neuron Instances. At this time, the OS already ships with the Neuron device drivers and can use the Neuron device. With the new setting change linked, containers should be able to take ownership of requested devices.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions