FlexVM

Introduction

FlexVM (Flex Virtual Metal) extends the existing FlexMetal bare metal provisioning platform with a managed virtual machine layer. It enables customers to provision GPU-accelerated and general purpose VMs on dedicated hardware through the same API, Terraform provider, and consumption model they already use for FlexMetal bare metal.

The service targets workloads that require near-bare-metal performance with the operational flexibility of virtual machines: game build pipelines, CI/CD, rendering, AI inference, and any workload where GPU/NVMe passthrough and per-tenant isolation are non-negotiable.

FlexVM is not a shared multi-tenant cloud. Each customer's VMs run on hardware exclusively allocated to them. The virtualization layer exists solely to subdivide dedicated machines into deterministic, isolated units with direct hardware access.

Core Concepts

Tenant

i3D.net customer identification (also known as K#)

Cloud

Your isolated environment (pre‑created). Contains nodes, VMs, and capacity. Tenants have 1 or more Clouds

Node

A physical compute host inside your cloud. Clouds have 1 or more Node

Image

An OS template used to create VMs (e.g., Ubuntu 22.04, Windows Server)

Instance Type

A predefined hardware profile (CPU, RAM, disk, GPU) for VMs

VM

A virtual machine instance running in your cloud

Command

An action you can execute on a VM (e.g., start, stop, reboot)

Prerequisites

Before you begin, the i3D.net team has already set up the following for you:

· Tenant (K#): your unique organisation identifier.

o The Tenant will have it’s own VLAN and IP Prefixes already assigned to.

· FlexVM Cloud: a dedicated cloud resource pool with compute capacity assigned to your tenant.

This diagram below explains the resource hierarchy.

Using FlexVM

For the full API specifications, see https://docs.i3d.net/api/api_flexvm

Note: API URL prefix is https://api.i3d.net

API Token

Generate an API token, the procedure is documented in API v3 Authentication

  1. Add IP whitelisting for security (whitelist the IP addresses that will access the API)

  2. Include your API key in every request using this HTTP header:

PRIVATE-TOKEN

YOUR_API_KEY

Pagination

Use the RANGED-DATA header to control result sets (default: start=0, results=25).

All GET endpoints that return collections support this header.

Using FlexVM Terraform Provider

The i3dnet provider includes the resource to manage FlexVM: i3dnet_flexvm_vm Example usage:

Explore Your Environment

Create Your First VM

Use the POST /v3/flexVM/clouds/{cloudUuid}/vms endpoint with a JSON body.

Example request

POST /v3/flexVM/clouds/{cloudUuid}/vms

Host: api.i3d.net PRIVATE-TOKEN: YOUR_API_KEY Content-Type: application/json ​

Response

A successful call returns 201 Created with the VM object, including its vmUuid and an initial status of provisioning.

The VM transitions through provisioningstartingrunning. You can monitor its status using the GET VM endpoint.

Manage Your VMs

  • List Your Clouds

    • You should see one cloud with its UUID, name, and capacity details.

    • GET /v3/flexVM/clouds

  • Get Cloud Details

    • GET /v3/flexVM/clouds/{cloudUuid}

  • List Nodes in Your Cloud

    • Nodes represent the underlying compute hosts.

    • GET /v3/flexVM/clouds/{cloudUuid}/nodes

  • List Available Images

    • Images are templates you can use when creating a VM.

    • GET /v3/flexVM/images

  • List Available Instance Types

    • Instance types define VM size (vCPU, RAM, disk).

    • GET /v3/flexVM/instanceTypes

Monitor Monthly Usage

Retrieve a usage report for your organisation (tenant) over a specified period.

GET /v3/flexVM/reports/monthly?start=2026-01-01T00:00:00Z&end=2026-02-01T00:00:00Z

  • start (inclusive) and end (exclusive) – ISO 8601, UTC.

  • If omitted, the period defaults to the current calendar month.

The report includes total VM created, VM released, VM hours, aggregated by VM tags (if applicable).

Last updated

Was this helpful?