bottlerocket-os / bottlerocket-os/bottlerocket
Zero Config EKS Launches
- Dominant language
- Rust
- Stars
- 9.7k
- Forks
- 586
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 11
Description
Currently, we need to provide the EKS cluster's `api-server` and `cluster-certificate` in Bottlerocket's `settings.kubernetes` or else a Bottlerocket instance will not know how to join the EKS cluster.
However, this information is discoverable. In https://github.com/bottlerocket-os/bottlerocket/pull/1547 we gave `pluto` the ability to call the EKS API to get the cluster's DNS setting.
https://github.com/bottlerocket-os/bottlerocket/blob/5e931725bd00311edcb7cddd9a97ea3f30f1a4bc/sources/api/pluto/src/main.rs#L312..L322
Why not also get it's `api-server` and `cluster-certificate` settings?
*Challenge*
With the current design, multiple calls to pluto would be required, we should consider a design that can set multiple settings with a single call to pluto.
*Extensions of the idea:*
For extra-credit we could even get its `settings.kubernetes.cluster-name` from the instance tags (for example if it was launched from an EKS console or launch template), though this might not be desirable.
Another possible extension would be to start in standalone mode when the `cluster-name` cannot be determined from tags. This would give users a quickl/easy way to launch and try Bottlerocket without any config or cluster.
Contributor guide
Assessment
This issue has not been assessed yet.