Canonical EnlistMachine

Canonical EnlistMachine

Certified
Enterprise Edition

Enlist machine into MAAS inventory

Register a new machine via MAAS POST /machines/. Accepts either a MAC address or power driver parameters plus type. Falls back to reusing an existing machine on duplicate validation errors; commissioning is not triggered here.

yaml
type: io.kestra.plugin.ee.canonical.maas.EnlistMachine

Enlist a new server

yaml
id: enlist_new_server
namespace: company.team
tasks:
  - id: enlist_new_server
    type: io.kestra.plugin.ee.canonical.maas.EnlistMachine
    url: "{{ secret('MAAS_URL') }}"
    apiKey: "{{ secret('MAAS_API_KEY') }}"
    macAddress: "52:54:00:12:34:56"
    hostname: "prod-web-01"
    domain: "datacenter.local"
    resourcePool: "production"
    zone: "zone-a"
    architecture: "amd64/generic"
    powerType: "ipmi"
    powerParameters:
      power_address: "192.168.1.100"
      power_user: "{{ secret('IPMI_USER') }}"
      power_pass: "{{ secret('IPMI_PASSWORD') }}"
Properties

MAAS API key

MAAS API key in the consumer: token: secret format.

MAAS URL

Base URL of the MAAS server, including the MAAS context path. Example: https://maas.example.com/MAAS

Architecture

Machine architecture (for example amd64/generic); optional.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Domain

MAAS domain for the machine; optional.

Hostname

Hostname to set on the enlisted machine; optional.

MAC address

MAC address to enlist; required unless power parameters are provided.

Power parameters

Power driver parameters as a JSON object; each entry is sent as power_parameters_<key>.

Power type

Power driver type used by MAAS (for example ipmi, redfish, virsh); required when powerParameters are provided.

Resource pool

MAAS resource pool name; optional.

Zone

MAAS availability zone; optional.

Machine details

Raw MAAS machine response payload, sanitized for secrets.

System ID

MAAS system identifier for the enlisted machine.