From 966742ec7461e9b9e973a59ddcac10c391d44a5e Mon Sep 17 00:00:00 2001 From: Sergiy Markin Date: Thu, 18 May 2023 20:58:23 +0000 Subject: [PATCH] Restored ubuntu_bionic image build This PS restores image build for ubuntu_bionic and adds appropriate gates to keep it tested by appropriate functional and integratinal tests. Also the latest osh-infra commit was used with kubernetes 1.27.1 or integration tests. Make images section of Makefile was enriched with run_armada step in order to quicktest the freshly built images - this is vital for focal and bionic images differences. Change-Id: Ida43eebd4aa51fff6261ac9cf5f8259359bc99a9 --- .zuul.yaml | 73 +++++++++++++++++- Makefile | 2 +- images/armada/Dockerfile.ubuntu_bionic | 9 ++- images/armada/Dockerfile.ubuntu_focal | 1 + requirements-frozen-bionic.txt | 92 +++++++++++++++++++++++ setup.cfg | 1 + tools/gate/playbooks/airskiff-deploy.yaml | 7 ++ tox.ini | 23 +++++- 8 files changed, 199 insertions(+), 9 deletions(-) create mode 100644 requirements-frozen-bionic.txt diff --git a/.zuul.yaml b/.zuul.yaml index c39bf10a..14bc218c 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -14,25 +14,32 @@ templates: - openstack-cover-jobs - openstack-python38-jobs + - openstack-python36-jobs check: jobs: - openstack-tox-docs - openstack-tox-pep8 - armada-chart-build-gate - armada-chart-build-latest-htk + - armada-docker-build-gate-ubuntu_bionic - armada-docker-build-gate-ubuntu_focal - - armada-airskiff-deploy + - armada-airskiff-deploy-focal + - armada-airskiff-deploy-bionic gate: jobs: - openstack-tox-docs - openstack-tox-pep8 - armada-chart-build-gate + - armada-docker-build-gate-ubuntu_bionic - armada-docker-build-gate-ubuntu_focal - - armada-airskiff-deploy + - armada-airskiff-deploy-focal + - armada-airskiff-deploy-bionic post: jobs: + - armada-docker-build-gate-ubuntu_bionic - armada-docker-build-gate-ubuntu_focal - armada-docker-publish-ubuntu_focal + - armada-docker-publish-ubuntu_bionic - armada-upload-git-mirror promote: jobs: @@ -69,6 +76,19 @@ vars: HTK_COMMIT: master +- job: + name: armada-docker-build-gate-ubuntu_bionic + timeout: 1800 + run: tools/gate/playbooks/docker-image-build.yaml + nodeset: armada-single-node + vars: + publish: false + distro: ubuntu_bionic + tags: + dynamic: + patch_set: true + + - job: name: armada-docker-build-gate-ubuntu_focal timeout: 1800 @@ -82,7 +102,7 @@ patch_set: true - job: - name: armada-airskiff-deploy + name: armada-airskiff-deploy-focal nodeset: armada-single-node-focal description: | Deploy Memcached using Airskiff and submitted Armada changes. @@ -97,7 +117,8 @@ - airship/treasuremap vars: CLONE_ARMADA: false - OSH_INFRA_COMMIT: 97ce6d7d8e9a090c748800d69a57bbd9af698b60 + OSH_INFRA_COMMIT: 8e96a91ffae745b952c053923aa177e615b49b74 + ARMADA_IMAGE_DISTRO: ubuntu_focal irrelevant-files: - ^.*\.rst$ - ^doc/.*$ @@ -106,6 +127,33 @@ - ^swagger/.*$ +- job: + name: armada-airskiff-deploy-bionic + nodeset: armada-single-node-focal + description: | + Deploy Memcached using Airskiff and submitted Armada changes. + timeout: 9600 + voting: true + pre-run: + - tools/gate/playbooks/airskiff-reduce-site.yaml + - tools/gate/playbooks/git-config.yaml + run: tools/gate/playbooks/airskiff-deploy.yaml + post-run: tools/gate/playbooks/debug-report.yaml + required-projects: + - airship/treasuremap + vars: + CLONE_ARMADA: false + OSH_INFRA_COMMIT: 8e96a91ffae745b952c053923aa177e615b49b74 + ARMADA_IMAGE_DISTRO: ubuntu_bionic + irrelevant-files: + - ^.*\.rst$ + - ^doc/.*$ + - ^examples/.*$ + - ^releasenotes/.*$ + - ^swagger/.*$ + + + - job: name: armada-docker-publish-ubuntu_focal timeout: 1800 @@ -123,6 +171,23 @@ static: - latest +- job: + name: armada-docker-publish-ubuntu_bionic + timeout: 1800 + run: tools/gate/playbooks/docker-image-build.yaml + nodeset: armada-single-node + secrets: + - airship_armada_quay_creds + vars: + publish: true + distro: ubuntu_bionic + tags: + dynamic: + branch: true + commit: true + static: + - latest + - secret: name: airship_armada_quay_creds data: diff --git a/Makefile b/Makefile index f25e7ef5..9fab1d5d 100644 --- a/Makefile +++ b/Makefile @@ -78,7 +78,7 @@ check-tox: exit 2; \ fi -images: check-docker build_armada +images: check-docker build_armada run_armada docs: clean build_docs diff --git a/images/armada/Dockerfile.ubuntu_bionic b/images/armada/Dockerfile.ubuntu_bionic index 44a820f9..44cd97e7 100644 --- a/images/armada/Dockerfile.ubuntu_bionic +++ b/images/armada/Dockerfile.ubuntu_bionic @@ -19,6 +19,7 @@ RUN set -ex && \ apt-get -y install \ ca-certificates \ curl \ + git \ netbase \ python3-dev \ python3-setuptools \ @@ -41,7 +42,7 @@ RUN useradd -u 1000 -g users -d $(pwd) armada ENTRYPOINT ["./entrypoint.sh"] CMD ["server"] -COPY requirements-frozen.txt ./ +COPY requirements-frozen-bionic.txt ./requirements.txt ENV LD_LIBRARY_PATH=/usr/local/lib @@ -60,7 +61,7 @@ RUN set -ex \ ' \ && apt-get -qq update \ # Keep git separate so it's not removed below - && apt-get install -y $buildDeps git --no-install-recommends \ + && apt-get install -y $buildDeps --no-install-recommends \ && git clone https://github.com/yaml/libyaml.git \ && cd libyaml \ && git checkout $LIBYAML_VERSION \ @@ -71,7 +72,7 @@ RUN set -ex \ && cd .. \ && rm -fr libyaml \ && python3 -m pip install -U pip \ - && pip3 install -r requirements-frozen.txt --no-cache-dir \ + && pip3 install -r requirements.txt --no-cache-dir \ && curl -fSSL -O ${HELM_ARTIFACT_URL} \ && tar -xvf $(basename ${HELM_ARTIFACT_URL}) \ && mv linux-amd64/helm /usr/local/bin \ @@ -90,6 +91,8 @@ COPY . ./ # Setting the version explicitly for PBR ENV PBR_VERSION 0.8.0 +ENV PATH=$PATH:/usr/bin/git +ENV GIT_PYTHON_GIT_EXECUTABLE=/usr/bin/git RUN \ mv etc/armada /etc/ && \ diff --git a/images/armada/Dockerfile.ubuntu_focal b/images/armada/Dockerfile.ubuntu_focal index f5f20b4d..73bcb834 100644 --- a/images/armada/Dockerfile.ubuntu_focal +++ b/images/armada/Dockerfile.ubuntu_focal @@ -19,6 +19,7 @@ RUN set -ex && \ apt-get -y install \ ca-certificates \ curl \ + git \ netbase \ python3-dev \ python3-setuptools \ diff --git a/requirements-frozen-bionic.txt b/requirements-frozen-bionic.txt new file mode 100644 index 00000000..bfb938e4 --- /dev/null +++ b/requirements-frozen-bionic.txt @@ -0,0 +1,92 @@ +alabaster==0.7.13 +attrs==22.2.0 +Babel==2.11.0 +bcrypt==4.0.1 +cachetools==4.2.4 +certifi==2023.5.7 +chardet==3.0.4 +click==8.0.4 +configparser==5.2.0 +debtcollector==2.5.0 +decorator==5.1.1 +deepdiff==5.7.0 +docutils==0.17 +dogpile.cache==1.2.0 +dulwich==0.20.50 +falcon==3.1.1 +gitdb==4.0.9 +GitPython==3.1.18 +google-auth==2.18.1 +idna==2.10 +imagesize==1.4.1 +importlib-metadata==2.1.3 +importlib-resources==5.4.0 +iso8601==1.1.0 +Jinja2==3.0.3 +jsonschema==3.2.0 +keystoneauth1==5.1.1 +keystonemiddleware==9.5.0 +kubernetes==26.1.0 +MarkupSafe==2.0.1 +msgpack==1.0.5 +netaddr==0.8.0 +netifaces==0.11.0 +nose==1.3.7 +oauthlib==3.2.2 +ordered-set==4.0.2 +os-service-types==1.7.0 +oslo.cache==2.11.0 +oslo.config==8.7.1 +oslo.context==4.1.0 +oslo.i18n==5.1.0 +oslo.log==4.6.0 +oslo.middleware==4.4.0 +oslo.policy==3.10.1 +oslo.serialization==4.3.0 +oslo.utils==4.12.3 +packaging==21.3 +Paste==3.5.3 +PasteDeploy==2.1.1 +pbr==5.11.1 +pip==21.3.1 +prometheus-client==0.8.0 +py==1.11.0 +pyasn1==0.5.0 +pyasn1-modules==0.3.0 +pycadf==3.1.1 +Pygments==2.14.0 +pylibyaml==0.1.0 +pyparsing==3.0.9 +pyrsistent==0.18.0 +python-dateutil==2.8.1 +python-keystoneclient==4.5.0 +pytz==2023.3 +PyYAML==5.4.1 +reno==4.0.0 +requests==2.23.0 +requests-oauthlib==1.3.1 +retry==0.9.2 +rfc3986==1.5.0 +rsa==4.9 +setuptools==45.2.0 +six==1.16.0 +smmap==5.0.0 +snowballstemmer==2.2.0 +Sphinx==3.3.1 +sphinx-rtd-theme==0.5.0 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==2.0.0 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.5 +statsd==4.0.1 +stevedore==3.5.2 +typing_extensions==4.1.1 +urllib3==1.25.11 +uWSGI==2.0.21 +WebOb==1.8.7 +websocket-client==1.3.1 +wheel==0.37.1 +wrapt==1.15.0 +zipp==3.6.0 diff --git a/setup.cfg b/setup.cfg index 1e9edf23..1060f341 100644 --- a/setup.cfg +++ b/setup.cfg @@ -14,6 +14,7 @@ classifier = Operating System :: POSIX :: Linux Programming Language :: Python Programming Language :: Python :: 3 + Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.10 diff --git a/tools/gate/playbooks/airskiff-deploy.yaml b/tools/gate/playbooks/airskiff-deploy.yaml index f20464ff..c4eb2e6f 100644 --- a/tools/gate/playbooks/airskiff-deploy.yaml +++ b/tools/gate/playbooks/airskiff-deploy.yaml @@ -45,7 +45,14 @@ - name: Build Armada with submitted changes shell: | + set -ex + export DISTRO={{ ARMADA_IMAGE_DISTRO }} make images + if test "${DISTRO}" = 'ubuntu_bionic' + then + # this trick is needed to use bionic image instead of focal in airskiff deployment test + docker tag quay.io/airshipit/armada:latest-ubuntu_bionic quay.io/airshipit/armada:latest-ubuntu_focal + fi args: chdir: "{{ zuul.project.src_dir }}" become: yes diff --git a/tox.ini b/tox.ini index ca96cd66..3fc5b584 100644 --- a/tox.ini +++ b/tox.ini @@ -41,9 +41,30 @@ deps= -r{toxinidir}/requirements-direct.txt commands= rm -f requirements-frozen.txt - sh -c "pip freeze --all | grep -vE 'deckhand|pyinotify|pkg-resources==0.0.0' > requirements-frozen.txt" + sh -c "pip freeze --all | grep -vE 'armada|pyinotify|pkg-resources==0.0.0' > requirements-frozen.txt" +[testenv:freeze-bionic] +basepython=python3 +recreate = True +allowlist_externals= + rm + sh +deps= + -r{toxinidir}/requirements-direct.txt +commands= + rm -f requirements-frozen-bionic.txt + sh -c "pip freeze --all | grep -vE 'armada|pyinotify|pkg-resources==0.0.0' > requirements-frozen-bionic.txt" + + +[testenv:py36] +deps= + -r{toxinidir}/requirements-frozen-bionic.txt + -r{toxinidir}/test-requirements.txt +commands = + {[testenv]commands} + stestr run {posargs} + stestr slowest [testenv:py38] commands =