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
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
- https://maas.io
- https://git.launchpad.net/maas/
- https://github.com/maas/python-libmaas
- https://github.com/openstack/charm-watcher
History
Release Name | Description |
---|---|
Caracal | Introduced |