From be9f97b846b1edc6b74777e5e639aa9edce8cfa6 Mon Sep 17 00:00:00 2001 From: Sergiy Markin Date: Thu, 29 Aug 2024 00:10:11 +0000 Subject: [PATCH] Airflow 2.10.2 + ubuntu_jammy Change-Id: I7c8a637efc1e969ab6814447e76068caaca0e66e --- .zuul.yaml | 181 ++++++++---------- ChangeLog | 11 ++ Makefile | 12 +- bindep.txt | 3 +- charts/deckhand/Chart.yaml | 2 +- charts/deckhand/values.yaml | 4 +- .../document-crud-error-bucket-conflict.yaml | 10 +- .../document-crud-success-multi-bucket.yaml | 14 +- ...document-crud-success-owned-documents.yaml | 12 +- .../document-crud-success-single-bucket.yaml | 30 ++- ...cument-crud-success-unusual-documents.yaml | 16 +- .../layering/layering-multiple-bucket.yaml | 14 +- .../layering/layering-policy-conflict.yaml | 10 +- .../layering/layering-single-bucket.yaml | 18 +- ...yering-with-replacement-single-bucket.yaml | 14 +- ...ering-with-substitution-single-bucket.yaml | 36 +++- .../replacement/multi-layer-replacement.yaml | 10 +- .../gabbits/replacement/replacement.yaml | 10 +- .../revision-deepdiff-success.yaml | 41 +++- .../revision-diff-rollback-null-success.yaml | 20 +- .../revision-diff/revision-diff-success.yaml | 42 +++- .../revision-documents-filters-negative.yaml | 16 +- .../revision-documents-filters.yaml | 34 +++- .../revision-documents-multiple-filters.yaml | 16 +- .../rollback-success-single-bucket.yaml | 22 ++- .../revision-tag/revision-tag-success.yaml | 36 +++- .../revision-crud-success-single-bucket.yaml | 15 +- .../gabbits/revision/revision-filters.yaml | 26 ++- .../substitution-chained-single-bucket.yaml | 12 +- .../substitution-multiple-bucket.yaml | 12 +- .../substitution-results-in-none-bug.yaml | 10 +- .../substitution-single-bucket-generic.yaml | 10 +- .../substitution-single-bucket.yaml | 10 +- .../substitution-source-feeds-multi-dest.yaml | 16 +- .../gabbits/document-crud-secret.yaml | 2 +- .../document-render-secret-edge-cases.yaml | 2 +- .../gabbits/document-render-secret.yaml | 10 +- .../document-substitution-secret-generic.yaml | 12 +- .../gabbits/document-substitution-secret.yaml | 2 +- .../gabbits/revision-delete-all-secrets.yaml | 4 +- entrypoint.sh | 2 + images/deckhand/Dockerfile.ubuntu_jammy | 108 +++++++++++ requirements-frozen.txt | 116 ++++++----- test-requirements.txt | 6 +- .../playbooks/checkout-treasuremap-ref.yaml | 31 +++ tools/gate/playbooks/prepare-hosts.yaml | 3 + .../run-functional-tests-docker.yaml | 2 +- .../playbooks/run-functional-tests-uwsgi.yaml | 1 + .../airship-run-script-set/defaults/main.yaml | 2 +- .../airship-run-script-set/tasks/main.yaml | 2 +- .../airship-run-script/defaults/main.yaml | 4 +- .../roles/airship-run-script/tasks/main.yaml | 2 +- .../tasks/integration-tests.yaml | 2 +- tools/helm_install.sh | 2 +- tox.ini | 20 +- 55 files changed, 791 insertions(+), 289 deletions(-) create mode 100644 images/deckhand/Dockerfile.ubuntu_jammy create mode 100644 tools/gate/playbooks/checkout-treasuremap-ref.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 9ac00275..6dcb3943 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -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: diff --git a/ChangeLog b/ChangeLog index 61aafc90..fa54fb58 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 diff --git a/Makefile b/Makefile index 6da5acfe..a48501d1 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/bindep.txt b/bindep.txt index 0b8697f6..ed469c27 100644 --- a/bindep.txt +++ b/bindep.txt @@ -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] diff --git a/charts/deckhand/Chart.yaml b/charts/deckhand/Chart.yaml index 72662b96..ad0a0871 100644 --- a/charts/deckhand/Chart.yaml +++ b/charts/deckhand/Chart.yaml @@ -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 diff --git a/charts/deckhand/values.yaml b/charts/deckhand/values.yaml index 47ad1e42..1ebae27c 100644 --- a/charts/deckhand/values.yaml +++ b/charts/deckhand/values.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/document/document-crud-error-bucket-conflict.yaml b/deckhand/tests/functional/gabbits/document/document-crud-error-bucket-conflict.yaml index d527bd9e..d489e14c 100644 --- a/deckhand/tests/functional/gabbits/document/document-crud-error-bucket-conflict.yaml +++ b/deckhand/tests/functional/gabbits/document/document-crud-error-bucket-conflict.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/document/document-crud-success-multi-bucket.yaml b/deckhand/tests/functional/gabbits/document/document-crud-success-multi-bucket.yaml index 8bcf91d9..beb4b918 100644 --- a/deckhand/tests/functional/gabbits/document/document-crud-success-multi-bucket.yaml +++ b/deckhand/tests/functional/gabbits/document/document-crud-success-multi-bucket.yaml @@ -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: diff --git a/deckhand/tests/functional/gabbits/document/document-crud-success-owned-documents.yaml b/deckhand/tests/functional/gabbits/document/document-crud-success-owned-documents.yaml index d8f1d764..dc2f3df9 100644 --- a/deckhand/tests/functional/gabbits/document/document-crud-success-owned-documents.yaml +++ b/deckhand/tests/functional/gabbits/document/document-crud-success-owned-documents.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/document/document-crud-success-single-bucket.yaml b/deckhand/tests/functional/gabbits/document/document-crud-success-single-bucket.yaml index 7134c6e2..4cd62eba 100644 --- a/deckhand/tests/functional/gabbits/document/document-crud-success-single-bucket.yaml +++ b/deckhand/tests/functional/gabbits/document/document-crud-success-single-bucket.yaml @@ -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: diff --git a/deckhand/tests/functional/gabbits/document/document-crud-success-unusual-documents.yaml b/deckhand/tests/functional/gabbits/document/document-crud-success-unusual-documents.yaml index 0aab1fa5..86a8d49b 100644 --- a/deckhand/tests/functional/gabbits/document/document-crud-success-unusual-documents.yaml +++ b/deckhand/tests/functional/gabbits/document/document-crud-success-unusual-documents.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/layering/layering-multiple-bucket.yaml b/deckhand/tests/functional/gabbits/layering/layering-multiple-bucket.yaml index e44a5b26..af2ed5af 100644 --- a/deckhand/tests/functional/gabbits/layering/layering-multiple-bucket.yaml +++ b/deckhand/tests/functional/gabbits/layering/layering-multiple-bucket.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/layering/layering-policy-conflict.yaml b/deckhand/tests/functional/gabbits/layering/layering-policy-conflict.yaml index e50fd6f2..0a6be4cb 100644 --- a/deckhand/tests/functional/gabbits/layering/layering-policy-conflict.yaml +++ b/deckhand/tests/functional/gabbits/layering/layering-policy-conflict.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/layering/layering-single-bucket.yaml b/deckhand/tests/functional/gabbits/layering/layering-single-bucket.yaml index 89591135..aae91f21 100644 --- a/deckhand/tests/functional/gabbits/layering/layering-single-bucket.yaml +++ b/deckhand/tests/functional/gabbits/layering/layering-single-bucket.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/layering/layering-with-replacement-single-bucket.yaml b/deckhand/tests/functional/gabbits/layering/layering-with-replacement-single-bucket.yaml index a8616b2c..0f46a5a1 100644 --- a/deckhand/tests/functional/gabbits/layering/layering-with-replacement-single-bucket.yaml +++ b/deckhand/tests/functional/gabbits/layering/layering-with-replacement-single-bucket.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/layering/layering-with-substitution-single-bucket.yaml b/deckhand/tests/functional/gabbits/layering/layering-with-substitution-single-bucket.yaml index 927f9e89..d0d7d381 100644 --- a/deckhand/tests/functional/gabbits/layering/layering-with-substitution-single-bucket.yaml +++ b/deckhand/tests/functional/gabbits/layering/layering-with-substitution-single-bucket.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/replacement/multi-layer-replacement.yaml b/deckhand/tests/functional/gabbits/replacement/multi-layer-replacement.yaml index eb8991e4..76ebdb9b 100644 --- a/deckhand/tests/functional/gabbits/replacement/multi-layer-replacement.yaml +++ b/deckhand/tests/functional/gabbits/replacement/multi-layer-replacement.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/replacement/replacement.yaml b/deckhand/tests/functional/gabbits/replacement/replacement.yaml index 38d930c6..cf189060 100644 --- a/deckhand/tests/functional/gabbits/replacement/replacement.yaml +++ b/deckhand/tests/functional/gabbits/replacement/replacement.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/revision-deepdiff/revision-deepdiff-success.yaml b/deckhand/tests/functional/gabbits/revision-deepdiff/revision-deepdiff-success.yaml index 9d8497fe..6cc4b00c 100644 --- a/deckhand/tests/functional/gabbits/revision-deepdiff/revision-deepdiff-success.yaml +++ b/deckhand/tests/functional/gabbits/revision-deepdiff/revision-deepdiff-success.yaml @@ -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: {} diff --git a/deckhand/tests/functional/gabbits/revision-diff/revision-diff-rollback-null-success.yaml b/deckhand/tests/functional/gabbits/revision-diff/revision-diff-rollback-null-success.yaml index b161a089..8abddc8b 100644 --- a/deckhand/tests/functional/gabbits/revision-diff/revision-diff-rollback-null-success.yaml +++ b/deckhand/tests/functional/gabbits/revision-diff/revision-diff-rollback-null-success.yaml @@ -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]: diff --git a/deckhand/tests/functional/gabbits/revision-diff/revision-diff-success.yaml b/deckhand/tests/functional/gabbits/revision-diff/revision-diff-success.yaml index 5393251a..a9c3cef9 100644 --- a/deckhand/tests/functional/gabbits/revision-diff/revision-diff-success.yaml +++ b/deckhand/tests/functional/gabbits/revision-diff/revision-diff-success.yaml @@ -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]: diff --git a/deckhand/tests/functional/gabbits/revision-documents/revision-documents-filters-negative.yaml b/deckhand/tests/functional/gabbits/revision-documents/revision-documents-filters-negative.yaml index 0d87bc31..6d9ff469 100644 --- a/deckhand/tests/functional/gabbits/revision-documents/revision-documents-filters-negative.yaml +++ b/deckhand/tests/functional/gabbits/revision-documents/revision-documents-filters-negative.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/revision-documents/revision-documents-filters.yaml b/deckhand/tests/functional/gabbits/revision-documents/revision-documents-filters.yaml index 097dbc66..8ba5bd22 100644 --- a/deckhand/tests/functional/gabbits/revision-documents/revision-documents-filters.yaml +++ b/deckhand/tests/functional/gabbits/revision-documents/revision-documents-filters.yaml @@ -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: diff --git a/deckhand/tests/functional/gabbits/revision-documents/revision-documents-multiple-filters.yaml b/deckhand/tests/functional/gabbits/revision-documents/revision-documents-multiple-filters.yaml index ef749c46..684a7275 100644 --- a/deckhand/tests/functional/gabbits/revision-documents/revision-documents-multiple-filters.yaml +++ b/deckhand/tests/functional/gabbits/revision-documents/revision-documents-multiple-filters.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/revision-rollback/rollback-success-single-bucket.yaml b/deckhand/tests/functional/gabbits/revision-rollback/rollback-success-single-bucket.yaml index 2ed25511..4339e143 100644 --- a/deckhand/tests/functional/gabbits/revision-rollback/rollback-success-single-bucket.yaml +++ b/deckhand/tests/functional/gabbits/revision-rollback/rollback-success-single-bucket.yaml @@ -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: diff --git a/deckhand/tests/functional/gabbits/revision-tag/revision-tag-success.yaml b/deckhand/tests/functional/gabbits/revision-tag/revision-tag-success.yaml index 881e6086..eaa17c94 100644 --- a/deckhand/tests/functional/gabbits/revision-tag/revision-tag-success.yaml +++ b/deckhand/tests/functional/gabbits/revision-tag/revision-tag-success.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/revision/revision-crud-success-single-bucket.yaml b/deckhand/tests/functional/gabbits/revision/revision-crud-success-single-bucket.yaml index 6016d835..37c44210 100644 --- a/deckhand/tests/functional/gabbits/revision/revision-crud-success-single-bucket.yaml +++ b/deckhand/tests/functional/gabbits/revision/revision-crud-success-single-bucket.yaml @@ -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: {} \ No newline at end of file diff --git a/deckhand/tests/functional/gabbits/revision/revision-filters.yaml b/deckhand/tests/functional/gabbits/revision/revision-filters.yaml index c1cb4649..16a998cc 100644 --- a/deckhand/tests/functional/gabbits/revision/revision-filters.yaml +++ b/deckhand/tests/functional/gabbits/revision/revision-filters.yaml @@ -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: diff --git a/deckhand/tests/functional/gabbits/substitution/substitution-chained-single-bucket.yaml b/deckhand/tests/functional/gabbits/substitution/substitution-chained-single-bucket.yaml index 6cba27c1..08e599b3 100644 --- a/deckhand/tests/functional/gabbits/substitution/substitution-chained-single-bucket.yaml +++ b/deckhand/tests/functional/gabbits/substitution/substitution-chained-single-bucket.yaml @@ -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: diff --git a/deckhand/tests/functional/gabbits/substitution/substitution-multiple-bucket.yaml b/deckhand/tests/functional/gabbits/substitution/substitution-multiple-bucket.yaml index 815eb5db..81102448 100644 --- a/deckhand/tests/functional/gabbits/substitution/substitution-multiple-bucket.yaml +++ b/deckhand/tests/functional/gabbits/substitution/substitution-multiple-bucket.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/substitution/substitution-results-in-none-bug.yaml b/deckhand/tests/functional/gabbits/substitution/substitution-results-in-none-bug.yaml index 37ec4fb4..dc648373 100644 --- a/deckhand/tests/functional/gabbits/substitution/substitution-results-in-none-bug.yaml +++ b/deckhand/tests/functional/gabbits/substitution/substitution-results-in-none-bug.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/substitution/substitution-single-bucket-generic.yaml b/deckhand/tests/functional/gabbits/substitution/substitution-single-bucket-generic.yaml index 5003e46a..ffe4f902 100644 --- a/deckhand/tests/functional/gabbits/substitution/substitution-single-bucket-generic.yaml +++ b/deckhand/tests/functional/gabbits/substitution/substitution-single-bucket-generic.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/substitution/substitution-single-bucket.yaml b/deckhand/tests/functional/gabbits/substitution/substitution-single-bucket.yaml index b281b5fc..eafa9f72 100644 --- a/deckhand/tests/functional/gabbits/substitution/substitution-single-bucket.yaml +++ b/deckhand/tests/functional/gabbits/substitution/substitution-single-bucket.yaml @@ -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 diff --git a/deckhand/tests/functional/gabbits/substitution/substitution-source-feeds-multi-dest.yaml b/deckhand/tests/functional/gabbits/substitution/substitution-source-feeds-multi-dest.yaml index 613ef89d..ffbf468b 100644 --- a/deckhand/tests/functional/gabbits/substitution/substitution-source-feeds-multi-dest.yaml +++ b/deckhand/tests/functional/gabbits/substitution/substitution-source-feeds-multi-dest.yaml @@ -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 diff --git a/deckhand/tests/integration/gabbits/document-crud-secret.yaml b/deckhand/tests/integration/gabbits/document-crud-secret.yaml index b32a782d..dd6bdc78 100644 --- a/deckhand/tests/integration/gabbits/document-crud-secret.yaml +++ b/deckhand/tests/integration/gabbits/document-crud-secret.yaml @@ -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 diff --git a/deckhand/tests/integration/gabbits/document-render-secret-edge-cases.yaml b/deckhand/tests/integration/gabbits/document-render-secret-edge-cases.yaml index c07fd95e..1eb26ce8 100644 --- a/deckhand/tests/integration/gabbits/document-render-secret-edge-cases.yaml +++ b/deckhand/tests/integration/gabbits/document-render-secret-edge-cases.yaml @@ -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: | diff --git a/deckhand/tests/integration/gabbits/document-render-secret.yaml b/deckhand/tests/integration/gabbits/document-render-secret.yaml index abccfd43..06c2911c 100644 --- a/deckhand/tests/integration/gabbits/document-render-secret.yaml +++ b/deckhand/tests/integration/gabbits/document-render-secret.yaml @@ -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 diff --git a/deckhand/tests/integration/gabbits/document-substitution-secret-generic.yaml b/deckhand/tests/integration/gabbits/document-substitution-secret-generic.yaml index 7562ec5c..f4e76dba 100644 --- a/deckhand/tests/integration/gabbits/document-substitution-secret-generic.yaml +++ b/deckhand/tests/integration/gabbits/document-substitution-secret-generic.yaml @@ -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: diff --git a/deckhand/tests/integration/gabbits/document-substitution-secret.yaml b/deckhand/tests/integration/gabbits/document-substitution-secret.yaml index 8e129039..eec345f4 100644 --- a/deckhand/tests/integration/gabbits/document-substitution-secret.yaml +++ b/deckhand/tests/integration/gabbits/document-substitution-secret.yaml @@ -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 diff --git a/deckhand/tests/integration/gabbits/revision-delete-all-secrets.yaml b/deckhand/tests/integration/gabbits/revision-delete-all-secrets.yaml index e14fab4e..ee3f183b 100644 --- a/deckhand/tests/integration/gabbits/revision-delete-all-secrets.yaml +++ b/deckhand/tests/integration/gabbits/revision-delete-all-secrets.yaml @@ -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: |- diff --git a/entrypoint.sh b/entrypoint.sh index 0751be80..91a086c6 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -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 ' and 'server'" fi diff --git a/images/deckhand/Dockerfile.ubuntu_jammy b/images/deckhand/Dockerfile.ubuntu_jammy new file mode 100644 index 00000000..13d4102e --- /dev/null +++ b/images/deckhand/Dockerfile.ubuntu_jammy @@ -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"] diff --git a/requirements-frozen.txt b/requirements-frozen.txt index a3cfdfef..da87b596 100644 --- a/requirements-frozen.txt +++ b/requirements-frozen.txt @@ -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 diff --git a/test-requirements.txt b/test-requirements.txt index a664112d..b05ad9c6 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -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 \ No newline at end of file diff --git a/tools/gate/playbooks/checkout-treasuremap-ref.yaml b/tools/gate/playbooks/checkout-treasuremap-ref.yaml new file mode 100644 index 00000000..46a24051 --- /dev/null +++ b/tools/gate/playbooks/checkout-treasuremap-ref.yaml @@ -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 }}" + +... \ No newline at end of file diff --git a/tools/gate/playbooks/prepare-hosts.yaml b/tools/gate/playbooks/prepare-hosts.yaml index e7e3d9c9..76087fde 100644 --- a/tools/gate/playbooks/prepare-hosts.yaml +++ b/tools/gate/playbooks/prepare-hosts.yaml @@ -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 ... diff --git a/tools/gate/playbooks/run-functional-tests-docker.yaml b/tools/gate/playbooks/run-functional-tests-docker.yaml index 7578425f..2f32b682 100644 --- a/tools/gate/playbooks/run-functional-tests-docker.yaml +++ b/tools/gate/playbooks/run-functional-tests-docker.yaml @@ -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 diff --git a/tools/gate/playbooks/run-functional-tests-uwsgi.yaml b/tools/gate/playbooks/run-functional-tests-uwsgi.yaml index 0cb682e0..97baea6e 100644 --- a/tools/gate/playbooks/run-functional-tests-uwsgi.yaml +++ b/tools/gate/playbooks/run-functional-tests-uwsgi.yaml @@ -16,4 +16,5 @@ gather_facts: False roles: - install-test-requirements + - ensure-tox - run-functional-tests diff --git a/tools/gate/roles/airship-run-script-set/defaults/main.yaml b/tools/gate/roles/airship-run-script-set/defaults/main.yaml index 7e82fd6b..7dc55afd 100644 --- a/tools/gate/roles/airship-run-script-set/defaults/main.yaml +++ b/tools/gate/roles/airship-run-script-set/defaults/main.yaml @@ -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 diff --git a/tools/gate/roles/airship-run-script-set/tasks/main.yaml b/tools/gate/roles/airship-run-script-set/tasks/main.yaml index e180c1dc..0fe778cd 100644 --- a/tools/gate/roles/airship-run-script-set/tasks/main.yaml +++ b/tools/gate/roles/airship-run-script-set/tasks/main.yaml @@ -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') }}" diff --git a/tools/gate/roles/airship-run-script/defaults/main.yaml b/tools/gate/roles/airship-run-script/defaults/main.yaml index 7e82fd6b..382be6e3 100644 --- a/tools/gate/roles/airship-run-script/defaults/main.yaml +++ b/tools/gate/roles/airship-run-script/defaults/main.yaml @@ -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 diff --git a/tools/gate/roles/airship-run-script/tasks/main.yaml b/tools/gate/roles/airship-run-script/tasks/main.yaml index befed4e4..0220ef49 100644 --- a/tools/gate/roles/airship-run-script/tasks/main.yaml +++ b/tools/gate/roles/airship-run-script/tasks/main.yaml @@ -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') }}" diff --git a/tools/gate/roles/run-integration-tests/tasks/integration-tests.yaml b/tools/gate/roles/run-integration-tests/tasks/integration-tests.yaml index ed04b52c..6ad60b31 100644 --- a/tools/gate/roles/run-integration-tests/tasks/integration-tests.yaml +++ b/tools/gate/roles/run-integration-tests/tasks/integration-tests.yaml @@ -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: diff --git a/tools/helm_install.sh b/tools/helm_install.sh index 774b8e00..1cebfa21 100755 --- a/tools/helm_install.sh +++ b/tools/helm_install.sh @@ -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 { diff --git a/tox.ini b/tox.ini index 4a818c69..e597feba 100644 --- a/tox.ini +++ b/tox.ini @@ -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.