Skip to content

(Future) Breaking: overrideBootstrapCommand soon to be required with Custom AMIs for AL2 and Ubuntu unmanaged nodegroups #3563

@Callisto13

Description

@Callisto13

Note 1: Future change is described below, no action required from users yet

Note 2: This is an announcement thread, not a "problem with overrideBootstrapCommand" thread. Please do NOT spam this thread with problems you are having. Please open a new issue with your specific failure.

Do I need to read this issue/Will this change affect me?

Inception Template (1)

TLDR:

From eksctl version 0.47.0 onwards all AL2 and Ubuntu unmanaged nodes will be bootstrapped using the AMI provided bootstrapping script.

For most people, this change should not be noticeable: you don't need to take any action. For those using custom AL2/Ubuntu AMIs, you will soon (BUT NOT YET) need to provide some extra configuration. To give users more time to move over to this new requirement, the legacy codepath will still be present and followed when providing a custom AMI. When enough time has passed (release date TBD), this legacy path will be removed. When that happens, it means that when using a Custom AMI, it will be required to set the overrideBootstrapCommand in order for the nodes to successfully join the cluster.

In all other cases, this change should not have any effect.

What's happening?

We recently merged some work to remove the custom bootstrapping scripts which eksctl drops on AmazonLinux2 and Ubuntu machines so that they can join the k8s cluster. From version 0.47.0, all eksctl nodes will be bootstrapped using the bootstrap.sh script provided by standard (non-custom) EKS AMIs (mostly, there are still some odd "wrapper" scripts there to tidy things up).

A side effect of this improvement is that (in the near future) an overrideBootstrapCommand will be required when creating unmanaged nodegroups with custom AL2/Ubuntu amis. In previous eksctl versions this was not necessary, since eksctl would simply send everything it needed to the node, bootstrapping nodes with custom and non-custom AMIs alike. Now that eksctl delegates to the built-in /etc/eks/bootstrap.sh on standard public images, any node which does not have that file on disk will fail to join the cluster.

The solution will be to provide an overrideBootstrapCommand when setting a Custom AMI for unmanaged nodegroups. This is already standard practice when using Custom AMIs to create managed nodegroups via eksctl.

For now all users who are providing custom AL2/Ubuntu AMIs do not need to do anything: a custom AMI would follow the legacy codepath. This issue will be updated once we have a date for the removal of the legacy path, at which point an overrideBootstrapCommand will be required.

Who will this affect?

The future removal of the legacy path around this change will only affect those using custom AL2 or Ubuntu AMIs to create unmanaged nodegroups.

The experience of creating:

  • managed nodegroups
  • unmanaged nodegroups based on other AMI Families
  • any nodegroup with standard public AMIs

will not change.

Why change things?

Maintaining our own set of bootstrapping code has become a tiresome burden, especially when the upstream AMIs add more things which we needed to consciously step over. Some recent clashes with the GPU AMIs made us want to sort this out fairly quickly. More context can be found here, here and here.

When will the legacy path be removed?

This is currently under discussion and this issue will be updated when a firm date/release number is set. Once a decision is made and a release announced, from then on any nodegroups created with custom AL2 or Ubuntu AMIs will need to have overrideBootstrapCommands set. Again, this will only affect the use of custom AL2/Ubuntu AMIs. Nothing else will change or be noticeable.

How can I avoid getting caught out by this change?

Documentation (including example configuration) will be written in advance of the legacy path going away. Until then, the managed nodegroup examples can serve as an accurate blueprint of the upcoming unmanaged nodegroup UX.

I have questions...

Please ask away on this issue 😄


Community note

If you will be affected by this change (ie, if you routinely use Custom AL2/Ubuntu AMIs for self-managed nodegroups), please add a 👍 to this description so we can get an idea of numbers. Thanks 😄 .

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions