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.

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.

Reference (ref) of the pluginDefaults to apply to this task.

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.