Skip to main content
Configure a node on the machine that will provide capacity to IDYL. The local node config controls the node realm, contribution limits, runtime profile, and service readiness checks for that machine. Start here when you want to choose how the node should run workloads before joining a fleet or subnet. For the full join flow, see Connect a node. For the workload author, subnet operator, and provider node model, see Workload isolation.

Operating system support

Use the operating system that matches how the node will be used.
Use Linux for production provider nodes and for microVM-backed workload isolation.Install IDYL:
Linux nodes can use Docker Engine, containerd with runc, or containerd with Kata Containers when the host has the required runtime dependencies.
Verify the CLI:

Choose a runtime profile

Prefer --runtime-profile for normal node configuration. A profile writes the provider and runtime settings that the node will report when it starts. Some profiles require a recent IDYL CLI and host-specific runtime dependencies. The profiles available on a machine are shown by your installed CLI:
Docker and containerd/runc nodes do not satisfy microvm runtime policy. MicroVM-backed workloads require a compatible containerd/Kata node with an explicit backend profile. IDYL does not change a requested microVM workload to container isolation when compatible capacity is missing.

Initialize local node config

Log in before configuring or joining a node:
Initialize the local node config with a runtime profile:
For a containerd/runc node:
For a microVM-capable Linux node:
Set the node realm explicitly when the machine should use a specific realm:

Limit contributed capacity

Contribution limits are local safety caps. IDYL uses the lower of the machine’s detected capacity and the limits you configure. Set CPU and memory limits:
Set disk and GPU limits when the node should contribute those resources:
View the current local config:
If the node service is already running, restart it for updated contribution limits or runtime settings to take effect.

Configure containerd settings

The containerd profiles use the default containerd socket and namespace unless you override them. Use a non-default containerd socket:
Use a non-default containerd namespace:
Use raw runtime settings only when a named profile does not match the host:
For most nodes, a named runtime profile is easier to inspect and operate than raw runtime settings.

Configure a microVM runtime

Use a microVM runtime profile on Linux hosts that have containerd, Kata Containers, and KVM available. The host must be prepared before the node starts; IDYL does not install containerd, Kata, or Firecracker for you. For the Kata + QEMU backend:
For the Kata + Firecracker backend, use the backend-specific profile and an explicit Kata configuration path:
Use the Firecracker profile only when the host has Firecracker installed and the Kata configuration selects Firecracker. If a required runtime dependency is missing, the node reports a failed readiness check instead of using a different runtime profile.

Secure the node runtime

In this guide, securing the node runtime means choosing the appropriate isolation profile, limiting contributed resources, validating host readiness, and protecting the local node identity. It is not a remote attestation or confidential-computing claim. Use this checklist before admitting the node to a subnet that handles workloads requiring stronger runtime isolation: For production Linux nodes, render and validate the production service plan before installing or starting the service:
Use the profile that matches the node:

Join after configuration

Join through a fleet:
Join directly to a subnet:
--display-name sets optional account-owned presentation metadata. It does not change the local node identity or runtime configuration. If you already initialized the node with the desired runtime profile, you can omit --runtime-profile during join:

Verify the node

Check local status on the provider machine:
Inspect the node from the subnet:
If a workload does not place on the node, confirm the node is admitted, the runtime profile is healthy, the subnet runtime policy matches the workload, and the node has enough available capacity.