drydock/drydock_provisioner/drivers/node/maasdriver
Scott Hussey ae87cd1714 Update image and chart mgmt
NOTE: This has become a monolithic commit to get gate
      settings/scripts in place for CI

- Add Makefile with UCP standard entrypoints
- Move Dockerfile into images/drydock per UCP standards
- Add values.yaml entries for uWSGI threads and workers
- Add environment variables to chart Deployment manifest
  for uWSGI thread and workers
- Add threads and workers specification to uWSGI commandline
  in entrypoint
- Test that the Drydock API is responding
- Test that the Drydock API rejects noauth requests
- Fix Makefile utility script to work behind a proxy

Correct task success voting

Some tasks were incorrectly considered partial_success even when
no failure occurred.

- Network configuration erroneously marked messages as errors
- Update result propagation logic to only use the latest retry

The deploy_nodes task ended as incomplete due to a missing
subtask assignment

Also added a node check step to prepare_nodes so that nodes that
are already under provisioner control (MaaS) are not IPMI-rebooted.

Tangential changes:
- added config item to for leadership claim interval
- added some debug logging to bootaction_report task
- fix tasks list API endpoint to generate valid JSON

Improve task concurrency

When tasks are started with a scope of multiple nodes,
split the main task so each node is managed independently
to de-link the progression of nodes.

- Split the prepare_nodes task
- Begin reducing cyclomatic complexity to allow for
  better unit testing
- Improved tox testing to include coverage by default
- Include postgresql integration tests in coverage

Closes #73

Change-Id: I600c2a4db74dd42e809bc3ee499fb945ebdf31f6
2017-12-15 15:33:14 -06:00
..
actions Update image and chart mgmt 2017-12-15 15:33:14 -06:00
models Implement routedomain support 2017-12-14 13:45:38 -06:00
__init__.py Refactor orchestrator 2017-10-26 15:00:39 -05:00
api_client.py Refactor orchestrator 2017-10-26 15:00:39 -05:00
driver.py Update image and chart mgmt 2017-12-15 15:33:14 -06:00
readme.md Orchestration of MaaS enlistment (#42) 2017-06-15 20:42:53 -07:00

readme.md

MaaS Node Driver

This driver will handle node provisioning using Ubuntu MaaS 2.1. It expects the Drydock config to hold a valid MaaS API URL (e.g. http://host:port/MAAS/api/2.0) and a valid API key for authentication.

Drydock Model to MaaS Model Relationship

Site

Will provide some attributes used for configuring MaaS site-wide such as tag definitions and repositories.

Will provide attributes for configuring Node/Machine interfaces

Network

MaaS will be configured with a single 'space'. Each Network in Drydock will translate to a unique MaaS fabric+vlan+subnet. Any network with an address range of type 'dhcp' will cause DHCP to be enabled in MaaS for that network.

Hardware Profile

A foundation to a Baremetal Node definition. Not directly used in MaaS

Host Profile

A foundation to a Baremetal Node definition. Not directly used in MaaS

Baremetal Node

Defines all the attributes required to commission and deploy nodes via MaaS

  • bootdisk fields and partitions list - Define local node storage configuration to be implemented by MaaS
  • addressing and interface list - Combined with referenced network links and networks, define interface (physical and virtual (bond / vlan)) configurations and network addressing
  • tags and owner data - Statically defined metadata that will propagate to MaaS
  • base_os - Select which stream a node will be deployed with
  • kernel and kernel params - Allow for custom kernel selection and parameter definition