You can use AWS launch templates to customise the EC2 instances Northflank provisions for node pools on your AWS clusters. You select a launch template when configuring a node pool, and the specifications in the template override some of the options selected for the node pool in Northflank.
Common use cases for launch templates include:
- Configuring nested virtualization to run microVM workload isolation (Kata Containers) on eligible non-metal instance types, for example the
m8iseries - Configuring node disks, such as volume type, IOPS, and throughput, or using local SSDs
- Configuring Capacity Blocks to reserve GPU nodes for a specific time period
note
Custom AWS launch templates are available on enterprise plans. Contact Northflank if the feature is not enabled on your account.
Configure Northflank permissions
You must give Northflank permissions to use launch templates in your AWS integration. You can create a new integration, or update an existing integration by adding Custom Launch Templates to the desired features.
For an existing integration, copy the updated AWS inline policy into your IAM role, then click Update in Northflank to save the integration changes. For a new integration, follow the instructions as normal.
ec2:DescribeLaunchTemplateVersions
ec2:DescribeLaunchTemplates
ec2:RunInstances
Create a launch template
Launch templates are region-specific, so create your launch template in the same region as your AWS cluster. You can create a launch template in your EC2 dashboard in the AWS console , from the Launch templates page under instances:
- Click Create launch template and enter a name for the launch template
- Do not select an Amazon Machine Image unless Northflank has enabled custom AMI support for your account. Contact support@northflank.com if you require a custom AMI.
- Optionally, select an instance type. If selected, it will override the instance type that you specify for a node pool on Northflank.
- Under Storage (volumes), click Add new volume and configure the node boot disk. You must define at least one volume in the launch template:
- Set the device name to exactly
/dev/xvda. If you use a different device name, the volume will be attached as a secondary disk instead of replacing the boot disk. - Enter a suitable size. We suggest
100 GiBas a minimum. For larger instances, you may want to increase this. - Select
gp3as the volume type, or another volume type if your use case requires it - Select Yes for Delete on termination
- Enable Encrypted if required
- Set the device name to exactly
- Continue to the relevant section below and configure the options required for your use case: nested virtualization, node disks, or Capacity Blocks
- Click Create launch template

The volume defined in the launch template will override the disk specified for a node pool on Northflank.
warning
Do not configure the subnets, shutdown behaviour, or IAM instance profile in the launch template, as these are handled by Northflank. Configuring resources not mentioned in this guide may cause issues scheduling and managing nodes with Northflank. Learn more about
launch template configuration
or contact support@northflank.com to discuss other use cases.
Configure nested virtualization
You can enable nested virtualization to run workloads with microVM isolation (Kata Containers) on eligible non-metal instance types.
Bare metal instances support microVM workloads without a launch template. Non-metal instance types that support nested virtualization, for example the m8i, c8i, r8i, and m7i families, can run microVM workloads only when their node pool uses a launch template with nested virtualization enabled. See the AWS documentation on nested virtualization for the full list of supported instance types.
warning
At the time of writing (September 2026), AWS is investigating a hypervisor
issue observed on virtualized m8i instances running approximately 50–60 or
more nested VMs on one node. The issue can cause the EC2 instance to reboot,
restarting workloads on that node. Until AWS confirms a fix and supported
density, spread microVM workloads across more nodes and avoid approaching this
density. Contact support@northflank.com for guidance on high-density
deployments.
First, complete the common launch template configuration, including the required node boot volume. Then, in your launch template:
- Select an instance type that supports nested virtualization, for example
m8i.2xlarge. This will override the instance type you select on the node pool in Northflank. - Under Advanced details, locate Nested virtualization and set the field to Enabled
All instance types that can be provisioned in a node pool must support nested virtualization for microVM workloads to be schedulable on the pool.
You can configure the sandbox technology for your workloads globally in your cluster settings, or for specific workloads using tags. See deploy sandboxes in your cloud for more information.
Configure node disks
Use a launch template to customise node storage beyond the options available in Northflank, for example to configure provisioned IOPS and throughput.
Configure the volume in your launch template as described above, and select the volume type, size, IOPS, and throughput as required.
Use local SSDs
To use the local NVMe SSDs of instance types that have them as node storage, configure the node to combine them into a RAID0 array. Under Advanced details, locate the User data input box and enter:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==BOUNDARY=="
--==BOUNDARY==
Content-Type: application/node.eks.aws
---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
instance:
localStorage:
strategy: RAID0
--==BOUNDARY==--
Local NVMe storage is ephemeral: data on the instance store is lost when a node is stopped, replaced, or terminated, and RAID0 provides no redundancy. Do not use it for persistent application data.
Configure Capacity Blocks
You can use launch templates to take advantage of Capacity Blocks for ML training , which allow you to reserve GPU nodes for a specific time period at a known price, up to 8 weeks in advance.
First, complete the common launch template configuration, including the required node boot volume. Then select an instance type that matches the reserved instances. Under purchasing options, choose Capacity Blocks and enter your Capacity Block reservation ID. See the EKS documentation on Capacity Blocks for more information.

Capacity Block reservations are zonal: configure your node pool with the availability zone and instance type of the reservation.
Nodes will not join the node pool until the date and time of the capacity reservation. If you create the node pool before the reservation becomes active, set the node count to 0 and scale the pool up when the reservation becomes active. Otherwise, provisioning nodes will fail until the reservation is active.
EKS begins draining nodes and scales the node pool to zero 40 minutes before the reservation expires. EC2 begins terminating instances 30 minutes before expiry. Checkpoint or move workloads before draining begins. If your cluster has no other node pools with nodes that these workloads can schedule on, they will remain unscheduled until the required capacity is added.
Use a launch template in Northflank
To use a launch template, select an existing AWS cluster on Northflank, or create a new one. Configure the cluster as normal with a node pool for system components, and any other required node pools.
Create a new node pool and configure it as normal, selecting the node type, disk size, and availability zone. Then expand the Advanced section:
- Locate AWS launch template configuration
- Select the launch template created earlier from the drop-down
- Select the launch template version. Updating a launch template in AWS creates a new version. Existing node pools keep using the version they were configured with.
- Update the scheduling rules, if required, for example to reserve the pool for specific workloads

When the node pool is created, the launch template's instance type and boot volume configuration take precedence over the corresponding node pool selections. Other settings are applied subject to Amazon EKS restrictions.
Next steps
Deploy node pools
Deploy workloads to your cluster
Run GPU workloads