deckhand/doc/source/users/rendering.rst

72 lines
2.2 KiB
ReStructuredText

..
Copyright 2018 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.
.. _rendering:
Document Rendering
==================
Document rendering involves extracting all raw revision documents from
Deckhand's database, retrieving encrypted information from `Barbican`_,
and applying substitution, layering and replacement algorithms on the
data.
The following algorithms are involved during the rendering process:
:ref:`substitution`
-------------------
Substitution provides an "open" data sharing model in which any source
document can be used to substitute data into any destination document.
Use Cases
^^^^^^^^^
* Sharing of data between specific documents no matter their ``schema``.
* Data sharing using pattern matching.
* Fine-grained sharing of specific sections of data.
:ref:`layering`
---------------
Layering provides a "restricted" data inheritance model intended to help
reduce duplication in configuration.
Use Cases
^^^^^^^^^
* Sharing of data between documents with the same ``schema``.
* Deep merging of objects and lists.
* Layer order with multiple layers, resulting in a larger hierarchy of
documents.
* Source document for data sharing can be identified via labels, allowing for
different documents to be used as the source for sharing, depending on
:ref:`parent-selection`.
:ref:`replacement`
------------------
Replacement builds on top of layering to provide yet another mechanism
for reducing data duplication.
Use Cases
^^^^^^^^^
* Same as layering, but with a need to replace higher-layer documents with
lower-layer documents for specific site deployments.
.. _Barbican: https://docs.openstack.org/barbican/latest/api/