Cluster Controller Rendering of Preseeds
While preseeds are currently rendered on the region controller, it is desirable to do this on cluster controllers instead because cluster controllers are in possession of data like networking information that is not always on the region. This will result in a much better separation of responsibilities - the region provides raw data and the cluster renders it in the most appropriate way.
Here is some information captured from bug 1081701
.. -*- mode: rst -*-
Things needed from the region to render a preseed:
=======
- From ``maasserver.
- Metadata URL: ``absolute_
- Token: ``NodeKey.
- Node status: ``node.status`` (only if commissioning or not)
- From ``maasserver.
- Node status: ``node.status`` (only if commissioning or not)
- Enum ``PRESEED_TYPE``.
⇒ Move to ``provisionings
- Setting ``PRESEED_
⇒ Move to ``provisionings
- Config:
- ``commissioning
- ``main_archive``
- ``ports_archive``
- ``http_proxy``
⇒ Can be obtained via API.
- Server host: ``get_maas_
⇒ Already known on cluster?
- Server URL: ``absolute_
⇒ Already known on cluster?
- Enlistment URL: ``absolute_
- Disable netboot URL::
absolute_
- Enlistment preseed URL::
absolute_
⇒ Becomes responsibility of ``provisionings
- Regular preseed URL::
absolute_
⇒ Becomes responsibility of ``provisionings
- From ``contrib/
- Node architecture: ``node.
Which boils down to:
-------
Code moves (see below_) and a view that returns:
- Metadata URL: ``absolute_
- Token: ``NodeKey.
- Node status: ``node.status`` (only if commissioning or not)
- Node architecture: ``node.
- Enlistment URL: ``absolute_
- Disable netboot URL::
absolute_
- *Optional:* return config items (e.g. ``ports_archive``)
.. _below: `Adding rendering server to the provisioning server:`_
Adding rendering server to the provisioning server:
=======
- Resurrect HTTP server in ``provisionings
- Move code, as detailed earlier_, to ``provisionings
perform some moderate refactoring.
- Add handler to the ``provisionings
view_ detailed above, perhaps query the API for config, and call the
render code.
.. _earlier: `Things needed from the region to render a preseed:`_
.. _view: `Which boils down to:`_
Notes:
======
- The ``pxeconfig`` view calculates the preseed URLs. This calculation
no longer needs to happen, and its responsibility passes to the
provisioning server.
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Low
- Drafter:
- Julian Edwards
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
-
Not started
- Milestone target:
- None
- Started by
- Completed by
- Adam Collard