watcher-specs/specs/2024.1/approved/maas-support.rst
Lucian Petrut ea19cfd56e Add MAAS spec
We intend to add support for MAAS, another bare metal provisioning
and management service.

Note that the tox job fails at the moment as "whitelist_externals"
has been deprecated in favor of "allowlist_externals", so we'll
need to address that as well.

Another issue that we need to fix is that sphinx is unable to
locate some image files:

  /home/zuul/src/opendev.org/openstack/watcher-specs/doc/source/
  specs/newton/implemented/scoring-module.rst:232: WARNING: image

  file not readable: doc/source/images/scoring-module-deployment.png

Change-Id: I54b3c578f677ad7d554732a5018163e4780f9457
2023-10-23 14:47:27 +03:00

2.9 KiB

MAAS support

https://blueprints.launchpad.net/watcher/+spec/maas-support

This blueprint aims to introduce Watcher support for MAAS, another bare metal provisioning and management service that's commonly used with Openstack.

Problem description

Metal-As-A-Service (MAAS) is an open source project led by Canonical that allows provisioning and managing bare metal nodes.

Right now, Watcher can only use Ironic, however MAAS support can be added with minimal changes.

Use Cases

Some Openstack clusters are deployed using MAAS + Juju instead of Ironic. By adding MAAS support, we'll allow Watcher to discover MAAS nodes and perform power actions, adjusting the number of running nodes based on the current workload.

Proposed change

We'll add a simple bare metal client abstraction with concrete implementations for Ironic and MAAS.

If a MAAS endpoint and credentials are provided, we'll pick the MAAS client, otherwise defaulting to the Ironic client.

The python-libmaas client will be used to interact with the MAAS service.

Alternatives

None

Data model impact

None

REST API impact

None

Security impact

A MAAS authentication key will have to be provided through a config option.

Notifications impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

The MAAS URL and authentication key will have to be configured when using MAAS.

Developer impact

None

Implementation

Assignee(s)

Primary assignee:

<petrutlucian94>

Work Items

  • Add new Watcher config options
  • Add metal client abstraction
  • Provide proper test coverage
  • Update Juju Watcher charm, exposing the new config options

Dependencies

None

Testing

Unit tests will be provided for the newly added code.

Power cycle operations are disruptive and can affect other tests, which is probably the reason why there are no existing functional or integration tests for the "energy saving" strategy. Such tests would excercise the MAAS client as well.

Documentation Impact

The new MAAS related config options will have to be documented. Also, some Ironic references may need to be updated, reflecting the fact that Watcher can now use more than one bare metal management service.

References

History

Revisions
Release Name Description
Caracal Introduced