kubernetes-sigs/cluster-api-provider-aws

Bottlerocket worker node support

Open

#4,708 opened on Dec 20, 2023

View on GitHub
 (29 comments) (1 reaction) (0 assignees)Go (689 forks)auto 404
help wantedkind/featurepriority/important-longtermtriage/accepted

Repository metrics

Stars
 (723 stars)
PR merge metrics
 (PR metrics pending)

Description

/kind feature

Describe the solution you'd like As a user, I would like to be able spawn bottlerocket worker nodes in CAPA-owned clusters. I can manually specify the AMI ID of Bottlerocket from the AMI catalog, but this is insufficient to have the workers join a cluster, the workers are created but never "join" and add the node to the cluster, so pod workloads can not schedule. This affects both EKS and non-EKS clusters.

Anything else you would like to add: What seems to be missing is a way to configure the Bottlerocket user data. Bottlerocket is immutable at runtime, so configuration must be done before the node is created. Bottlerocket takes a TOML-formatted configuration format that must be supplied as user-data, which is where configuration such as the api-server endpoint, certificate data, cluster name, etc are.

CAPA seems to be unaware Bottlerocket has a custom configuration format and needs to be enhanced to be aware of it, in order to supply the correct settings for a node to join a cluster.

https://github.com/kubernetes-sigs/cluster-api-provider-aws/issues/2009 seems to be related, but only describes simplifying the AMI selection. However, manually specifying the AMI ID of Bottlerocket directly is not sufficient to join a cluster at present.

Contributor guide