deckhand/deckhand/tests/integration
Phil Sphicas 4ccb4368ce Barbican driver simplification
Under some circumstances, the payloads retrieved from Barbican do not
match what was stored. This primarily affects surrounding whitespace[0],
but the implications for passphrases are significant, and even for PEM
encoded data, a difference in whitespace in a configmap is enough to
trigger a chart upgrade.

In general, the effort to align Deckhand document types with Barbican
secret types adds complexity without tangible benefit. Barbican does no
enforcement of the contents of the data, and if it did, that could lead
to further incompatibilities.

This change uses the 'opaque' secret type for all secret document types.
Before storage (or caching), the payload is serialized using `repr`, and
base64 encoded. Upon retrieval, the payload is base64 decoded and parsed
back into an object with `ast.literal_eval`.

[0]: https://storyboard.openstack.org/#!/story/2007017

Change-Id: I9c2f3427f52a87aad718f95160cf688db35e1b83
2020-01-24 22:26:29 +00:00
..
gabbits Barbican driver simplification 2020-01-24 22:26:29 +00:00
README.rst Add integration tests 2018-04-18 09:05:04 -04:00
__init__.py Add integration tests 2018-04-18 09:05:04 -04:00

README.rst

Integration Tests

What

These tests validate integration scenarios between Deckhand, Keystone and Barbican. These scenarios include validating Deckhand's secret lifecycle management as well as substitution of encrypted secrets, which are stored in Barbican and retrieved by Deckhand during document rendering.

How

Deckhand uses gabbi to drive its integration tests. The entry point for these tests is integration-tests.sh under tools directory.

The integration environment is deployed using OpenStack-Helm which uses Helm to orchestrate deployment of Keystone, Barbican and other pre-requisite services.

Usage

These tests can be executed via ./tools/integration-tests.sh <test-regex> from the command line, where <test-regex> is optional and if omitted all available tests are run. sudo permissions are required. It is recommended that these tests be executed inside a VM as a lot of data is pulled in (which requires thorough clean up) during the deployment phase.