Build data blueprint
Create a blueprint document describing the solution design for collecing build data in Drydock Change-Id: Ie2b83a6c86cb9ce8006a64e09a31c0b3ee7d2337
This commit is contained in:
parent
01c62f563b
commit
22b574c9b8
102
docs/source/blueprints/build_data.rst
Normal file
102
docs/source/blueprints/build_data.rst
Normal file
@ -0,0 +1,102 @@
|
||||
..
|
||||
Copyright 2017 AT&T Intellectual Property.
|
||||
All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
not use this file except in compliance with the License. You may obtain
|
||||
a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
==================
|
||||
Drydock Build Data
|
||||
==================
|
||||
|
||||
Some site data is not known before the deployment of physical nodes begins.
|
||||
Currently there is no method to harvest and persist this data for later reporting
|
||||
or usage downstream in the deployment process. This blueprint for adding Drydock
|
||||
support for harvesting, persisting, and reporting this build-time data.
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
Build data is any data that is unknown until a site deployment actually begins. It
|
||||
can be harvested any time during the deployment and will be persisted so that it
|
||||
is available via the Drydock API for reporting. Each data element collected will
|
||||
also be associated with the Drydock task that initiated the harvesting. When
|
||||
requesting the details of the task, a client can optionally request the build data
|
||||
harvested by that task directly be attached. Each build data element will be
|
||||
described by the following fields.
|
||||
|
||||
* Date/time - Same type of data can be collected multiple times and archived.
|
||||
* Task - The Drydock Task ID that initiated the collection.
|
||||
* Node - The node on which the data is collected.
|
||||
* Generator - A description of what generated the data. If it was a command line tool,
|
||||
the full command line. If it was something else, then a solid description
|
||||
such as an API endpoint.
|
||||
* Format - The format that the collected data is being persisted as.
|
||||
|
||||
Post-collection, the build data will be accessible in two ways
|
||||
|
||||
#. Using the new builddata endpoint under the /nodes/ resource. See below for details.
|
||||
#. By requesting the details for the initiating task from the ``/api/v1.0/tasks``
|
||||
resource and including the ``builddata=true`` parameter to the request.
|
||||
|
||||
Currently no pruning system is in place, but if storage is a concern that can be
|
||||
added as a follow-on feature.
|
||||
|
||||
Data Schema
|
||||
-----------
|
||||
|
||||
A new table ``build_data`` with the following columns. No keys.
|
||||
|
||||
* ``task_id`` - 128-bit binary task ID of the Drydock task that collected the build data.
|
||||
* ``collected_date`` - The datestamp when the data was collected.
|
||||
* ``generator`` - Description of the command or source of the build data.
|
||||
* ``node_name`` - The node the data is collected from.
|
||||
* ``format`` - The MIME-type of the storage format of the persisted data.
|
||||
* ``data_element`` - The data collected serialized in the format.
|
||||
|
||||
Build Data API
|
||||
--------------
|
||||
|
||||
A new API endpoint of ``/api/v1.0/nodes/{node}/builddata/`` will be added to the API
|
||||
to retrieve the build data for a node. This endpoint will only support a ``GET`` request
|
||||
and supports a single query parameter of ``latest`` which defaults to ``true``. If ``true``
|
||||
then the response will contain only the most recent ``data_element`` for each ``generator``.
|
||||
If the parameter is ``false`` then the response will contain an ordered sequence of all
|
||||
``data_elements`` for each generator in a descending time series.
|
||||
|
||||
The existing ``/api/v1.0/tasks/{task_id}/`` endpoint will be updated to support a query
|
||||
parameter of ``builddata`` that defaults to ``false``. If set to ``true``, the response
|
||||
with the task details will include any build data collected during the execution of the
|
||||
task.
|
||||
|
||||
Expected Use Cases
|
||||
------------------
|
||||
|
||||
Device Aliases
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
The first use case is collecting data from ``lshw`` to resolve device bus addresses
|
||||
into operating system device names. This is done for supporting the device aliases
|
||||
in the HardwareProfile.
|
||||
|
||||
Network Topology
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
During node deployment, LLDP (link level discovery protocol) can be used to validate
|
||||
the network topology. The LLDP output can be collected and audited against expected
|
||||
switch configurations.
|
||||
|
||||
Burn In Performance
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
New hardware can run burn-in routines to collect performance and stability information
|
||||
before production workloads are installed.
|
34
docs/source/blueprints/index.rst
Normal file
34
docs/source/blueprints/index.rst
Normal file
@ -0,0 +1,34 @@
|
||||
..
|
||||
Copyright 2017 AT&T Intellectual Property.
|
||||
All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
not use this file except in compliance with the License. You may obtain
|
||||
a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
==================
|
||||
Drydock Blueprints
|
||||
==================
|
||||
|
||||
These are solution designs for Drydock enhancements. They are split
|
||||
between proposed and accepted. Accepted blueprint implementation can be queued,
|
||||
in-progress or completed.
|
||||
|
||||
Proposed
|
||||
--------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
build_data
|
||||
|
||||
Accepted
|
||||
--------
|
Loading…
x
Reference in New Issue
Block a user