diff --git a/.zuul.yaml b/.zuul.yaml index 034e928b..4b86c2ab 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -13,10 +13,8 @@ - project: templates: # commented out because openstack-tox-docs fails on jammy zuul nodes - # - docs-on-readthedocs - - openstack-python38-jobs - # - openstack-cover-jobs - # - release-notes-jobs-python3 + - docs-on-readthedocs + - release-notes-jobs-python3 vars: rtd_webhook_id: '38574' rtd_project_name: 'airship-pegleg' @@ -27,33 +25,35 @@ docker_registry_login_url: "https://quay.io/api/v1/" deb_docker_repo: "{{ zuul_site_mirror_fqdn }}/deb-docker/{{ ansible_distribution_release }}" image_prefix: "airshipit" + base_image_jammy: "ubuntu:22.04" base_image_focal: "ubuntu:20.04" base_image_bionic: "ubuntu:18.04" base_image_opensuse: "opensuse/leap:15.1" base_image_xenial: "ubuntu:16.04" check: jobs: - - openstack-tox-pep8-focal - - openstack-tox-cover-focal - #- openstack-tox-docs-focal + - openstack-tox-py310 + - openstack-tox-pep8-jammy + - openstack-tox-cover-jammy + - openstack-tox-docs-jammy - pegleg-dependency-vulnerability-check - - airship-pegleg-validate-airskiff-manifests-focal - - airship-pegleg-docker-build-gate-ubuntu_focal + - airship-pegleg-validate-airskiff-manifests-jammy + - airship-pegleg-docker-build-gate-ubuntu_jammy - airship-pegleg-lint-yaml gate: jobs: - - openstack-tox-pep8-focal - - openstack-tox-cover-focal - #- openstack-tox-docs-focal + - openstack-tox-py310 + - openstack-tox-pep8-jammy + - openstack-tox-cover-jammy + - openstack-tox-docs-jammy - pegleg-dependency-vulnerability-check - - airship-pegleg-validate-airskiff-manifests-focal - - airship-pegleg-docker-build-gate-ubuntu_focal + - airship-pegleg-validate-airskiff-manifests-jammy + - airship-pegleg-docker-build-gate-ubuntu_jammy - airship-pegleg-lint-yaml post: jobs: - - airship-pegleg-docker-publish-ubuntu_focal - - airship-pegleg-docker-publish-ubuntu_bionic + - airship-pegleg-docker-publish-ubuntu_jammy - pegleg-upload-git-mirror - nodeset: @@ -63,25 +63,25 @@ label: ubuntu-bionic - nodeset: - name: airship-pegleg-single-node-focal + name: airship-pegleg-single-node-jammy nodes: - name: primary - label: ubuntu-focal + label: ubuntu-jammy - job: - name: openstack-tox-pep8-focal + name: openstack-tox-pep8-jammy parent: openstack-tox-pep8 - nodeset: openstack-single-node-focal - -#- job: -# name: openstack-tox-docs-focal -# parent: openstack-tox-docs -# nodeset: openstack-single-node-focal + nodeset: openstack-single-node-jammy - job: - name: openstack-tox-cover-focal + name: openstack-tox-docs-jammy + parent: openstack-tox-docs + nodeset: openstack-single-node-jammy + +- job: + name: openstack-tox-cover-jammy parent: openstack-tox-cover - nodeset: openstack-single-node-focal + nodeset: openstack-single-node-jammy - job: @@ -89,78 +89,173 @@ voting: true timeout: 600 run: tools/gate/playbooks/lint-yaml.yaml - nodeset: ubuntu-focal + nodeset: ubuntu-jammy irrelevant-files: - ^.*\.rst$ - ^doc/.*$ - job: name: pegleg-dependency-vulnerability-check - parent: tox-py38 + parent: tox-py310 voting: false timeout: 600 - nodeset: ubuntu-focal + nodeset: ubuntu-jammy vars: tox_envlist: safety - bindep_profile: test py38 + bindep_profile: test py310 -- job: - name: airship-pegleg-validate-airskiff-manifests-focal - nodeset: airship-pegleg-single-node-focal - description: | - Test pegleg Airskiff site manifest validation - timeout: 9600 - voting: true - pre-run: - - tools/gate/playbooks/airskiff-reduce-site.yaml - - tools/gate/playbooks/git-config.yaml - run: tools/gate/playbooks/airskiff-validate.yaml - post-run: tools/gate/playbooks/debug-report.yaml - required-projects: - - airship/treasuremap - vars: - CLONE_PEGLEG: false - HTK_COMMIT: d31027cfb4c686e23790ed50a024e8ee976549d7 - PEGLEG_IMAGE_DISTRO: ubuntu_focal - irrelevant-files: - - ^.*\.rst$ - - ^doc/.*$ - - ^releasenotes/.*$ +# - job: +# name: airship-pegleg-validate-airskiff-manifests-jammy +# nodeset: airship-pegleg-single-node-jammy +# description: | +# Test pegleg Airskiff site manifest validation +# timeout: 9600 +# voting: true +# pre-run: +# - tools/gate/playbooks/airskiff-reduce-site.yaml +# - tools/gate/playbooks/git-config.yaml +# run: tools/gate/playbooks/airskiff-validate.yaml +# post-run: tools/gate/playbooks/debug-report.yaml +# required-projects: +# - airship/treasuremap +# vars: +# CLONE_PEGLEG: false +# HTK_COMMIT: d31027cfb4c686e23790ed50a024e8ee976549d7 +# PEGLEG_IMAGE_DISTRO: ubuntu_jammy +# irrelevant-files: +# - ^.*\.rst$ +# - ^doc/.*$ +# - ^releasenotes/.*$ - job: - name: airship-pegleg-docker-build-gate-ubuntu_focal + name: airship-pegleg-docker-build-gate-ubuntu_jammy timeout: 7200 run: tools/gate/playbooks/docker-image-build.yaml - nodeset: airship-pegleg-single-node-focal + nodeset: airship-pegleg-single-node-jammy irrelevant-files: - '^doc/.*' vars: publish: false - distro: ubuntu_focal + distro: ubuntu_jammy tags: dynamic: patch_set: true - job: - name: airship-pegleg-docker-publish-ubuntu_focal + name: pegleg-base + abstract: true + roles: + - zuul: openstack/openstack-helm-infra + - zuul: zuul/zuul-jobs + required-projects: + - name: openstack/openstack-helm + - name: openstack/openstack-helm-infra + - name: openstack/openstack-helm-plugin + - name: airship/treasuremap + override-checkout: v1.9 + irrelevant-files: &irrelevant-files + - ^.*\.rst$ + - ^doc/.*$ + - ^etc/.*$ + - ^releasenotes/.*$ + - ^setup.cfg$ + - ^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 + run: + - tools/gate/playbooks/airship-run-scripts.yaml + post-run: + - tools/gate/playbooks/osh-infra-collect-logs.yaml + vars: + treasuremap_ref: refs/changes/43/927643/6 + extra_volume: + size: 80G + type: Linux + mount_point: /opt/ext_vol + docker: + root_path: "/opt/ext_vol/docker" + containerd: + root_path: "/opt/ext_vol/containerd" + kubeadm: + pod_network_cidr: "10.244.0.0/16" + service_cidr: "10.96.0.0/16" + osh_plugin_repo: "{{ zuul.project.src_dir }}/../../openstack/openstack-helm-plugin" + loopback_setup: true + loopback_device: /dev/loop100 + loopback_image: "/opt/ext_vol/openstack-helm/ceph-loop.img" + ceph_osd_data_device: /dev/loop100 + kube_version_repo: "v1.30" + kube_version: "1.30.3-1.1" + calico_setup: true + calico_version: "v3.27.4" + cilium_setup: false + 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 + gate_scripts_relative_path: ../../openstack/openstack-helm-infra + run_helm_tests: "no" + +- job: + name: airship-pegleg-validate-airskiff-manifests-jammy + nodeset: treasuremap-airskiff-1node-ubuntu_jammy + description: | + Test pegleg Airskiff site manifest validation + parent: pegleg-base + run: + - tools/gate/playbooks/airship-run-scripts.yaml + - tools/gate/playbooks/airskiff-validate.yaml + vars: + site: airskiff + 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/6 + DISTRO: ubuntu_jammy + DOCKER_REGISTRY: localhost:5000 + MAKE_PEGLEG_IMAGES: true + CLONE_PEGLEG: false + gate_scripts_relative_path: ../../airship/treasuremap + gate_scripts: + - ./tools/deployment/airskiff/developer/000-prepare-k8s.sh + - ./tools/deployment/airskiff/developer/009-setup-apparmor.sh + - ./tools/deployment/airskiff/developer/000-clone-dependencies.sh + - ./tools/deployment/airskiff/developer/020-setup-client.sh + - ./tools/deployment/airskiff/developer/015-make-all-charts.sh + - ./tools/deployment/airskiff/developer/017-make-all-images.sh + - ./tools/deployment/airskiff/developer/025-start-artifactory.sh + - ./tools/deployment/airskiff/developer/026-reduce-site.sh + + +- job: + name: airship-pegleg-docker-publish-ubuntu_jammy timeout: 7200 run: tools/gate/playbooks/docker-image-build.yaml - nodeset: airship-pegleg-single-node-focal + nodeset: airship-pegleg-single-node-jammy secrets: - airship_pegleg_quay_creds irrelevant-files: - '^doc/.*' vars: publish: true - distro: ubuntu_focal + distro: ubuntu_jammy tags: dynamic: branch: true commit: true static: - latest - - airflow_2.8.2 + - airflow_2.10.2 - secret: name: airship_pegleg_quay_creds diff --git a/Makefile b/Makefile index b632090d..8fff5dd3 100644 --- a/Makefile +++ b/Makefile @@ -27,8 +27,10 @@ PUSH_IMAGE ?= false # use this variable for image labels added in internal build process LABEL ?= org.airshipit.build=community COMMIT ?= $(shell git rev-parse HEAD) -DISTRO ?= ubuntu_focal +DISTRO ?= ubuntu_jammy +DISTRO_ALIAS ?= ubuntu_focal IMAGE ?= $(DOCKER_REGISTRY)/$(IMAGE_PREFIX)/$(IMAGE_NAME):$(IMAGE_TAG)-${DISTRO} +IMAGE_ALIAS := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO_ALIAS} PYTHON_BASE_IMAGE ?= python:3.8 BASE_IMAGE ?= @@ -101,6 +103,13 @@ else --build-arg PROMENADE_VERSION=${PROMENADE_VERSION} \ --build-arg SHIPYARD_VERSION=${SHIPYARD_VERSION} 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/doc/requirements.txt b/doc/requirements.txt index 74124814..28291d17 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -11,7 +11,7 @@ docutils>=0.17 # UML image generation -plantuml>= +plantuml # Releasenotes reno>=4.0.0 # Apache-2.0 diff --git a/doc/source/images/architecture-pegleg.png b/doc/source/images/architecture-pegleg.png index 18ae9fd2..8a27e8c0 100644 Binary files a/doc/source/images/architecture-pegleg.png and b/doc/source/images/architecture-pegleg.png differ diff --git a/images/pegleg/Dockerfile.ubuntu_jammy b/images/pegleg/Dockerfile.ubuntu_jammy new file mode 100644 index 00000000..e64672c6 --- /dev/null +++ b/images/pegleg/Dockerfile.ubuntu_jammy @@ -0,0 +1,78 @@ +ARG FROM=ubuntu:jammy +FROM ${FROM} +ARG CFSSLURL=https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 + +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-pegleg.readthedocs.org' +LABEL org.opencontainers.image.source='https://opendev.org/airship/pegleg' +LABEL org.opencontainers.image.vendor='The Airship Authors' +LABEL org.opencontainers.image.licenses='Apache-2.0' + +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ARG DECKHAND_VERSION=branch/master +ARG SHIPYARD_VERSION=branch/master +ARG PROMENADE_VERSION=branch/master + +RUN set -ex \ + && apt update -qq \ + && apt upgrade -y \ + && apt install -y --no-install-recommends \ + automake \ + ca-certificates \ + curl \ + build-essential \ + gettext-base \ + git \ + gpg \ + gpg-agent \ + libpq-dev \ + libssl-dev \ + libtool \ + make \ + netbase \ + openssh-client \ + python3-dev \ + python3-pip \ + python3-setuptools \ + && python3 -m pip install -U pip \ + && apt autoremove -yqq --purge \ + && apt clean \ + && rm -rf \ + /tmp/* \ + /usr/share/doc \ + /usr/share/doc-base \ + /usr/share/man \ + /var/lib/apt/lists/* \ + /var/log/* \ + /var/tmp/* + +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 + +VOLUME /var/pegleg +WORKDIR /var/pegleg + +COPY requirements-frozen.txt /opt/pegleg/requirements.txt +RUN pip3 install -r https://opendev.org/airship/deckhand/raw/${DECKHAND_VERSION}/requirements-frozen.txt \ + && pip3 install -r https://opendev.org/airship/promenade/raw/${PROMENADE_VERSION}/requirements-frozen.txt \ + && pip3 install -r https://opendev.org/airship/shipyard/raw/${SHIPYARD_VERSION}/src/bin/shipyard_client/requirements-frozen.txt \ + && pip3 install --no-cache-dir -r /opt/pegleg/requirements.txt + +COPY tools/install-cfssl.sh /opt/pegleg/tools/install-cfssl.sh +RUN /opt/pegleg/tools/install-cfssl.sh ${CFSSLURL} + +COPY . /opt/pegleg +RUN pip3 install -e /opt/pegleg --use-pep517 diff --git a/requirements-direct.txt b/requirements-direct.txt index 848b6dfc..856d703f 100644 --- a/requirements-direct.txt +++ b/requirements-direct.txt @@ -10,9 +10,9 @@ zipp psycopg2-binary # Airship dependencies -deckhand @ git+https://opendev.org/airship/deckhand.git@32e9950db405b5d1eb74da0c4e8df344a8638eff#egg=deckhand -shipyard-client @ git+https://opendev.org/airship/shipyard.git@6c356a902d8d5e07cf87d8fe94e4030a066e7def#egg=shipyard-client&subdirectory=src/bin/shipyard_client -promenade @ git+https://opendev.org/airship/promenade.git@e4c9fdb8619517d6e8c88e74fc3c1bdcf343a2ce#egg=promenade +deckhand @ git+https://opendev.org/airship/deckhand.git@be9f97b846b1edc6b74777e5e639aa9edce8cfa6#egg=deckhand +shipyard-client @ git+https://opendev.org/airship/shipyard.git@e917c9dca721fcf3384c583c1c0d8fe9654a7987#egg=shipyard-client&subdirectory=src/bin/shipyard_client +promenade @ git+https://opendev.org/airship/promenade.git@ac573b9fb53fd543172c50bbbcdfac3656fb8e66#egg=promenade # Openstack Antelope 2023.1 diff --git a/requirements-frozen.txt b/requirements-frozen.txt index a7557f6c..13d70dc9 100644 --- a/requirements-frozen.txt +++ b/requirements-frozen.txt @@ -1,66 +1,63 @@ -alembic==1.13.1 +alembic==1.13.2 amqp==5.2.0 arrow==1.3.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 click==8.1.7 click-default-group==1.2.4 -cliff==4.6.0 +cliff==4.7.0 cmd2==2.4.3 -cryptography==41.0.7 +cryptography==42.0.8 debtcollector==3.0.0 -Deckhand @ git+https://opendev.org/airship/deckhand.git@32e9950db405b5d1eb74da0c4e8df344a8638eff +Deckhand @ git+https://opendev.org/airship/deckhand.git@be9f97b846b1edc6b74777e5e639aa9edce8cfa6 decorator==5.1.1 -deepdiff==6.7.1 +deepdiff==8.0.1 dnspython==2.6.1 -docker==7.0.0 -dogpile.cache==1.3.2 -eventlet==0.35.2 +docker==7.1.0 +dogpile.cache==1.3.3 +eventlet==0.37.0 falcon==3.1.3 fasteners==0.19 fixtures==4.1.0 Flask==2.2.5 futurist==3.0.0 gitdb==4.0.11 -GitPython==3.1.42 -google-auth==2.28.1 -greenlet==3.0.3 +GitPython==3.1.43 +google-auth==2.34.0 +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 -itsdangerous==2.1.2 -Jinja2==3.1.3 +itsdangerous==2.2.0 +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 -kubernetes==29.0.0 +kombu==5.4.1 +kubernetes==30.1.0 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 +networkx==3.3 oauthlib==3.2.2 -ordered-set==4.1.0 +orderly-set==5.2.2 os-service-types==1.7.0 oslo.cache==3.3.1 oslo.concurrency==5.1.1 @@ -78,72 +75,70 @@ 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 -promenade @ git+https://opendev.org/airship/promenade.git@e4c9fdb8619517d6e8c88e74fc3c1bdcf343a2ce +prettytable==3.11.0 +promenade @ git+https://opendev.org/airship/promenade.git@ac573b9fb53fd543172c50bbbcdfac3656fb8e66 prometheus_client==0.20.0 psycopg2-binary==2.9.9 PTable==0.9.2 -pyasn1==0.5.1 -pyasn1-modules==0.3.0 +pyasn1==0.6.1 +pyasn1_modules==0.4.0 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 requests-oauthlib==1.3.1 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 rsa==4.9 selector==0.10.1 -setuptools==68.2.2 -shipyard-client @ git+https://opendev.org/airship/shipyard.git@6c356a902d8d5e07cf87d8fe94e4030a066e7def#subdirectory=src/bin/shipyard_client -simplejson==3.19.2 +setuptools==70.1.0 +shipyard_client @ git+https://opendev.org/airship/shipyard.git@e917c9dca721fcf3384c583c1c0d8fe9654a7987#subdirectory=src/bin/shipyard_client +simplejson==3.19.3 six==1.16.0 smmap==5.0.1 -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 -types-python-dateutil==2.8.19.20240106 -typing_extensions==4.9.0 -tzdata==2024.1 -urllib3==1.26.18 -uWSGI==2.0.24 +types-python-dateutil==2.9.0.20240906 +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 -websocket-client==1.7.0 +WebOb==1.8.8 +websocket-client==1.8.0 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 +zipp==3.20.2 diff --git a/tools/gate/playbooks/airship-run-scripts.yaml b/tools/gate/playbooks/airship-run-scripts.yaml new file mode 100644 index 00000000..6e29edc0 --- /dev/null +++ b/tools/gate/playbooks/airship-run-scripts.yaml @@ -0,0 +1,75 @@ +# 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: primary + tasks: + - name: Override images + when: buildset_registry is defined + vars: + work_dir: "{{ zuul.project.src_dir }}" + block: + - name: Buildset registry alias + include_role: + name: deploy-env + tasks_from: buildset_registry_alias + + - name: Print zuul + debug: + var: zuul + + - name: Override proposed images from artifacts + shell: > + find {{ override_paths | join(" ") }} -type f -exec sed -Ei + "s#['\"]?docker\.io/({{ repo }}):({{ tag }})['\"]?\$#{{ buildset_registry_alias }}:{{ buildset_registry.port }}/\1:\2#g" {} + + loop: "{{ zuul.artifacts | default([]) }}" + args: + chdir: "{{ work_dir }}" + loop_control: + loop_var: zj_zuul_artifact + when: "'metadata' in zj_zuul_artifact and zj_zuul_artifact.metadata.type | default('') == 'container_image'" + vars: + tag: "{{ zj_zuul_artifact.metadata.tag }}" + repo: "{{ zj_zuul_artifact.metadata.repository }}" + override_paths: + - ../openstack-helm*/*/values* + - ../openstack-helm-infra/tools/deployment/ + + - name: Diff + shell: | + set -ex; + for dir in openstack-helm openstack-helm-infra; do + path="{{ work_dir }}/../${dir}/" + if [ ! -d "${path}" ]; then continue; fi + echo "${dir} diff" + cd "${path}"; git diff; cd -; + done + + - name: "creating directory for run artifacts" + file: + path: "/tmp/artifacts" + state: directory + + - name: Run gate scripts + include_role: + name: "{{ ([item] | flatten | length == 1) | ternary('airship-run-script', 'airship-run-script-set') }}" + vars: + workload: "{{ [item] | flatten }}" + loop: "{{ gate_scripts }}" + + - name: "Downloads artifacts to executor" + synchronize: + src: "/tmp/artifacts" + dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}" + mode: pull + ignore_errors: True +... diff --git a/tools/gate/playbooks/airskiff-validate.yaml b/tools/gate/playbooks/airskiff-validate.yaml index 799bc63a..e791605d 100644 --- a/tools/gate/playbooks/airskiff-validate.yaml +++ b/tools/gate/playbooks/airskiff-validate.yaml @@ -13,87 +13,9 @@ # limitations under the License. - hosts: primary - roles: - - clear-firewall - - bindep - - disable-systemd-resolved - - ensure-python - - ensure-pip - - ensure-docker tasks: - - name: Install Packaging python module for tools/airship - block: - - pip: - name: packaging - version: 23.1 - executable: pip3 - become: True - - - name: Clone Required Repositories - shell: | - export CLONE_PEGLEG={{ CLONE_PEGLEG }} - export OSH_INFRA_COMMIT={{ HTK_COMMIT }} - ./tools/deployment/airskiff/developer/000-clone-dependencies.sh - args: - chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}" - - - name: Setup Apparmor - shell: | - ./tools/deployment/airskiff/developer/009-setup-apparmor.sh - args: - chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}" - - - name: Deploy Kubernetes with Minikube - shell: | - ./tools/deployment/airskiff/developer/010-deploy-k8s.sh - args: - chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}" - - - - name: Build all charts locally - shell: | - set -ex - ./tools/deployment/airskiff/developer/015-make-all-charts.sh - args: - chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}" - become: yes - - - name: Build Pegleg with submitted changes - shell: | - set -ex - export DISTRO={{ PEGLEG_IMAGE_DISTRO }} - make images - args: - chdir: "{{ zuul.project.src_dir }}" - become: yes - - - - name: Use locally built images in manifests - shell: | - set -ex - docker rm registry --force || true - docker run -d -p 5000:5000 --restart=always --name registry registry:2 - docker tag quay.io/airshipit/pegleg:latest-ubuntu_focal localhost:5000/pegleg:latest-ubuntu_focal - docker push localhost:5000/pegleg:latest-ubuntu_focal - sed -i "s#quay.io/airshipit/pegleg:latest-ubuntu_focal#localhost:5000/pegleg:latest-ubuntu_focal#g" ./global/software/config/versions.yaml - args: - chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}" - become: yes - - - name: Start artifactory - shell: | - set -ex - # start http server with artifacts - docker rm artifacts --force || true - docker run --name artifacts -p 8282:80 -v $(pwd)/../artifacts:/usr/share/nginx/html -d nginx - sleep 10 - curl --verbose -I http://control-plane.minikube.internal:8282/memcached.tgz - args: - chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}" - become: yes - - name: List sites shell: | set -xe 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/deploy-env.yaml b/tools/gate/playbooks/deploy-env.yaml new file mode 100644 index 00000000..9fae635d --- /dev/null +++ b/tools/gate/playbooks/deploy-env.yaml @@ -0,0 +1,36 @@ +# 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 + become: true + gather_facts: true + + roles: + - ensure-python + - ensure-pip + - clear-firewall + - deploy-apparmor + - deploy-selenium + - deploy-env + - ensure-tox + + tasks: + - name: Install Packaging python module for tools/airship + block: + - pip: + name: packaging + version: 23.1 + executable: pip3 + become: True + +... diff --git a/tools/gate/playbooks/docker-image-build.yaml b/tools/gate/playbooks/docker-image-build.yaml index 1cddbae7..fe15e99f 100644 --- a/tools/gate/playbooks/docker-image-build.yaml +++ b/tools/gate/playbooks/docker-image-build.yaml @@ -36,6 +36,11 @@ - debug: msg: "{{ tags | to_json }}" + - name: Set ubuntu jammy base image + set_fact: + base_image: "{{ base_image_jammy }}" + when: distro == 'ubuntu_jammy' + - name: Set ubuntu focal base image set_fact: base_image: "{{ base_image_focal }}" diff --git a/tools/gate/playbooks/mount-volumes.yaml b/tools/gate/playbooks/mount-volumes.yaml new file mode 100644 index 00000000..0049da19 --- /dev/null +++ b/tools/gate/playbooks/mount-volumes.yaml @@ -0,0 +1,17 @@ +# 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 + roles: + - mount-extra-volume +... diff --git a/tools/gate/playbooks/osh-infra-collect-logs.yaml b/tools/gate/playbooks/osh-infra-collect-logs.yaml new file mode 100644 index 00000000..83e76887 --- /dev/null +++ b/tools/gate/playbooks/osh-infra-collect-logs.yaml @@ -0,0 +1,43 @@ +# 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 + vars_files: + - vars.yaml + vars: + work_dir: "{{ zuul.project.src_dir }}/{{ zuul_osh_infra_relative_path | default('') }}" + logs_dir: "/tmp/logs" + roles: + - gather-host-logs + tags: + - gather-host-logs + +- hosts: primary + vars_files: + - vars.yaml + vars: + work_dir: "{{ zuul.project.src_dir }}/{{ zuul_osh_infra_relative_path | default('') }}" + logs_dir: "/tmp/logs" + roles: + - helm-release-status + - describe-kubernetes-objects + - gather-pod-logs + - gather-prom-metrics + - gather-selenium-data + tags: + - helm-release-status + - describe-kubernetes-objects + - gather-pod-logs + - gather-prom-metrics + - gather-selenium-data +... diff --git a/tools/gate/playbooks/prepare-hosts.yaml b/tools/gate/playbooks/prepare-hosts.yaml new file mode 100644 index 00000000..76087fde --- /dev/null +++ b/tools/gate/playbooks/prepare-hosts.yaml @@ -0,0 +1,21 @@ +# 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 + 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/roles/airship-run-script-set/defaults/main.yaml b/tools/gate/roles/airship-run-script-set/defaults/main.yaml new file mode 100644 index 00000000..7dc55afd --- /dev/null +++ b/tools/gate/roles/airship-run-script-set/defaults/main.yaml @@ -0,0 +1,47 @@ +# 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. + +--- +ceph_osd_data_device: "/dev/loop0" +kubeadm: + pod_network_cidr: "10.244.0.0/24" +osh_params: + container_distro_name: ubuntu + container_distro_version: focal + # feature_gates: +site: airskiff +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 +DOCKER_REGISTRY: quay.io +MAKE_ARMADA_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_SHIPYARD_IMAGES: false +MAKE_PORTHOLE_IMAGES: false +MAKE_PROMENADE_IMAGES: false +CLONE_ARMADA: true +CLONE_DECKHAND: true +CLONE_SHIPYARD: true +CLONE_PORTHOLE: true +CLONE_PROMENADE: true +CLONE_MAAS: true +CLONE_OSH: true +MAKE_ARMADA_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_SHIPYARD_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_PORTHOLE_IMAGES: false +MAKE_PROMENADE_IMAGES: false +... diff --git a/tools/gate/roles/airship-run-script-set/tasks/main.yaml b/tools/gate/roles/airship-run-script-set/tasks/main.yaml new file mode 100644 index 00000000..0fe778cd --- /dev/null +++ b/tools/gate/roles/airship-run-script-set/tasks/main.yaml @@ -0,0 +1,84 @@ +# 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. + +--- +- block: + - name: "Run script set {{ workload }}" + shell: | + set -xe; + {{ gate_script_path }} + loop: "{{ workload }}" + loop_control: + loop_var: gate_script_path + pause: 5 + args: + chdir: "{{ zuul.project.src_dir }}/{{ gate_scripts_relative_path }}" + environment: + CEPH_OSD_DATA_DEVICE: "{{ ceph_osd_data_device }}" + POD_NETWORK_CIDR: "{{ kubeadm.pod_network_cidr }}" + zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}" + OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}" + OSH_PATH: "{{ zuul_osh_relative_path | default('../openstack-helm/') }}" + OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('../openstack-helm-infra/') }}" + OPENSTACK_RELEASE: "{{ osh_params.openstack_release | default('') }}" + CONTAINER_DISTRO_NAME: "{{ osh_params.container_distro_name | default('') }}" + CONTAINER_DISTRO_VERSION: "{{ osh_params.container_distro_version | default('') }}" + 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.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') }}" + COREDNS_VERSION: "{{ coredns_version | default('v1.11.1') }}" + DISTRO: "{{ DISTRO | default('ubuntu_focal') }}" + DOCKER_REGISTRY: "{{ DOCKER_REGISTRY | default('quay.io') }}" + MAKE_ARMADA_IMAGES: "{{ MAKE_ARMADA_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_SHIPYARD_IMAGES: "{{ MAKE_SHIPYARD_IMAGES | default('false') }}" + MAKE_PORTHOLE_IMAGES: "{{ MAKE_PORTHOLE_IMAGES | default('false') }}" + MAKE_PROMENADE_IMAGES: "{{ MAKE_PROMENADE_IMAGES | default('false') }}" + CLONE_ARMADA: "{{ CLONE_ARMADA | default('true') }}" + CLONE_DECKHAND: "{{ CLONE_DECKHAND | default('true') }}" + CLONE_SHIPYARD: "{{ CLONE_SHIPYARD | default('true') }}" + CLONE_PORTHOLE: "{{ CLONE_PORTHOLE | default('true') }}" + CLONE_PROMENADE: "{{ CLONE_PROMENADE | default('true') }}" + CLONE_MAAS: "{{ CLONE_MAAS | default('true') }}" + CLONE_OSH: "{{ CLONE_OSH | default('true') }}" + MAKE_ARMADA_IMAGES: "{{ MAKE_ARMADA_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_SHIPYARD_IMAGES: "{{ MAKE_SHIPYARD_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_PORTHOLE_IMAGES: "{{ MAKE_PORTHOLE_IMAGES | default('false') }}" + MAKE_PROMENADE_IMAGES: "{{ MAKE_PROMENADE_IMAGES | default('false') }}" + # NOTE(aostapenko) using bigger than async_status timeout due to async_status issue with + # not recognizing timed out jobs: https://github.com/ansible/ansible/issues/25637 + async: 3600 + poll: 0 + register: async_results + + - name: Wait for script set to finish + async_status: + jid: '{{ item.ansible_job_id }}' + register: jobs + until: jobs.finished + delay: 5 + retries: 360 + loop: "{{ async_results.results }}" + + always: + - name: Print script set output + shell: | + # NOTE(aostapenko) safely retrieving items for the unlikely case if jobs timed out in async_status + echo 'STDOUT:\n{{ item.get("stdout") | regex_replace("\'", "") }}\nSTDERR:\n{{ item.get("stderr") | regex_replace("\'", "") }}' + loop: "{{ jobs.results }}" +... diff --git a/tools/gate/roles/airship-run-script/defaults/main.yaml b/tools/gate/roles/airship-run-script/defaults/main.yaml new file mode 100644 index 00000000..7ca82f1d --- /dev/null +++ b/tools/gate/roles/airship-run-script/defaults/main.yaml @@ -0,0 +1,43 @@ +# 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. + +--- +ceph_osd_data_device: "/dev/loop0" +kubeadm: + pod_network_cidr: "10.244.0.0/24" +osh_params: + container_distro_name: ubuntu + container_distro_version: focal + # feature_gates: +site: airskiff +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_jammy +DOCKER_REGISTRY: quay.io +MAKE_ARMADA_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_SHIPYARD_IMAGES: false +MAKE_PORTHOLE_IMAGES: false +MAKE_PROMENADE_IMAGES: false +MAKE_PEGLEG_IMAGES: false +CLONE_ARMADA: true +CLONE_DECKHAND: true +CLONE_SHIPYARD: true +CLONE_PORTHOLE: true +CLONE_PROMENADE: true +CLONE_PEGLEG: true +CLONE_MAAS: true +CLONE_OSH: true +... diff --git a/tools/gate/roles/airship-run-script/tasks/main.yaml b/tools/gate/roles/airship-run-script/tasks/main.yaml new file mode 100644 index 00000000..59907e11 --- /dev/null +++ b/tools/gate/roles/airship-run-script/tasks/main.yaml @@ -0,0 +1,56 @@ +# 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. + +--- +- name: "Run script {{ workload[0] }}" + shell: | + set -xe; + {{ gate_script_path }} + vars: + gate_script_path: "{{ workload[0] }}" + args: + chdir: "{{ zuul.project.src_dir }}/{{ gate_scripts_relative_path }}" + environment: + CEPH_OSD_DATA_DEVICE: "{{ ceph_osd_data_device }}" + POD_NETWORK_CIDR: "{{ kubeadm.pod_network_cidr }}" + zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}" + OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}" + OSH_PATH: "{{ zuul_osh_relative_path | default('../openstack-helm/') }}" + OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('../openstack-helm-infra/') }}" + OPENSTACK_RELEASE: "{{ osh_params.openstack_release | default('') }}" + CONTAINER_DISTRO_NAME: "{{ osh_params.container_distro_name | default('') }}" + CONTAINER_DISTRO_VERSION: "{{ osh_params.container_distro_version | default('') }}" + 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.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') }}" + COREDNS_VERSION: "{{ coredns_version | default('v1.11.1') }}" + DISTRO: "{{ DISTRO | default('ubuntu_focal') }}" + DOCKER_REGISTRY: "{{ DOCKER_REGISTRY | default('quay.io') }}" + MAKE_ARMADA_IMAGES: "{{ MAKE_ARMADA_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_SHIPYARD_IMAGES: "{{ MAKE_SHIPYARD_IMAGES | default('false') }}" + MAKE_PORTHOLE_IMAGES: "{{ MAKE_PORTHOLE_IMAGES | default('false') }}" + MAKE_PROMENADE_IMAGES: "{{ MAKE_PROMENADE_IMAGES | default('false') }}" + MAKE_PEGLEG_IMAGES: "{{ MAKE_PEGLEG_IMAGES | default('false') }}" + CLONE_ARMADA: "{{ CLONE_ARMADA | default('true') }}" + CLONE_DECKHAND: "{{ CLONE_DECKHAND | default('true') }}" + CLONE_SHIPYARD: "{{ CLONE_SHIPYARD | default('true') }}" + CLONE_PORTHOLE: "{{ CLONE_PORTHOLE | default('true') }}" + CLONE_PROMENADE: "{{ CLONE_PROMENADE | default('true') }}" + CLONE_PEGLEG: "{{ CLONE_PEGLEG | default('true') }}" + CLONE_MAAS: "{{ CLONE_MAAS | default('true') }}" + CLONE_OSH: "{{ CLONE_OSH | default('true') }}" +... diff --git a/tox.ini b/tox.ini index 009ebb85..2f0c6ac2 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38,pep8,docs,cover +envlist = py310,pep8,docs,cover minversion = 2.38.0 skipsdist = True @@ -31,7 +31,7 @@ commands = bash -c "{toxinidir}/tools/gate/run-unit-tests.sh '{posargs}'" -[testenv:py38] +[testenv:py310] allowlist_externals = bash find @@ -100,7 +100,7 @@ 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 {toxinidir}/requirements-frozen.txt sh -c "pip freeze --all | grep -vE 'pegleg|pyinotify|pkg-resources' > requirements-frozen.txt" diff --git a/vcs-requirements.env b/vcs-requirements.env index 5eeb7088..f2dcc6c4 100644 --- a/vcs-requirements.env +++ b/vcs-requirements.env @@ -1,3 +1,3 @@ -DECKHAND_VERSION=commit/32e9950db405b5d1eb74da0c4e8df344a8638eff -SHIPYARD_VERSION=commit/6c356a902d8d5e07cf87d8fe94e4030a066e7def -PROMENADE_VERSION=commit/e4c9fdb8619517d6e8c88e74fc3c1bdcf343a2ce +DECKHAND_VERSION=commit/be9f97b846b1edc6b74777e5e639aa9edce8cfa6 +SHIPYARD_VERSION=commit/e917c9dca721fcf3384c583c1c0d8fe9654a7987 +PROMENADE_VERSION=commit/ac573b9fb53fd543172c50bbbcdfac3656fb8e66