From ac573b9fb53fd543172c50bbbcdfac3656fb8e66 Mon Sep 17 00:00:00 2001 From: Sergiy Markin Date: Wed, 4 Sep 2024 20:56:29 +0000 Subject: [PATCH] Airflow 2.10.2 + ubuntu_jammy Change-Id: I4c2ce3717dd18dcc7f514ac5aa5f3a3b44199dd5 --- Makefile | 2 +- images/promenade/Dockerfile.ubuntu_jammy | 97 +++++++++++++++++ requirements-direct.txt | 2 +- requirements-frozen.txt | 126 +++++++++++------------ tox.ini | 8 +- zuul.d/jobs.yaml | 52 +++++----- zuul.d/nodesets.yaml | 9 +- zuul.d/project.yaml | 22 ++-- 8 files changed, 202 insertions(+), 116 deletions(-) create mode 100644 images/promenade/Dockerfile.ubuntu_jammy diff --git a/Makefile b/Makefile index 14292de4..f78789ee 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ 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 PYTHON = python3 CHARTS := $(filter-out deps, $(patsubst charts/%/.,%,$(wildcard charts/*/.))) IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO} diff --git a/images/promenade/Dockerfile.ubuntu_jammy b/images/promenade/Dockerfile.ubuntu_jammy new file mode 100644 index 00000000..e50fca92 --- /dev/null +++ b/images/promenade/Dockerfile.ubuntu_jammy @@ -0,0 +1,97 @@ +# Copyright 2017 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' \ + org.opencontainers.image.url='https://airshipit.org' \ + org.opencontainers.image.documentation='https://airship-promenade.readthedocs.org' \ + org.opencontainers.image.source='https://opendev.org/airship/promenade' \ + org.opencontainers.image.vendor='The Airship Authors' \ + org.opencontainers.image.licenses='Apache-2.0' + +VOLUME /etc/promenade +VOLUME /target + +RUN mkdir /opt/promenade +WORKDIR /opt/promenade + +ENV PORT 9000 +EXPOSE $PORT + +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 + +ARG DEBIAN_FRONTEND=noninteractive +ENV TZ=Etc/UTC + +ENTRYPOINT ["/opt/promenade/entrypoint.sh"] + +RUN set -ex \ + && apt update -qq \ + && apt upgrade -y \ + && apt-get install --no-install-recommends -y \ + automake \ + ca-certificates \ + curl \ + dnsutils \ + gcc \ + git \ + gpg \ + gpg-agent \ + libpcre3-dev \ + libtool \ + libpq-dev \ + make \ + python3-dev \ + python3-pip \ + python3-setuptools \ + rsync \ + && ln -s /usr/bin/python3 /usr/bin/python \ + && curl -Lo /usr/local/bin/cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 \ + && chmod 555 /usr/local/bin/cfssl \ + && python3 -m pip install -U pip \ + && apt-get autoremove -yqq --purge \ + && apt-get clean \ + && useradd -u 1000 -g users -d /opt/promenade promenade \ + && rm -rf /var/lib/apt/lists/* + +# 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 + +COPY requirements-frozen.txt /opt/promenade +RUN pip3 install --no-cache-dir -r requirements-frozen.txt + +# Setting promenade version for BPR +ENV PBR_VERSION 0.9.0 + +COPY . /opt/promenade +RUN pip3 install --verbose --editable /opt/promenade \ + && echo "/opt/promenade" \ + > /usr/local/lib/python3.10/dist-packages/promenade.pth + +USER promenade diff --git a/requirements-direct.txt b/requirements-direct.txt index 6a49d6cb..e3f90f25 100644 --- a/requirements-direct.txt +++ b/requirements-direct.txt @@ -1,4 +1,4 @@ -Deckhand @ git+https://opendev.org/airship/deckhand.git@32e9950db405b5d1eb74da0c4e8df344a8638eff#egg=deckhand +Deckhand @ git+https://opendev.org/airship/deckhand.git@be9f97b846b1edc6b74777e5e639aa9edce8cfa6#egg=deckhand Beaker click falcon diff --git a/requirements-frozen.txt b/requirements-frozen.txt index ec228624..1d60cf45 100644 --- a/requirements-frozen.txt +++ b/requirements-frozen.txt @@ -1,59 +1,56 @@ -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 click==8.1.7 -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@fd58230f6e31ede4925bab0325105eb5b05ad1a8 +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 -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 -google-auth==2.28.1 -greenlet==3.0.3 +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 -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 -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 @@ -71,67 +68,64 @@ 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-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 -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 -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 diff --git a/tox.ini b/tox.ini index bd41e12b..176ad957 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = pep8,py38,docs +envlist = pep8,py310,docs [testenv] basepython=python3 @@ -27,10 +27,10 @@ commands = [testenv:venv] commands = {posargs} -[testenv:py38] +[testenv:py310] allowlist_externals = pytest -basepython=python3.8 +basepython=python3.10 commands = pytest {posargs} @@ -77,7 +77,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 requirements-frozen.txt sh -c "pip freeze --all | grep -vE 'promenade|pyinotify|pkg-resources' > requirements-frozen.txt" diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 37a4356b..9da07b09 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -14,30 +14,30 @@ # limitations under the License. - job: - name: airship-promenade-openstack-tox-docs-focal + name: airship-promenade-openstack-tox-docs-jammy parent: openstack-tox-docs - description: Runs docs job on focal - nodeset: airship-promenade-single-node-focal + description: Runs docs job on jammy + nodeset: airship-promenade-single-node-jammy - job: - name: airship-promenade-openstack-tox-cover-focal + name: airship-promenade-openstack-tox-cover-jammy parent: openstack-tox-cover - description: Runs cover job on focal - nodeset: airship-promenade-single-node-focal + description: Runs cover job on jammy + nodeset: airship-promenade-single-node-jammy pre-run: tools/zuul/playbooks/install-deps.yaml - job: - name: airship-promenade-openstack-tox-py38-focal - parent: openstack-tox-py38 - description: Runs cover job on focal - nodeset: airship-promenade-single-node-focal + name: airship-promenade-openstack-tox-py310-jammy + parent: openstack-tox-py310 + description: Runs cover job on jammy + nodeset: airship-promenade-single-node-jammy pre-run: tools/zuul/playbooks/install-deps.yaml - job: - name: airship-promenade-openstack-tox-pep8-focal + name: airship-promenade-openstack-tox-pep8-jammy parent: openstack-tox-pep8 - description: Runs pep8 job on focal - nodeset: airship-promenade-single-node-focal + description: Runs pep8 job on jammy + nodeset: airship-promenade-single-node-jammy - job: name: airship-promenade-genesis-containerd-gate @@ -48,9 +48,9 @@ required-projects: - openstack/openstack-helm-infra timeout: 9600 - nodeset: airship-promenade-single-node-focal + nodeset: airship-promenade-single-node-jammy vars: - distro: ubuntu_focal + distro: ubuntu_jammy - job: name: airship-promenade-chart-build-gate @@ -58,9 +58,9 @@ Lints charts using pinned HTK run: tools/zuul/playbooks/helm-linter.yaml timeout: 900 - nodeset: airship-promenade-single-node-focal + nodeset: airship-promenade-single-node-jammy vars: - HTK_COMMIT: 51c70e48dff173281a77d374d87af2c49caa6348 + HTK_COMMIT: 43fd7143481b6ddda0dbd2f26bf6ec39a417b15b - job: name: airship-promenade-chart-build-gate-latest-htk @@ -68,7 +68,7 @@ Lints charts using latest HTK run: tools/zuul/playbooks/helm-linter.yaml timeout: 900 - nodeset: airship-promenade-single-node-focal + nodeset: airship-promenade-single-node-jammy vars: HTK_COMMIT: master @@ -79,19 +79,19 @@ voting: true run: tools/zuul/playbooks/helm-linter.yaml timeout: 900 - nodeset: airship-promenade-single-node-focal + nodeset: airship-promenade-single-node-jammy vars: HTK_COMMIT: master - job: - name: airship-promenade-docker-build-gate-ubuntu_focal + name: airship-promenade-docker-build-gate-ubuntu_jammy voting: true run: tools/zuul/playbooks/docker-image-build.yaml timeout: 3600 - nodeset: airship-promenade-single-node-focal + nodeset: airship-promenade-single-node-jammy vars: publish: false - distro: ubuntu_focal + distro: ubuntu_jammy tags: dynamic: patch_set: true @@ -102,23 +102,23 @@ - ^tools/.*$ - job: - name: airship-promenade-docker-publish_ubuntu_focal + name: airship-promenade-docker-publish_ubuntu_jammy voting: false run: tools/zuul/playbooks/docker-image-build.yaml timeout: 3600 - nodeset: airship-promenade-single-node-focal + nodeset: airship-promenade-single-node-jammy secrets: - airship_promenade_quay_creds 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 irrelevant-files: - ^charts/.*$ - ^etc/.*$ diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml index 713e69a2..c778c404 100644 --- a/zuul.d/nodesets.yaml +++ b/zuul.d/nodesets.yaml @@ -12,17 +12,12 @@ # limitations under the License. - nodeset: - name: airship-promenade-single-node-focal + name: airship-promenade-single-node-jammy nodes: - name: primary - label: ubuntu-focal + label: ubuntu-jammy groups: - name: primary nodes: - primary -- nodeset: - name: airship-promenade-single-node-bionic - nodes: - - name: primary - label: ubuntu-bionic \ No newline at end of file diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index e4989d07..5512660f 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -22,29 +22,29 @@ rtd_project_name: 'airship-promenade' check: jobs: - - airship-promenade-openstack-tox-cover-focal - - airship-promenade-openstack-tox-pep8-focal - - airship-promenade-openstack-tox-py38-focal - - airship-promenade-openstack-tox-docs-focal - - airship-promenade-docker-build-gate-ubuntu_focal + - airship-promenade-openstack-tox-cover-jammy + - airship-promenade-openstack-tox-pep8-jammy + - airship-promenade-openstack-tox-py310-jammy + - airship-promenade-openstack-tox-docs-jammy + - airship-promenade-docker-build-gate-ubuntu_jammy - airship-promenade-chart-build-gate - airship-promenade-chart-build-latest-htk - airship-promenade-genesis-containerd-gate gate: jobs: - - airship-promenade-openstack-tox-cover-focal - - airship-promenade-openstack-tox-pep8-focal - - airship-promenade-openstack-tox-py38-focal - - airship-promenade-openstack-tox-docs-focal - - airship-promenade-docker-build-gate-ubuntu_focal + - airship-promenade-openstack-tox-cover-jammy + - airship-promenade-openstack-tox-pep8-jammy + - airship-promenade-openstack-tox-py310-jammy + - airship-promenade-openstack-tox-docs-jammy + - airship-promenade-docker-build-gate-ubuntu_jammy - airship-promenade-chart-build-gate - airship-promenade-chart-build-latest-htk - airship-promenade-genesis-containerd-gate #- trigger-readthedocs-webhook post: jobs: - - airship-promenade-docker-publish_ubuntu_focal + - airship-promenade-docker-publish_ubuntu_jammy - promenade-upload-git-mirror #- trigger-readthedocs-webhook pre-release: