In version 1.10.0 of fury-eks-installer
, we introduced support for launch templates in Node Pools configuration due to the deprecation of launch configurations.
To achieve this goal, we introduced a new variable node_pools_launch_kind
(that defaults to launch_templates
) to select wheter to use launch templates, launch configurations, or both:
- Selecting
launch_configurations
in existing Fury clusters will not make changes. - Selecting
launch_templates
for existing clusters will delete the current node pools and create new ones. - Selecting
both
for existing clusters will create new node pools that use thelaunch_templates
and leave the old withlaunch_configurations
intact.
Continue reading for how to migrate an existing cluster from launch_configuration
to launch_templates
.
- Cordon all the existing nodes created using launch configurations using
kubectl cordon <node_name>
.
⚠️ WARNING If any of the node fails before migrating to launch templates, the pods will have nowhere to be scheduled. If you can't cordon all the nodes at once, take note of the existing nodes and start cordoning them after the new nodes from the launch templates start joining the cluster.
-
Add
node_pools_launch_kind = "both"
to your Terraform module (or furyctl) configuration and apply. -
Wait for the new nodes to join the cluster.
-
Drain the old nodes that you cordoned in step 1 using
kubectl drain --ignore-daemonsets --delete-local-data <node_name>
. Now all the pods are running on nodes created with launch templates. -
Change
node_pools_launch_kind
to"launch_templates"
in your Terraform module (or furyctl) configuration and apply. This will delete the old nodes created by launch configurations and leave you with the new nodes created by launch templates