Skip to content

Desired State

Desired state is how Fleet Manager tells a device what it should be running. The device fetches its desired state and reconciles toward it.

Who this is for: OT engineers connecting devices.

The desired state is a flat manifest with a manifestVersion that increases monotonically — every change bumps the version, so a device can tell whether it has the latest. Content within the manifest is referenced by content-addressable digests of the form sha256:<hex>, so a device can verify exactly what it fetched.

A workload in the desired state declares a deployment profile. Fleet Manager supports exactly two:

  • helm.v3 — a Helm v3 chart
  • compose — a Compose application

No other profiles are supported.

Applications are described with a YAML resource in the application.margo.org/v1alpha1 API group. A few shape rules to be aware of:

  • the deployment’s id lives under metadata.annotations.id (under annotations),
  • the profile is declared at spec.deploymentProfile (singular).

See the upstream Desired State specification for the full YAML definition.

Margo payloads use specific media types:

  • application/vnd.margo.manifest.v1+json for manifests
  • application/vnd.margo.bundle.v1+tar+gzip for bundles

When you create a Deployment in the web UI, the platform turns it into desired state for the targeted devices. Each device then fetches that state and reports back its deployment status.