deckhand/deckhand/tests/functional/gabbits/replacement/multi-layer-replacement.yaml

133 lines
3.5 KiB
YAML

# Tests success path for advanced replacement scenario, where
# parent-replacement (type layer) layers with global document, after which
# the parent-replacement is replaced by the child-replacement (site layer).
#
# 1. Purges existing data to ensure test isolation.
# 2. Adds initial documents with replacement scenario described above.
# 3. Verifies correctly layered, substituted and replaced data.
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
verbose: true
tests:
- name: purge
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
- name: initialize
desc: |-
Create initial documents to validate following scenario:
* Global document called nova-global
* Region document called nova (layers with nova-global)
* Site document (replaces nova)
PUT: /api/v1.0/buckets/mop/documents
status: 200
data: |-
---
schema: deckhand/LayeringPolicy/v1
metadata:
schema: metadata/Control/v1
name: layering-policy
data:
layerOrder:
- global
- type
- site
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: nova-global
storagePolicy: cleartext
labels:
name: nova-global
component: nova
layeringDefinition:
abstract: false
layer: global
data:
values:
pod:
replicas:
server: 16
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: nova
storagePolicy: cleartext
labels:
name: nova-5ec
component: nova
layeringDefinition:
abstract: false
layer: type
parentSelector:
name: nova-global
actions:
- method: merge
path: .
data: {}
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
replacement: true
name: nova
storagePolicy: cleartext
layeringDefinition:
abstract: false
layer: site
parentSelector:
name: nova-5ec
actions:
- method: merge
path: .
data:
values:
pod:
replicas:
api_metadata: 16
placement: 2
osapi: 16
conductor: 16
consoleauth: 2
scheduler: 2
novncproxy: 2
- name: verify_multi_layer_replacement_document
desc: |
Tests success path for advanced replacement scenario, where
parent-replacement document (type layer) layers with document from
global layer, after which it is replaced by the child-replacement
document (site layer).
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/rendered-documents
query_parameters:
schema: armada/Chart/v1
metadata.name: nova
status: 200
response_multidoc_jsonpaths:
$.`len`: 1
$.[*].metadata.name: nova
$.[*].metadata.layeringDefinition.layer: site
$.[*].data:
values:
pod:
replicas:
api_metadata: 16
placement: 2
osapi: 16
conductor: 16
consoleauth: 2
scheduler: 2
novncproxy: 2
server: 16