Skip to main content
Version: main 🚧

OS Images

Modify the following with your specific values to replace on the whole page and generate copyable commands:

An OSImage resource contains the information that a node provider needs to install an operating system on a Machine, stored as a reusable reference. Instead of specifying image URLs and checksums directly on every node type or Machine, you define them once in an OSImage and reference it by name.

Create an OSImage​

apiVersion: management.loft.sh/v1
kind: OSImage
metadata:
name: ubuntu-noble
spec:
displayName: "Ubuntu Noble (24.04 LTS)"
description: "Ubuntu Noble (24.04) server cloud image for bare metal provisioning"
properties:
metal3.vcluster.com/image-url: "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img"
metal3.vcluster.com/image-checksum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
metal3.vcluster.com/image-checksum-type: "sha256"

Fields​

FieldDescription
spec.displayNameHuman-readable name shown in the UI.
spec.descriptionOptional description of the image.
spec.propertiesKey-value pairs with provider-specific image configuration.
spec.ownerOptional user or team that owns this resource.
spec.accessOptional access control list.

Provider-specific properties​

OS images are a generic concept. The properties they carry depend on which node provider consumes them.

Metal3​

For the Metal3 node provider, the following properties are required:

PropertyDescription
metal3.vcluster.com/image-urlURL of the OS image.
metal3.vcluster.com/image-checksumChecksum for image verification.
metal3.vcluster.com/image-checksum-typeChecksum algorithm: md5, sha256, or sha512. Optional — auto-detected if omitted.

Use an OSImage​

Reference an OSImage by name in node type properties or Machine properties:

properties:
vcluster.com/os-image: ubuntu-noble

The platform resolves the OSImage and applies its properties during provisioning. On node providers that don't support the property, it has no effect.

Access control​

OSImage resources are cluster-scoped. Use the spec.owner and spec.access fields to control who can use or modify them:

apiVersion: management.loft.sh/v1
kind: OSImage
metadata:
name: ubuntu-noble
spec:
displayName: "Ubuntu Noble (24.04 LTS)"
properties:
metal3.vcluster.com/image-url: "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img"
metal3.vcluster.com/image-checksum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
metal3.vcluster.com/image-checksum-type: "sha256"
owner:
user: admin
access:
- users:
- "*"
verbs:
- get