Skip to main content
A manifest is a YAML (or JSON) file that describes the desired state of a Caravanserai resource. The API follows the same structure as Kubernetes: every manifest has a apiVersion, a kind, a metadata block, and a spec block. When you apply a manifest, Caravanserai stores the desired state and reconciles it continuously until the cluster matches what you declared.

Structure

Every manifest shares a common top-level shape:
manifest.yaml

Common fields

TypeMeta — present in every resource: ObjectMeta — identity and classification:

Supported kinds

Node

Register and configure a physical or virtual machine in your cluster.

Project

Define one or more containers (services) to run as a co-located workload.

Applying manifests

Use caractrl apply to create or update a resource from a manifest file.
1

Write your manifest

Save your manifest to a file, for example manifest.yaml.
2

Apply the manifest

Pass the file path with the -f flag:
You can also pipe a manifest from stdin:
3

Verify the result

Check the resource state after applying:

Format support

caractrl apply accepts both YAML and JSON manifests. The following two manifests are equivalent:
manifest.yaml
The status block is read-only and set by the system. You do not need to include it in your manifests — Caravanserai ignores any status fields you submit.