CLI Composable Hardware

This is a list of composable hardware tasks which can be performed with the MAAS CLI. See MAAS CLI for how to get started with the CLI and Composable hardware for an overview of the subject.

Register a Pod

To register/add a Pod:

maas $PROFILE pods create type=$POD_TYPE power_address=$POWER_ADDRESS \
    [power_user=$USERNAME] [power_pass=$PASSWORD]

In the case of the Virsh power type, both USERNAME and PASSWORD are not needed.

For example, to create an RSD pod:

maas $PROFILE pods create type=rsd power_address=10.3.0.1:8443 \
    power_user=admin power_pass=admin

And to create a Virsh pod:

maas $PROFILE pods create type=virsh power_address=qemu+ssh://ubuntu@192.168.1.2/system

List resources of all Pods

List the resources of all Pods:

maas $PROFILE pods read

For example, this will grab Pod IDs (POD_ID) and their MAAS names:

maas $PROFILE pods read | grep -A6 id

Sample output:

        "id": 93,
        "capabilities": [
            "composable",
            "fixed_local_storage",
            "iscsi_storage"
        ],
        "name": "civil-hermit",

List resources of a Pod

To list an individual Pod's resources:

maas $PROFILE pod read $POD_ID

List Pod connection parameters

To list a Pod's connection parameters:

maas $PROFILE pod parameters $POD_ID

Example output:

{
    "power_address": "10.3.0.1:8443",
    "power_pass": "admin",
    "power_user": "admin"
}

Compose Pod machines

To compose a Pod's machines:

maas $PROFILE pod compose $POD_ID

Example output for default composing:

{
    "system_id": "73yxmc",
    "resource_uri": "/MAAS/api/2.0/machines/73yxmc/"
}

Compose with resources specified:

maas $PROFILE pod compose $POD_ID $RESOURCES

Where RESOURCES is a space-separated list from:

cores=requested cores
cpu_speed=requested minimum cpu speed in MHz
memory=requested memory in MB
architecture=requested architecture that Pod must support

For example:

maas $PROFILE pod compose $POD_ID \
    cores=40 cpu_speed=2000 memory=7812 architecture="amd64/generic"

Compose and allocate a Pod machine

In the absence of any nodes in the 'New' or 'Ready' state, if a Pod of sufficient resources is available, MAAS can automatically compose (add), commission, and acquire a Pod machine. This is done with the regular allocate sub-command:

maas $PROFILE machines allocate

List machine parameters

The MAAS node may be a composed machine in which case its resources will be included in the output:

maas $PROFILE machine read $SYSTEM_ID

Decompose a Pod machine

To decompose a Pod machine by deleting the corresponding MAAS node:

maas $PROFILE machine delete $SYSTEM_ID

If the Pod's resources are now listed (pod read $POD_ID), it would be seen that the resources for this machine are available and no longer used.

Delete a Pod

To delete a Pod (and decompose all its machines):

maas $PROFILE pod delete $POD_ID