Update the Tuskar storage spec to reference Heat

Given the progress being made in Heat the most favourable option
now is to use it for parameter storage rather than Barbican.
This update highlights that slight change in direction in the
spec and moves the requirement of Barbican to be a possible
alternative.

Change-Id: I782277e256a3f179620ea58dc7da74ae4a62727e
This commit is contained in:
Dougal Matthews 2014-07-17 13:59:23 +01:00
parent 09f124d79a
commit 1450573734
1 changed files with 24 additions and 15 deletions

View File

@ -334,10 +334,10 @@ The environment file requires secure storage to protect parameter values.
**Storage Drivers**
Storage drivers operate by storing object dictionaries. For storage solutions such
as Glance or Barbican, these dictionaries are stored as flat files. For a storage
solution such as a database, the dictionary is translated into a table row. It is
the responsibility of the driver to understand how it is storing the object
Storage drivers operate by storing object dictionaries. For storage solutions
such as Glance these dictionaries are stored as flat files. For a storage
solution such as a database, the dictionary is translated into a table row. It
is the responsibility of the driver to understand how it is storing the object
dictionaries.
Each storage driver must provide the following methods.
@ -363,9 +363,13 @@ Each storage driver must provide the following methods.
# Return a list of all content.
For Juno, we will aim to use a combination of a relational database and
Barbican. Barbican will be used for the secure storage of environment files.
Database tables will be used for everything else.
For Juno, we will aim to use a combination of a relational database and Heat.
Heat will be used for the secure storage of sensitive environment parameters.
Database tables will be used for everything else. The usage of Heat for secure
stores relies on `PATCH support`_ to be added the Heat API. This bug is
targeted for completion by Juno-2.
.. _PATCH support: https://bugs.launchpad.net/heat/+bug/1224828
This is merely a short-term solution, as it is understood that there is some
reluctance in introducing an unneeded database dependency. In the long-term we
@ -385,7 +389,7 @@ Alternatives
The specification proposes modeling relationships such as a plan's associated
roles or a role's dependent templates as direct attributes of the object.
However, this information wold appear to be available as part of a plan's
However, this information would appear to be available as part of a plan's
environment file or by traversing the role template's dependency graph. Why
not simply derive the relationships in that way?
@ -408,7 +412,7 @@ compute-config.yaml.
**Swift as a Storage Backend**
Swift was considered as an option that would work with Barbican but was
Swift was considered as an option to replace the relational database but was
ultimately discounted for two key reasons:
- The versioning system in Swift doesn't provide a static reference to the
@ -435,10 +439,13 @@ for a development option which will be missing key features.
**Secure Driver Alternatives**
Currently the only alternative to Barbican is to implement our own cryptography
with one of the other options listed above. This isn't a favourable choice as
it adds a technical complexity and risk that should be beyond the scope of this
proposal.
Barbican, the OpenStack secure storage service, provides us with an alternative
if PATCH support isn't added to Heat in time.
Currently the only alternative other than Barbican is to implement our own
cryptography with one of the other options listed above. This isn't a
favourable choice as it adds a technical complexity and risk that should be
beyond the scope of this proposal.
The other option with regards to sensitive data is to not store any. This would
require the REST API caller to provide the sensitive information each time a
@ -449,7 +456,8 @@ Security Impact
---------------
Some of the configuration values, such as service passwords, will be sensitive.
For this reason, Barbican will be used to store all configuration values.
For this reason, Heat or Barbican will be used to store all configuration
values.
While access will be controlled by the Tuskar API large files could be provided
in the place of provider resource files or configuration files. These should be
@ -476,7 +484,7 @@ deployment plan.
Other Deployer Impact
---------------------
TripleO will now require the use of a Barbican and a local database or Glance.
None
Developer Impact
@ -535,6 +543,7 @@ References
- https://blueprints.launchpad.net/glance/+spec/artifact-repository-api
- https://blueprints.launchpad.net/glance/+spec/metadata-artifact-repository
- https://bugs.launchpad.net/heat/+bug/1224828
- https://docs.google.com/document/d/1tOTsIytVWtXGUaT2Ia4V5PWq4CiTfZPDn6rpRm5In7U
- https://etherpad.openstack.org/p/juno-hot-artifacts-repository-finalize-design
- https://etherpad.openstack.org/p/juno-summit-tripleo-tuskar-planning