Airflow 2.10.2 + ubuntu_jammy

Change-Id: I7c8a637efc1e969ab6814447e76068caaca0e66e
This commit is contained in:
Sergiy Markin 2024-08-29 00:10:11 +00:00
parent 30e532f866
commit be9f97b846
55 changed files with 791 additions and 289 deletions

View File

@ -13,42 +13,43 @@
- project:
templates:
- docs-on-readthedocs
- openstack-python38-jobs
vars:
rtd_webhook_id: '38572'
rtd_project_name: 'airship-deckhand'
check:
jobs:
- deckhand-tox-py38-postgresql
- deckhand-functional-uwsgi-py38
- deckhand-functional-docker-py38
- deckhand-integration-uwsgi-py38
- deckhand-integration-docker-py38
- openstack-tox-py310
- deckhand-tox-py310-postgresql
- deckhand-functional-uwsgi-py310
- deckhand-functional-docker-py310
- deckhand-integration-uwsgi-py310
- deckhand-integration-docker-py310
- deckhand-chart-build-gate
- deckhand-chart-build-latest-htk
- deckhand-docker-build-gate
- deckhand-openstack-tox-pep8-focal
- deckhand-openstack-tox-cover-focal
- deckhand-airskiff-deployment-focal-kubeadm
- deckhand-openstack-tox-pep8-jammy
- deckhand-openstack-tox-cover-jammy
- deckhand-airskiff-deployment-jammy-kubeadm
gate:
jobs:
- deckhand-tox-py38-postgresql
- deckhand-functional-uwsgi-py38
- deckhand-functional-docker-py38
- deckhand-integration-uwsgi-py38
- deckhand-integration-docker-py38
- openstack-tox-py310
- deckhand-tox-py310-postgresql
- deckhand-functional-uwsgi-py310
- deckhand-functional-docker-py310
- deckhand-integration-uwsgi-py310
- deckhand-integration-docker-py310
- deckhand-chart-build-gate
- deckhand-chart-build-latest-htk
- deckhand-docker-build-gate
- deckhand-openstack-tox-pep8-focal
- deckhand-openstack-tox-cover-focal
- deckhand-openstack-tox-pep8-jammy
- deckhand-openstack-tox-cover-jammy
post:
jobs:
- deckhand-upload-git-mirror
- deckhand-docker-publish-ubuntu_focal
- deckhand-docker-publish-ubuntu_jammy
- nodeset:
@ -64,37 +65,37 @@
label: ubuntu-bionic
- nodeset:
name: deckhand-single-node-focal
name: deckhand-single-node-jammy
nodes:
- name: primary
label: ubuntu-focal
label: ubuntu-jammy
- nodeset:
name: deckhand-single-node-airskiff-focal
name: deckhand-single-node-airskiff-jammy
nodes:
- name: primary
label: ubuntu-focal
label: ubuntu-jammy
- job:
name: deckhand-openstack-tox-pep8-focal
name: deckhand-openstack-tox-pep8-jammy
parent: openstack-tox-pep8
description: Runs pep8 job on focal
nodeset: treasuremap-airskiff-1node-ubuntu_focal
description: Runs pep8 job on jammy
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
- job:
name: deckhand-openstack-tox-cover-focal
name: deckhand-openstack-tox-cover-jammy
parent: openstack-tox-cover
description: Runs cover job on focal
nodeset: treasuremap-airskiff-1node-ubuntu_focal
description: Runs cover job on jammy
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
- job:
name: deckhand-tox-py38-postgresql
parent: openstack-tox-py38
nodeset: treasuremap-airskiff-1node-ubuntu_focal
name: deckhand-tox-py310-postgresql
parent: openstack-tox-py310
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
pre-run:
- tools/gate/playbooks/prepare-hosts.yaml
vars:
tox_envlist: py38-postgresql
tox_envlist: py310-postgresql
- job:
name: deckhand-base
@ -117,6 +118,7 @@
- ^deckhand/tests/unit/.*$
timeout: 10800
pre-run:
- tools/gate/playbooks/checkout-treasuremap-ref.yaml
- tools/gate/playbooks/prepare-hosts.yaml
- tools/gate/playbooks/mount-volumes.yaml
- tools/gate/playbooks/deploy-env.yaml
@ -125,6 +127,7 @@
post-run:
- tools/gate/playbooks/osh-infra-collect-logs.yaml
vars:
treasuremap_ref: refs/changes/43/927643/4
extra_volume:
size: 80G
type: Linux
@ -141,15 +144,16 @@
loopback_device: /dev/loop100
loopback_image: "/opt/ext_vol/openstack-helm/ceph-loop.img"
ceph_osd_data_device: /dev/loop100
kube_version_repo: "v1.29"
kube_version: "1.29.5-1.1"
kube_version_repo: "v1.30"
kube_version: "1.30.3-1.1"
calico_setup: true
calico_version: "v3.27.0"
calico_version: "v3.27.4"
cilium_setup: false
cilium_version: "1.15.6"
helm_version: "v3.6.3"
yq_version: "v4.6.0"
crictl_version: "v1.26.1"
cilium_version: "1.16.0"
flannel_setup: false
flannel_version: v0.25.4
helm_version: "v3.15.4"
crictl_version: "v1.30.1"
zuul_osh_relative_path: ../../openstack/openstack-helm
zuul_osh_infra_relative_path: ../../openstack/openstack-helm-infra
zuul_treasuremap_relative_path: ../../airship/treasuremap
@ -158,61 +162,61 @@
- job:
name: deckhand-functional-docker-py38
name: deckhand-functional-docker-py310
description: |
Run tox-based functional tests for the Airship Deckhand project under
cPython version 3.8. Uses tox with the ``functional-py38`` environment.
Ubuntu (focal) image is built and used.
cPython version 3.10. Uses tox with the ``functional-py310`` environment.
Ubuntu (jammy) image is built and used.
parent: deckhand-base
run: tools/gate/playbooks/run-functional-tests-docker.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars:
tox_envlist: py38-functional
tox_envlist: py310-functional
disable_keystone: true
DISTRO: ubuntu_focal
DISTRO: ubuntu_jammy
irrelevant-files: *irrelevant-files
- job:
name: deckhand-functional-uwsgi-py38
name: deckhand-functional-uwsgi-py310
description: |
Run tox-based functional tests for the Airship Deckhand project using a
minimalistic deployment consisting of uwsgi for Deckhand API and pifpaf
for ephemeral PostgreSQL DB, under cPython version 3.8.
for ephemeral PostgreSQL DB, under cPython version 3.10.
parent: deckhand-base
run: tools/gate/playbooks/run-functional-tests-uwsgi.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars:
tox_envlist: py38-functional-dev
DISTRO: ubuntu_focal
tox_envlist: py310-functional-dev
DISTRO: ubuntu_jammy
irrelevant-files: *irrelevant-files
- job:
name: deckhand-integration-uwsgi-py38
name: deckhand-integration-uwsgi-py310
description: |
Run tox-based integration tests for the Airship Deckhand project using a
minimalistic deployment consisting of uwsgi for Deckhand API and pifpaf
for ephemeral PostgreSQL DB, under cPython version 3.8.
for ephemeral PostgreSQL DB, under cPython version 3.10.
parent: deckhand-base
run: tools/gate/playbooks/run-integration-tests-uwsgi.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
irrelevant-files: *irrelevant-files
vars:
disable_keystone: true
DISTRO: ubuntu_focal
DISTRO: ubuntu_jammy
- job:
name: deckhand-integration-docker-py38
name: deckhand-integration-docker-py310
description: |
Run tox-based integration tests for the Airship Deckhand project under
cPython version 3.8. Builds ubuntu (focal) deckhand image.
cPython version 3.10. Builds ubuntu (jammy) deckhand image.
parent: deckhand-base
run: tools/gate/playbooks/run-integration-tests-docker.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars:
tox_envlist: py38-functional
tox_envlist: py310-functional
disable_keystone: false
DISTRO: ubuntu_focal
DISTRO: ubuntu_jammy
irrelevant-files: *irrelevant-files
- job:
@ -221,9 +225,9 @@
Build charts using pinned Helm toolkit.
timeout: 900
run: tools/gate/playbooks/build-charts.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars:
HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
HTK_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
- job:
name: deckhand-chart-build-latest-htk
@ -231,48 +235,26 @@
Build charts using latest Helm toolkit.
timeout: 900
run: tools/gate/playbooks/build-charts.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
vars:
HTK_COMMIT: master
# - job:
# name: deckhand-airskiff-deployment-focal
# voting: true
# nodeset: treasuremap-airskiff-1node-ubuntu_focal
# description: |
# Deploy Memcached using Airskiff and submitted Deckhand changes.
# timeout: 9600
# pre-run:
# - tools/gate/playbooks/git-config.yaml
# - tools/gate/playbooks/airskiff-reduce-site.yaml
# run: tools/gate/playbooks/airskiff-deploy.yaml
# post-run: tools/gate/playbooks/debug-report.yaml
# required-projects:
# - airship/treasuremap
# vars:
# CLONE_DECKHAND: false
# DECKHAND_IMAGE_DISTRO: ubuntu_focal
# HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz
# HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
# OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
# OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7
# DISTRO: ubuntu_focal
# irrelevant-files: *irrelevant-files
- job:
name: deckhand-airskiff-deployment-focal-kubeadm
nodeset: treasuremap-airskiff-1node-ubuntu_focal
name: deckhand-airskiff-deployment-jammy-kubeadm
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
description: |
Deploy Memcached using Airskiff and submitted Deckhand changes.
parent: deckhand-base
vars:
site: airskiff
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz
HTK_COMMIT: 05f2f45971abcf483189358d663e2b46c3fc2fe8
OSH_INFRA_COMMIT: 05f2f45971abcf483189358d663e2b46c3fc2fe8
OSH_COMMIT: 049e679939fbd3b0c659dd0977911b8dc3b5a015
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
HTK_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
OSH_INFRA_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b
OSH_COMMIT: 540df5cb0dbdaed63c202e2d6f2b7891062f8203
TREASUREMAP_COMMIT: refs/changes/43/927643/2
CLONE_DECKHAND: false
DISTRO: ubuntu_focal
DISTRO: ubuntu_jammy
DOCKER_REGISTRY: localhost:5000
MAKE_DECKHAND_IMAGES: true
gate_scripts_relative_path: ../../airship/treasuremap
@ -286,6 +268,7 @@
- ./tools/deployment/airskiff/developer/025-start-artifactory.sh
- ./tools/deployment/airskiff/developer/026-reduce-site.sh
- ./tools/deployment/airskiff/developer/030-armada-bootstrap.sh
# - ./tools/deployment/airskiff/common/sleep.sh
- ./tools/deployment/airskiff/developer/100-deploy-osh.sh
- ./tools/deployment/airskiff/common/os-env.sh
- ./tools/gate/wait-for-shipyard.sh
@ -295,7 +278,7 @@
name: deckhand-docker-build-gate
timeout: 3600
run: tools/gate/playbooks/docker-image-build.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
irrelevant-files: &non-code-files-template
- ^.*\.rst$
- ^doc/.*$
@ -305,36 +288,36 @@
- ^setup.cfg$
vars:
publish: false
DISTRO: ubuntu_focal
DISTRO: ubuntu_jammy
tags:
dynamic:
patch_set: true
- job:
name: deckhand-docker-publish-ubuntu_focal
name: deckhand-docker-publish-ubuntu_jammy
description: |
Runs on every merge, unless files in a dictionary below are changed.
Builds and publishes container ubuntu images on quay.io with a set of tags
listed in vars section. Waits in Zuul queue for a node (VM) assignment.
timeout: 3600
run: tools/gate/playbooks/docker-image-build.yaml
nodeset: treasuremap-airskiff-1node-ubuntu_focal
nodeset: treasuremap-airskiff-1node-ubuntu_jammy
secrets:
- airship_deckhand_quay_creds
irrelevant-files: *non-code-files-template
vars:
publish: true
DISTRO: ubuntu_focal
DISTRO: ubuntu_jammy
tags:
dynamic:
branch: true
commit: true
static:
- latest
- airflow_2.8.2
- airflow_2.10.0
- job:
name: deckhand-docker-tag-ubuntu_focal
name: deckhand-docker-tag-ubuntu_jammy
description: |
Runs on every merge when files in a dictionalry below are changed, and
adds git commit id tag onto the ubuntu container image published on quay.io,
@ -347,7 +330,7 @@
secrets:
- airship_deckhand_quay_creds
vars:
DISTRO: ubuntu_focal
DISTRO: ubuntu_jammy
- secret:

View File

@ -1,7 +1,18 @@
CHANGES
=======
* Update deploy-env parameters
* Kubeadm based Airskiff gate
* Fix deckhand-api dependences
* Airflow stable 2.8.2
* Airflow stable 2.8.1
* Use deploy-env role
* Rollback python deps update
* Remove openstack-helm nodeset
* Update helm toolkit reference
* Deprecating the Ingress Class Annotation
* Airflow stable 2.6.2
* Deckhand updates
* Restored ubuntu\_bionic image build
* [focal] Fix requests.body attribute deprecation
* Update airskiff deployment gate

View File

@ -25,10 +25,11 @@ USE_PROXY ?= false
PUSH_IMAGE ?= false
# use this variable for image labels added in internal build process
LABEL ?= org.airshipit.build=community
DISTRO ?= ubuntu_focal
DISTRO ?= ubuntu_jammy
DISTRO_ALIAS ?= ubuntu_focal
COMMIT ?= $(shell git rev-parse HEAD)
IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}
IMAGE_ALIAS := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO_ALIAS}
export
# Build Deckhand Docker image for this project
@ -87,6 +88,13 @@ else
$(_BASE_IMAGE_ARG) \
-f images/deckhand/Dockerfile.$(DISTRO) .
endif
ifneq ($(DISTRO), $(DISTRO_ALIAS))
docker tag $(IMAGE) $(IMAGE_ALIAS)
endif
ifeq ($(DOCKER_REGISTRY), localhost:5000)
docker push $(IMAGE)
docker push $(IMAGE_ALIAS)
endif
ifeq ($(PUSH_IMAGE), true)
docker push $(IMAGE)
endif

View File

@ -10,6 +10,7 @@ libpq-dev [platform:dpkg]
libsasl2-dev [platform:dpkg]
libssl-dev [platform:dpkg]
libre2-dev [platform:dpkg]
postgresql [platform:dpkg]
postgresql-14 [platform:dpkg]
postgresql-contrib [platform:dpkg]
ethtool [platform:dpkg]
net-tools [platform:dpkg]

View File

@ -15,7 +15,7 @@
apiVersion: v1
description: A Helm chart for Deckhand
name: deckhand
version: 0.2.1
version: 0.2.2
appVersion: 1.1.0
keywords:
- deckhand

View File

@ -340,7 +340,7 @@ pod:
security_context:
deckhand:
pod:
runAsUser: 65534
runAsUser: 1000
container:
deckhand_api:
readOnlyRootFilesystem: true
@ -354,7 +354,7 @@ pod:
allowPrivilegeEscalation: false
db_sync:
pod:
runAsUser: 65534
runAsUser: 1000
container:
deckhand_db_sync:
readOnlyRootFilesystem: true

View File

@ -8,8 +8,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -17,16 +17,20 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create
desc: Create initial documents
PUT: /api/v1.0/buckets/a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/sample-doc.yaml
- name: error
desc: Trigger error case
PUT: /api/v1.0/buckets/b/documents
status: 409
response_headers:
content-type: application/x-yaml
data: <@resources/sample-doc.yaml

View File

@ -16,8 +16,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -25,18 +25,22 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create_a
desc: Create documents in one bucket (a)
PUT: /api/v1.0/buckets/a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-needs-substitution-source.yaml
- name: verify_first_bucket
desc: Verify document count and revisions
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/documents
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
$.[*].metadata.name:
@ -56,6 +60,8 @@ tests:
desc: Create documents in a second bucket (b)
PUT: /api/v1.0/buckets/b/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/passphrase.yaml
- name: verify_second_bucket
@ -84,6 +90,8 @@ tests:
desc: Verify initial revision is unchanged
GET: /api/v1.0/revisions/$HISTORY['create_a'].$RESPONSE['$.[0].status.revision']/documents
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
$.[*].metadata.name:

View File

@ -9,8 +9,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -18,18 +18,22 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/deckhand-owned-sample.yaml
- name: verify_certificate_content
desc: Verify Passphrase content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=deckhand/Certificate/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].data: |
@ -62,6 +66,8 @@ tests:
desc: Verify Passphrase content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=deckhand/Passphrase/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].data: hunter2

View File

@ -35,8 +35,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -44,12 +44,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: verify_initial
@ -58,6 +60,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -80,17 +84,23 @@ tests:
desc: Push a duplicate bucket of documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: verify_ignore
desc: Verify duplicate documents were ignored
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -113,6 +123,8 @@ tests:
desc: Update a single document, ignore other documents in the bucket
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-with-update.yaml
- name: verify_update
@ -121,6 +133,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -146,6 +160,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -169,6 +185,8 @@ tests:
desc: Delete a single document
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-with-delete.yaml
- name: verify_delete
@ -177,6 +195,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
$.[*].status.revision:
@ -199,6 +219,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -224,6 +246,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:

View File

@ -8,8 +8,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -17,18 +17,22 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/unusual-documents.yaml
- name: verity_list_content
desc: Verify list content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/List/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].data:
@ -40,6 +44,8 @@ tests:
desc: Verify DictWithSecret content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/DictWithSecret/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].data:
@ -50,6 +56,8 @@ tests:
desc: Verify String content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/String/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].data: strings are useful
@ -58,6 +66,8 @@ tests:
desc: Verify Integer content
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/documents?schema=unusual/Integer/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].data: 9000

View File

@ -8,8 +8,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -17,7 +17,7 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: add_bucket_layering
desc: |-
@ -25,6 +25,8 @@ tests:
and site.
PUT: /api/v1.0/buckets/layering/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -41,12 +43,16 @@ tests:
desc: Create documents for bucket a
PUT: /api/v1.0/buckets/a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-split-bucket-a.yaml
- name: add_bucket_b
desc: Create documents for bucket b
PUT: /api/v1.0/buckets/b/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-split-bucket-b.yaml
- name: verify_layering
@ -57,6 +63,8 @@ tests:
- schema
- metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
$.[0].schema: deckhand/LayeringPolicy/v1

View File

@ -7,8 +7,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -16,15 +16,19 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/passphrase.yaml
- name: verify_missing_layering_policy_raises_conflict
desc: Verify that attempting to render documents without a layering policy raises a 409
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/rendered-documents
status: 409
response_headers:
content-type: application/x-yaml

View File

@ -8,8 +8,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -17,12 +17,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create_documents_for_validating_2_level_layering
desc: Create documents for validating 2 levels of layering (global, site)
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-2-layers.yaml
- name: verify_layering_2_layers
@ -31,6 +33,8 @@ tests:
query_parameters:
sort: schema
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 2
$.[0].schema: deckhand/LayeringPolicy/v1
@ -47,12 +51,16 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers:
content-type: application/x-yaml
response_headers: {}
- name: create_documents_for_validating_3_level_layering
desc: Create documents for validating 3 levels of layering (global, region, site)
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: verify_layering_3_layers
@ -61,6 +69,8 @@ tests:
query_parameters:
sort: schema
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 2
$.[0].schema: deckhand/LayeringPolicy/v1

View File

@ -12,8 +12,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -21,13 +21,15 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create_documents_for_validating_replacement_of_sub_source
desc: |
Create documents for validating replacement of a substitution source.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |
---
schema: deckhand/LayeringPolicy/v1
@ -102,6 +104,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
@ -128,6 +132,8 @@ tests:
Create documents for validating replacement of a layering source.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |
---
schema: deckhand/LayeringPolicy/v1
@ -222,6 +228,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4

View File

@ -29,8 +29,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -38,7 +38,7 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize_layering_policy_base_case
desc: |
@ -47,6 +47,8 @@ tests:
is abstract has layer region.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -66,6 +68,8 @@ tests:
substitutions from secret documents.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-sample.yaml
- name: verify_base_case
@ -74,6 +78,8 @@ tests:
query_parameters:
metadata.name: armada-chart-01
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: armada-chart-01
@ -95,6 +101,8 @@ tests:
Re-initailize the layering policy with 3 layers so that the top is empty
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -113,6 +121,8 @@ tests:
Same case as before, except with a top empty layer.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-sample.yaml
- name: verify_empty_top_layer
@ -121,6 +131,8 @@ tests:
query_parameters:
metadata.name: armada-chart-01
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: armada-chart-01
@ -143,6 +155,8 @@ tests:
empty
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -162,6 +176,8 @@ tests:
Same case as before, except with multiple empty top layers.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-sample.yaml
- name: verify_multiple_empty_top_layers
@ -170,6 +186,8 @@ tests:
query_parameters:
metadata.name: armada-chart-01
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: armada-chart-01
@ -192,6 +210,8 @@ tests:
layers.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -212,6 +232,8 @@ tests:
Same case as before, except with multiple empty interspersed layers.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-sample.yaml
- name: verify_multiple_empty_interspersed_layers
@ -220,6 +242,8 @@ tests:
query_parameters:
metadata.name: armada-chart-01
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: armada-chart-01
@ -241,6 +265,8 @@ tests:
Initailize the layering policy with 2 layers.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -260,6 +286,8 @@ tests:
the correct substitution order.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/layering-and-substitution-dag-sample.yaml
- name: verify_substitution_dependency_chain
@ -275,6 +303,8 @@ tests:
schema: armada/Chart/v1
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
$.[0].metadata.name: armada-chart-01

View File

@ -9,8 +9,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -18,7 +18,7 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: |-
@ -30,6 +30,8 @@ tests:
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -114,6 +116,8 @@ tests:
schema: armada/Chart/v1
metadata.name: nova
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[*].metadata.name: nova

View File

@ -9,8 +9,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -18,12 +18,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/replacement.yaml
- name: verify_replacement_document_receives_substitution
@ -35,6 +37,8 @@ tests:
query_parameters:
schema: armada/Chart/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[*].metadata.name: example-chart-01

View File

@ -28,8 +28,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -37,12 +37,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create_a
desc: Create documents in bucket_a
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -70,6 +72,8 @@ tests:
desc: Modify data value of doc-a document in bucket_a
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -88,6 +92,8 @@ tests:
desc: Verify deepdiff of modified data value of doc-a document
GET: /api/v1.0/revisions/1/deepdiff/2
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].'bucket_a': modified
@ -105,6 +111,8 @@ tests:
desc: Verify deepdiff when revision=0 comparision_revision=0
GET: /api/v1.0/revisions/0/deepdiff/0
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]: {}
@ -113,6 +121,8 @@ tests:
desc: Verify deepdiff when revision=0
GET: /api/v1.0/revisions/0/deepdiff/2
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -122,6 +132,8 @@ tests:
desc: Verify deepdiff when comparision_revision=0
GET: /api/v1.0/revisions/2/deepdiff/0
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -131,6 +143,8 @@ tests:
desc: Add new document doc-b in bucket_a
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -161,6 +175,8 @@ tests:
desc: Verify deepdiff of newly added doc-b document
GET: /api/v1.0/revisions/2/deepdiff/3
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].'bucket_a': modified
@ -171,6 +187,8 @@ tests:
desc: Delete document doc-b in bucket_a
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -189,6 +207,8 @@ tests:
desc: Verify deepdiff of deleted doc-b document
GET: /api/v1.0/revisions/3/deepdiff/4
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].'bucket_a': modified
@ -199,6 +219,8 @@ tests:
desc: Verify deepdiff of the same revisions
GET: /api/v1.0/revisions/3/deepdiff/3
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].'bucket_a': unmodified
@ -207,6 +229,8 @@ tests:
desc: Verify deepdiff of different revisions of same document
GET: /api/v1.0/revisions/2/deepdiff/4
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].'bucket_a': unmodified
@ -215,6 +239,8 @@ tests:
desc: Adding a new key in doc-a
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -234,6 +260,8 @@ tests:
desc: Verify deepdiff of addition of a new key in doc-a
GET: /api/v1.0/revisions/4/deepdiff/5
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].'bucket_a': modified
@ -249,6 +277,8 @@ tests:
desc: Removing a key in doc-a
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -267,6 +297,8 @@ tests:
desc: Verify deepdiff of removal of a key in doc-a
GET: /api/v1.0/revisions/5/deepdiff/6
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].'bucket_a': modified
@ -282,8 +314,11 @@ tests:
desc: Verify deepdiff when invalid revision id pass in input
GET: /api/v1.0/revisions/test/deepdiff/2
status: 400
response_headers:
content-type: application/x-yaml
- name: verify_revision_not_found
desc: Verify deepdiff when input revision id is not found
GET: /api/v1.0/revisions/1000/deepdiff/2
status: 404
response_headers: {}

View File

@ -12,8 +12,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -21,12 +21,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create_a
desc: Create documents in bucket a
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -45,11 +47,15 @@ tests:
desc: Rollback to revision 0
POST: /api/v1.0/rollback/0
status: 201
response_headers:
content-type: application/x-yaml
- name: verify_null_with_rollback_to_null
desc: Validates response for null diff rollback to null revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]: {}
@ -58,6 +64,8 @@ tests:
desc: Validates response for rollback to null revision with null revision
GET: /api/v1.0/revisions/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']/diff/0
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]: {}
@ -66,6 +74,8 @@ tests:
desc: Create documents in bucket b
PUT: /api/v1.0/buckets/bucket_b/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -84,6 +94,8 @@ tests:
desc: Validates response for diff with rollack to null and create bucket b
GET: /api/v1.0/revisions/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']/diff/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -93,6 +105,8 @@ tests:
desc: Validates response for diff with rollack to null and create bucket b
GET: /api/v1.0/revisions/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['rollback_to_null'].$RESPONSE['$.[0].id']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:

View File

@ -18,8 +18,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -27,12 +27,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create_a
desc: Create documents in bucket a
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -51,6 +53,8 @@ tests:
desc: Create documents in bucket b
PUT: /api/v1.0/buckets/bucket_b/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -69,6 +73,8 @@ tests:
desc: Create documents in bucket c
PUT: /api/v1.0/buckets/bucket_c/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -87,6 +93,8 @@ tests:
desc: Create documents in bucket d
PUT: /api/v1.0/buckets/bucket_d/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -105,6 +113,8 @@ tests:
desc: Validates response for null diff for first revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_a'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -114,6 +124,8 @@ tests:
desc: Validates response for null diff for second revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_b'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -124,6 +136,8 @@ tests:
desc: Validates response for null diff for third revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_c'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -135,6 +149,8 @@ tests:
desc: Validates response for null diff for fourth revision
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -147,6 +163,8 @@ tests:
desc: Validates response for null diff for fourth revision
GET: /api/v1.0/revisions/0/diff/0
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]: {}
@ -155,6 +173,8 @@ tests:
desc: Update document in bucket c
PUT: /api/v1.0/buckets/bucket_c/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -173,6 +193,8 @@ tests:
desc: Validates response for null diff between the first 4 buckets and single update
GET: /api/v1.0/revisions/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['update_c'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -185,12 +207,16 @@ tests:
desc: Delete documents from bucket b
PUT: /api/v1.0/buckets/bucket_b/documents
status: 200
response_headers:
content-type: application/x-yaml
data: ""
- name: create_mistake
desc: Create documents in bucket mistake
PUT: /api/v1.0/buckets/bucket_mistake/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -208,6 +234,8 @@ tests:
desc: Delete documents from bucket mistake
PUT: /api/v1.0/buckets/bucket_mistake/documents
status: 200
response_headers:
content-type: application/x-yaml
data: ""
# Verification for whether a bucket_name was returned even though all the
# documents for this bucket were deleted.
@ -219,6 +247,8 @@ tests:
desc: Validates response for deletion between the last 2 revisions
GET: /api/v1.0/revisions/$HISTORY['create_mistake'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['delete_mistake'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -231,6 +261,8 @@ tests:
desc: Create documents in bucket e
PUT: /api/v1.0/buckets/bucket_e/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: example/Kind/v1
@ -249,6 +281,8 @@ tests:
desc: Validates response for null diff between the first 4 buckets and now
GET: /api/v1.0/revisions/$HISTORY['create_d'].$RESPONSE['$.[0].status.revision']/diff/$HISTORY['create_e'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:
@ -262,6 +296,8 @@ tests:
desc: Validates response for null diff and now
GET: /api/v1.0/revisions/0/diff/$HISTORY['create_e'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0]:

View File

@ -6,8 +6,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -15,12 +15,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: filter_by_schema_partial_namespace
@ -29,6 +31,8 @@ tests:
query_parameters:
schema: exam
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: null
- name: filter_by_schema_partial_kind
@ -37,6 +41,8 @@ tests:
query_parameters:
schema: example/Ki
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: null
- name: filter_by_schema_incorrect_version
@ -45,6 +51,8 @@ tests:
query_parameters:
schema: example/Kind/v2
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths: null
- name: filter_by_limit_illegal_value
@ -53,3 +61,5 @@ tests:
query_parameters:
limit: 'illegal'
status: 400
response_headers:
content-type: application/x-yaml

View File

@ -10,8 +10,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -19,12 +19,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: filter_by_schema
@ -33,6 +35,8 @@ tests:
query_parameters:
schema: deckhand/LayeringPolicy/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: layering-policy
@ -44,6 +48,8 @@ tests:
query_parameters:
schema: example
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
$.[0].metadata.name: global-1234
@ -59,6 +65,8 @@ tests:
query_parameters:
schema: example/Kind
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
$.[0].metadata.name: global-1234
@ -74,6 +82,8 @@ tests:
query_parameters:
metadata.name: layering-policy
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: layering-policy
@ -84,6 +94,8 @@ tests:
query_parameters:
metadata.label: key1=value1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 2
$.[*].metadata.name:
@ -99,6 +111,8 @@ tests:
query_parameters:
metadata.layeringDefinition.abstract: true
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 2
$.[*].metadata.name:
@ -114,6 +128,8 @@ tests:
query_parameters:
metadata.layeringDefinition.layer: site
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: site-1234
@ -126,6 +142,8 @@ tests:
status.bucket: mop
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -145,6 +163,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -159,6 +179,8 @@ tests:
query_parameters:
sort: schema
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].schema:
@ -175,6 +197,8 @@ tests:
- schema
- metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].schema:
@ -196,6 +220,8 @@ tests:
- metadata.name
- schema
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -218,6 +244,8 @@ tests:
- schema
limit: 2
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 2
$.[*].metadata.name:

View File

@ -9,8 +9,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -18,12 +18,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: filter_by_multiple_different_filters_expect_site
@ -33,6 +35,8 @@ tests:
metadata.layeringDefinition.layer: site
metadata.layeringDefinition.abstract: false
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: site-1234
@ -46,6 +50,8 @@ tests:
metadata.layeringDefinition.layer: region
metadata.layeringDefinition.abstract: true
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: region-1234
@ -60,6 +66,8 @@ tests:
- site
- region
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 2
$.[*].metadata.name:
@ -77,6 +85,8 @@ tests:
- foo=bar
- baz=qux
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: site-1234

View File

@ -15,8 +15,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -24,30 +24,38 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: update_single_document
desc: Update a single document, ignore other documents in the bucket
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-with-update.yaml
- name: delete_document
desc: Delete a single document
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-with-delete.yaml
- name: rollback
desc: Rollback to revision 1
POST: /api/v1.0/rollback/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 201
response_headers:
content-type: application/x-yaml
# Verify document history
- name: verify_revision_1
@ -56,6 +64,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -85,6 +95,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:
@ -114,6 +126,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 3
$.[*].metadata.name:
@ -139,6 +153,8 @@ tests:
query_parameters:
sort: metadata.name
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 4
$.[*].metadata.name:

View File

@ -26,8 +26,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -35,18 +35,22 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: create_tag
desc: Create a tag for the revision
POST: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/tags/foo
status: 201
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.[0].`len`: 1
@ -56,6 +60,8 @@ tests:
desc: Verify showing created tag works
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
@ -65,6 +71,8 @@ tests:
desc: Verify showing created tag on revision detail
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].tags.`len`: 1
@ -84,6 +92,8 @@ tests:
desc: Create a tag with data for the revision
POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/bar
status: 201
response_headers:
content-type: application/x-yaml
data: <@resources/sample-tag-data.yaml
response_multidoc_jsonpaths:
@ -97,6 +107,8 @@ tests:
desc: Verify listing tags contains created tag
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
@ -111,6 +123,8 @@ tests:
desc: Verify showing created tag on revision detail
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].tags.`len`: 2
@ -132,12 +146,14 @@ tests:
desc: Verify deleting tag works
DELETE: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo
status: 204
response_headers: null
response_headers: {}
- name: verify_tag_delete
desc: Verify listing tags contains non-deleted tag
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
@ -150,6 +166,8 @@ tests:
desc: Verify not showing deleted tag on revision detail
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].tags.`len`: 1
@ -161,6 +179,8 @@ tests:
desc: Verify not showing deleted tag on revision list
GET: /api/v1.0/revisions
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.[0].results.`len`: 1
$.[0].results[0].tags.`len`: 1
@ -170,12 +190,14 @@ tests:
desc: Verify deleting tag works
DELETE: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
status: 204
response_headers: null
response_headers: {}
- name: verify_revision_detail_deleted_all
desc: Verify empty tags on revision detail
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].tags: {}
@ -184,6 +206,8 @@ tests:
desc: Verify empty tags on revision list
GET: /api/v1.0/revisions
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.[0].results.`len`: 1
$.[0].results[0].tags: []
@ -192,6 +216,8 @@ tests:
desc: Verify all tags have been deleted
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1

View File

@ -9,8 +9,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -18,7 +18,7 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
# Validates whether creating a revision works.
# Required parameters:
@ -28,6 +28,8 @@ tests:
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
# Validates whether revision was created.
@ -38,6 +40,8 @@ tests:
desc: Verify that revision was created for document above
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].id: $HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
@ -50,6 +54,8 @@ tests:
desc: Verify that revision was created for document above
GET: /api/v1.0/revisions
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].count: 1
@ -64,7 +70,7 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
# Validates whether revision was deleted.
# Required parameters:
@ -74,3 +80,4 @@ tests:
desc: Verify that the revision was deleted
GET: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']
status: 404
response_headers: {}

View File

@ -7,8 +7,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -16,35 +16,45 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create first revision for testing
PUT: /api/v1.0/buckets/bucket_a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-layering-sample-3-layers.yaml
- name: initialize_again
desc: Create second revision for testing
PUT: /api/v1.0/buckets/bucket_b/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/sample-doc.yaml
- name: initialize_once_again
desc: Create third revision for testing
PUT: /api/v1.0/buckets/bucket_c/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/sample-schema.yaml
- name: create_tag
desc: Create a tag for testing filtering a revision by tag
POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/foo
status: 201
response_headers:
content-type: application/x-yaml
- name: create_another_tag
desc: Create another tag for testing filtering a revision by many tags
POST: /api/v1.0/revisions/$HISTORY['initialize'].$RESPONSE['$.[0].status.revision']/tags/bar
status: 201
response_headers:
content-type: application/x-yaml
- name: verify_revision_list_for_one_valid_filter
desc: Verify that revision is returned for filter tag="foo"
@ -52,6 +62,8 @@ tests:
query_parameters:
tag: foo
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].count: 1
@ -70,6 +82,8 @@ tests:
- foo
- bar
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].count: 1
@ -85,6 +99,8 @@ tests:
query_parameters:
tag: baz
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].count: 0
@ -96,6 +112,8 @@ tests:
query_parameters:
sort: id
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.[0].results.`len`: 3
$.[0].results[*].id:
@ -110,6 +128,8 @@ tests:
sort: id
order: desc
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.[0].results.`len`: 3
$.[0].results[*].id:

View File

@ -8,8 +8,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -17,12 +17,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create
desc: Create documents.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/chained-substitution.yaml
- name: verify_intermediate_substitution
@ -31,6 +33,8 @@ tests:
query_parameters:
sort: schema
status: 200
response_headers:
content-type: application/x-yaml
query_parameters:
schema: example/Middle/v1
response_multidoc_jsonpaths:
@ -44,6 +48,8 @@ tests:
query_parameters:
sort: schema
status: 200
response_headers:
content-type: application/x-yaml
query_parameters:
schema: example/Dest/v1
response_multidoc_jsonpaths:

View File

@ -8,8 +8,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -17,18 +17,22 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: add_bucket_a
desc: Create documents for bucket a
PUT: /api/v1.0/buckets/a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-substitution-sample-split-bucket-a.yaml
- name: add_bucket_b
desc: Create documents for bucket b
PUT: /api/v1.0/buckets/b/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-substitution-sample-split-bucket-b.yaml
- name: verify_substitutions
@ -37,6 +41,8 @@ tests:
query_parameters:
schema: armada/Chart/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[*].metadata.name: example-chart-01

View File

@ -7,8 +7,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -16,7 +16,7 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize_documents_with_missing_src_substitution_path
desc: |
@ -24,6 +24,8 @@ tests:
a path via `src.path` that doesn't exist in the source document.
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/substitution-results-in-none-bug.yaml
- name: verify_bad_request_raised
@ -34,3 +36,5 @@ tests:
query_parameters:
schema: deckhand/Dest/v1
status: 400
response_headers:
content-type: application/x-yaml

View File

@ -9,8 +9,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -18,12 +18,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-substitution-generic-sample.yaml
- name: verify_substitutions
@ -32,6 +34,8 @@ tests:
query_parameters:
schema: armada/Chart/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[0].metadata.name: example-chart-01

View File

@ -7,8 +7,8 @@
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -16,12 +16,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: initialize
desc: Create initial documents
PUT: /api/v1.0/buckets/mop/documents
status: 200
response_headers:
content-type: application/x-yaml
data: <@resources/design-doc-substitution-sample.yaml
- name: verify_substitutions
@ -30,6 +32,8 @@ tests:
query_parameters:
schema: armada/Chart/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[*].metadata.name: example-chart-01

View File

@ -7,18 +7,18 @@
# expected destination paths.
defaults:
request_headers:
content-type: application/x-yaml
response_headers:
content-type: application/x-yaml
verbose: true
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
response_headers: {}
- name: add_substitution_source_with_single_source_multi_dest
desc: |-
@ -26,6 +26,8 @@ tests:
multiple destination paths.
PUT: /api/v1.0/buckets/a/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -70,6 +72,8 @@ tests:
query_parameters:
schema: armada/Chart/v1
status: 200
response_headers:
content-type: application/x-yaml
response_multidoc_jsonpaths:
$.`len`: 1
$.[*].metadata.name: example-chart-01

View File

@ -16,7 +16,7 @@ tests:
status: 204
request_headers:
content-type: application/x-yaml
response_headers: null
response_headers: {}
- name: create_encrypted_passphrase
desc: Create passphrase with storagePolicy=encrypted

View File

@ -22,7 +22,7 @@ tests:
status: 204
request_headers:
content-type: application/x-yaml
response_headers: null
response_headers: {}
- name: create_encrypted_passphrase_empty_payload_skips
desc: |

View File

@ -7,8 +7,8 @@ defaults:
request_headers:
content-type: application/x-yaml
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -16,12 +16,14 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: create_encrypted_passphrase
desc: Create passphrase with storagePolicy=encrypted
PUT: /api/v1.0/buckets/secret/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -51,6 +53,8 @@ tests:
desc: Verify that the rendering the document returns the secret payload.
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/rendered-documents
status: 200
response_headers:
content-type: application/x-yaml
query_parameters:
cleartext-secrets: true
metadata.name: my-passphrase

View File

@ -11,8 +11,8 @@ defaults:
request_headers:
content-type: application/x-yaml
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
response_headers:
content-type: application/x-yaml
# response_headers:
# content-type: application/x-yaml
verbose: true
tests:
@ -20,7 +20,7 @@ tests:
desc: Begin testing from known state.
DELETE: /api/v1.0/revisions
status: 204
response_headers: null
response_headers: {}
- name: encrypt_generic_document_for_secret_substitution
desc: |
@ -28,6 +28,8 @@ tests:
substitution source with storagePolicy=encrypted.
PUT: /api/v1.0/buckets/secret/documents
status: 200
response_headers:
content-type: application/x-yaml
data: |-
---
schema: deckhand/LayeringPolicy/v1
@ -72,6 +74,8 @@ tests:
desc: Verify that secret ref was created for example-armada-cert among multiple created documents.
GET: /api/v1.0/revisions/$RESPONSE['$.[0].status.revision']/documents
status: 200
response_headers:
content-type: application/x-yaml
query_parameters:
metadata.name: example-armada-cert
cleartext-secrets: 'true'
@ -99,6 +103,8 @@ tests:
desc: Verify secret payload is injected in destination document as well as example-armada-cert.
GET: /api/v1.0/revisions/$HISTORY['encrypt_generic_document_for_secret_substitution'].$RESPONSE['$.[0].status.revision']/rendered-documents
status: 200
response_headers:
content-type: application/x-yaml
query_parameters:
cleartext-secrets: true
metadata.name:

View File

@ -19,7 +19,7 @@ tests:
status: 204
request_headers:
content-type: application/x-yaml
response_headers: null
response_headers: {}
- name: create_documents_for_secret_substitution
desc: Create documents with substitution source with storagePolicy=encrypted

View File

@ -14,7 +14,7 @@ tests:
request_headers:
content-type: application/x-yaml
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
response_headers: null
response_headers: {}
- name: create_encrypted_passphrase
desc: Create passphrase with storagePolicy=encrypted
@ -72,7 +72,7 @@ tests:
request_headers:
content-type: application/x-yaml
X-Auth-Token: $ENVIRON['TEST_AUTH_TOKEN']
response_headers: null
response_headers: {}
- name: validate_all_secrets_deleted_from_barbican
desc: |-

View File

@ -56,6 +56,8 @@ if [ "$1" = 'server' ]; then
--module deckhand.cmd
elif [ "$1" = 'alembic' ]; then
exec alembic ${@:2}
elif [ "$1" = 'shell' ]; then
exec bash
else
echo "Valid commands are 'alembic <command>' and 'server'"
fi

View File

@ -0,0 +1,108 @@
# Copyright 2018 AT&T Intellectual Property. All other 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.
ARG FROM=ubuntu:jammy
FROM ${FROM}
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode'
LABEL org.opencontainers.image.url='https://airshipit.org'
LABEL org.opencontainers.image.documentation='https://airship-deckhand.readthedocs.org'
LABEL org.opencontainers.image.source='https://opendev.org/airship/deckhand'
LABEL org.opencontainers.image.vendor='The Airship Authors'
LABEL org.opencontainers.image.licenses='Apache-2.0'
ENV DEBIAN_FRONTEND noninteractive
ENV container docker
ENV PORT 9000
# Expose port 9000 for application
EXPOSE $PORT
RUN set -x && \
apt-get update && apt-get upgrade -y && \
apt-get -y install \
automake \
ca-certificates \
curl \
g++ \
gcc \
git \
libffi-dev \
libpq-dev \
libssl-dev \
libtool \
make \
netbase \
netcat \
python3 \
python3-dateutil \
python3-dev \
python3-pip \
python3-setuptools \
--no-install-recommends \
&& python3 -m pip install -U pip \
&& apt-get clean \
&& rm -rf \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/* \
/usr/share/man \
/usr/share/doc \
/usr/share/doc-base
# Install LibYAML
ENV LD_LIBRARY_PATH=/usr/local/lib
ARG LIBYAML_VERSION=0.2.5
RUN set -ex \
&& git clone https://github.com/yaml/libyaml.git \
&& cd libyaml \
&& git checkout $LIBYAML_VERSION \
&& ./bootstrap \
&& ./configure \
&& make \
&& make install \
&& cd .. \
&& rm -fr libyaml
# Create deckhand user
RUN useradd -ms /bin/bash deckhand
# Clone the deckhand repository
COPY . /home/deckhand/
# Change permissions
RUN chown -R deckhand: /home/deckhand \
&& chmod +x /home/deckhand/entrypoint.sh
# Set work directory and install dependencies
WORKDIR /home/deckhand
RUN pip3 install --no-cache-dir -r requirements-frozen.txt
# Setting deckhand version for BPR
ENV PBR_VERSION 1.1
# RUN python3 setup.py install --verbose
RUN pip3 install -e . --verbose --use-pep517 \
&& echo "/home/deckhand" \
> /usr/local/lib/python3.10/dist-packages/deckhand.pth
# Set user to deckhand
USER deckhand
# Execute entrypoint
ENTRYPOINT ["/home/deckhand/entrypoint.sh"]
CMD ["server"]

View File

@ -1,54 +1,51 @@
alembic==1.13.1
alembic==1.13.2
amqp==5.2.0
attrs==23.2.0
attrs==24.2.0
autopage==0.5.2
backports.zoneinfo==0.2.1
barbican==16.0.0
bcrypt==4.1.2
Beaker==1.12.1
cachetools==5.3.2
castellan==4.4.0
certifi==2024.2.2
cffi==1.16.0
bcrypt==4.2.0
Beaker==1.13.0
cachetools==5.5.0
castellan==5.1.1
certifi==2024.8.30
cffi==1.17.1
charset-normalizer==3.3.2
cliff==4.6.0
cliff==4.7.0
cmd2==2.4.3
cryptography==41.0.7
cryptography==42.0.8
debtcollector==3.0.0
decorator==5.1.1
deepdiff==6.7.1
deepdiff==8.0.1
dnspython==2.6.1
dogpile.cache==1.3.2
eventlet==0.35.2
dogpile.cache==1.3.3
eventlet==0.37.0
falcon==3.1.3
fasteners==0.19
fixtures==4.1.0
futurist==3.0.0
greenlet==3.0.3
greenlet==3.1.0
html5lib==0.9999999
httpexceptor==1.4.0
idna==3.6
importlib-metadata==6.11.0
importlib-resources==5.13.0
idna==3.10
iso8601==2.1.0
Jinja2==3.1.3
Jinja2==3.1.4
jsonpath-ng==1.6.1
jsonpickle==3.0.3
jsonschema==4.21.1
jsonpickle==3.3.0
jsonschema==4.23.0
jsonschema-specifications==2023.12.1
keystoneauth1==5.1.2
keystonemiddleware==10.2.0
kombu==5.3.5
kombu==5.4.1
ldap3==2.9.1
logutils==0.3.5
Mako==1.3.2
Mako==1.3.5
MarkupSafe==2.1.5
microversion-parse==1.0.1
msgpack==1.0.7
netaddr==1.2.1
microversion-parse==2.0.0
msgpack==1.1.0
netaddr==1.3.0
netifaces==0.11.0
networkx==3.1
ordered-set==4.1.0
networkx==3.3
orderly-set==5.2.2
os-service-types==1.7.0
oslo.cache==3.3.1
oslo.concurrency==5.1.1
@ -66,63 +63,60 @@ oslo.service==3.1.1
oslo.upgradecheck==2.1.1
oslo.utils==6.1.0
oslo.versionedobjects==3.1.0
packaging==23.2
Paste==3.7.1
packaging==24.1
Paste==3.10.1
PasteDeploy==3.1.0
PasteScript==3.4.0
pbr==6.0.0
PasteScript==3.6.0
pbr==6.1.0
pecan==1.5.1
pip==23.2.1
pkgutil_resolve_name==1.3.10
pip==24.1
ply==3.11
prettytable==3.10.0
prettytable==3.11.0
prometheus_client==0.20.0
psycopg2-binary==2.9.9
pyasn1==0.5.1
pyasn1==0.6.1
pycadf==3.1.1
pycparser==2.21
pycparser==2.22
pylibyaml==0.1.0
pyOpenSSL==24.0.0
pyparsing==3.1.1
pyperclip==1.8.2
pyOpenSSL==24.2.1
pyparsing==3.1.4
pyperclip==1.9.0
python-barbicanclient==5.5.0
python-dateutil==2.8.2
python-dateutil==2.9.0.post0
python-keystoneclient==5.1.0
python-memcached==1.62
python-mimeparse==1.6.0
pytz==2024.1
PyYAML==6.0.1
referencing==0.33.0
python-mimeparse==2.0.0
pytz==2024.2
PyYAML==6.0.2
referencing==0.35.1
repoze.lru==0.7
requests==2.31.0
requests==2.32.3
resolver==0.2.1
rfc3986==1.5.0
rfc3986==2.0.0
Routes==2.5.1
rpds-py==0.18.0
rpds-py==0.20.0
selector==0.10.1
setuptools==68.2.2
simplejson==3.19.2
setuptools==70.1.0
simplejson==3.19.3
six==1.16.0
SQLAlchemy==1.4.51
SQLAlchemy==1.4.54
sqlalchemy-migrate==0.13.0
sqlparse==0.4.4
sqlparse==0.5.1
statsd==4.0.1
stevedore==5.2.0
stevedore==5.3.0
Tempita==0.5.2
testresources==2.0.1
testscenarios==0.5.0
testtools==2.7.1
testtools==2.7.2
tiddlyweb==2.4.3
typing_extensions==4.9.0
tzdata==2024.1
urllib3==1.26.18
uWSGI==2.0.24
typing_extensions==4.12.2
urllib3==2.2.2
uWSGI==2.0.27
vine==5.1.0
wcwidth==0.2.13
WebOb==1.8.7
WebOb==1.8.8
Werkzeug==2.2.3
wheel==0.41.2
wheel==0.43.0
wrapt==1.16.0
xattr==0.10.1
yappi==1.6.0
zipp==3.17.0

View File

@ -5,7 +5,7 @@ bandit==1.6.0
# chardet==3.0.4
# fixtures==3.0.0
flake8==3.8.4
gabbi==1.35.1
gabbi==2.8.0
# jsonpickle==1.4.1
# openstacksdk==0.36.5
openstacksdk==0.36.5
@ -21,9 +21,9 @@ pytest-cov
python-subunit==1.4.0
# requests==2.23.0
# six==1.16.0
stestr==3.2.0
stestr==4.1.0
testrepository==0.0.20
# testtools==2.5.0
tox>=3.28.0, <4.0.0
tox>=3.28.0
# urllib3==1.25.11
# yq==3.2.1

View File

@ -0,0 +1,31 @@
# 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.
---
- hosts: all
tasks:
- name: Checkout treasuremap ref
shell: |
set -xe;
: "${TREASUREMAP_REF:=v1.9}"
cd ../treasuremap
git fetch https://review.opendev.org/airship/treasuremap ${TREASUREMAP_REF} && git checkout FETCH_HEAD
args:
chdir: "{{ zuul.project.src_dir }}"
environment:
TREASUREMAP_REF: "{{ treasuremap_ref }}"
...

View File

@ -15,4 +15,7 @@
roles:
- bindep
- start-zuul-console
- role: add-authorized-keys
public_keys:
- public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDA7eM8WFJrqQmki8rR0O3QBHyl8xq42jb1RduwuRwjWoGYJI5cX7Fx+7VR4A9ITCoiqxKS8DMfgKbt5jKC6SmvMALULZsnYlthB34KywurgxsW6fgp68DHWQ7J4CCBhoIpl0W3JW7s6b0vHLhab59r0E+AYemBVuWUqbFEy8nDAHcQv1S/2o1udhmljIN7c2ogO4KAJ7Lge0BoIP9ps4u6AVwyQZixp4anU9DHGNA/UQj4M5UyuALj5buEAuATBe9Vqj4sOvZjObPJAGPUrNRrGEWAFk+lSZHRzKXo0eeWtPqoh5UN9UDb5Pocg1krncMIZwjHKovlD1z/O1y91aY5LM1wxm/7aaIiX8eCihyVZaOuDCLF7WDT2SMs7ABcotX2MDtVQTrNNV3MmMAScFNDflzPKszd7cdjLl6PBq8bvPxmCkLmnitPTGOoh9d8i+JlbINvgx1pguYrpeciIyreCO1rjTW3MgB0tyoMEa31V+7HrauBMeNnE68YTqLTIB0= smarkin@mirantis.com
...

View File

@ -17,9 +17,9 @@
become: yes
roles:
- install-test-requirements
- ensure-tox
- build-images
- deploy-postgresql
- generate-test-config
- deploy-deckhand
- run-functional-tests
- run-functional-tests

View File

@ -16,4 +16,5 @@
gather_facts: False
roles:
- install-test-requirements
- ensure-tox
- run-functional-tests

View File

@ -19,7 +19,7 @@ osh_params:
container_distro_version: focal
# feature_gates:
site: airskiff
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7

View File

@ -35,7 +35,7 @@
FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
PL_SITE: "{{ site | default('airskiff') }}"
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz') }}"
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz') }}"
HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"

View File

@ -19,12 +19,12 @@ osh_params:
container_distro_version: focal
# feature_gates:
site: airskiff
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz
HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f
OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7
COREDNS_VERSION: v1.11.1
DISTRO: ubuntu_focal
DISTRO: ubuntu_jammy
DOCKER_REGISTRY: quay.io
MAKE_ARMADA_IMAGES: false
MAKE_DECKHAND_IMAGES: false

View File

@ -32,7 +32,7 @@
FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
PL_SITE: "{{ site | default('airskiff') }}"
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz') }}"
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz') }}"
HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"

View File

@ -57,7 +57,7 @@
# services in the integration script called below.
sudo -E -H pip3 install -e . --verbose --use-pep517
sudo -E -H pip3 install -r requirements-frozen.txt
echo "$(pwd)" | sudo tee /usr/local/lib/python3.8/dist-packages/deckhand.pth
echo "$(pwd)" | sudo tee /usr/local/lib/python3.10/dist-packages/deckhand.pth
pifpaf run postgresql -- ./tools/integration-tests.sh
args:

View File

@ -17,7 +17,7 @@
set -x
HELM=$1
HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz"}
HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz"}
function install_helm_binary {

20
tox.ini
View File

@ -1,9 +1,9 @@
[tox]
minversion = 3.28
minversion = 3.10
# Flag indicating to perform the packaging operation or not.
# Set it to true when using tox for an application, instead of a library.
skipsdist = True
envlist = py38,py38-{postgresql},functional-dev,cover,pep8,bandit,docs
envlist = py310,py310-{postgresql},functional-dev,cover,pep8,bandit,docs
[testenv]
# Install the current package in development mode with develop mode
@ -34,7 +34,7 @@ passenv =
deps =
-r{toxinidir}/requirements-frozen.txt
-r{toxinidir}/test-requirements.txt
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.8.2/constraints-3.8.txt
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.10.2/constraints-3.10.txt
commands =
find . -type f -name "*.pyc" -delete
rm -Rf .testrepository/times.dbm
@ -54,13 +54,13 @@ allowlist_externals=
sh
deps=
-r{toxinidir}/requirements-direct.txt
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.8.2/constraints-3.8.txt
-c https://raw.githubusercontent.com/apache/airflow/constraints-2.10.2/constraints-3.10.txt
commands=
rm -f requirements-frozen.txt
sh -c "pip freeze --all | grep -vE 'deckhand|pyinotify|pkg-resources==0.0.0' > requirements-frozen.txt"
[testenv:py38]
[testenv:py310]
allowlist_externals =
stestr
find
@ -70,7 +70,7 @@ commands =
stestr run {posargs}
stestr slowest
[testenv:py38-postgresql]
[testenv:py310-postgresql]
commands =
{[testenv]commands}
bash {toxinidir}/tools/run_pifpaf.sh '{posargs}'
@ -79,8 +79,8 @@ allowlist_externals =
find
rm
[testenv:py38-functional]
basepython=python3.8
[testenv:py310-functional]
basepython=python3.10
allowlist_externals =
find
stestr
@ -92,8 +92,8 @@ commands =
stestr --test-path deckhand/tests/common/ run --serial --slowest --force-subunit-trace --color {posargs}
[testenv:py38-functional-dev]
basepython=python3.8
[testenv:py310-functional-dev]
basepython=python3.10
# Minimalistic functional test job for running Deckhand functional tests
# via uwsgi. Uses pifpaf for DB instantiation. Useful for developers.
# Requires PostgreSQL be installed on host.