Update to python3.10

This adds python 3.10 testing and updates our docker images to
python3.10.

On the docker image side of things we use opendev's python images which
are based on Debian then have python compiled on top of that external to
Debian python packaging. Debian bullseye ships with python3.9 but our
images come with python3.10. What this means is that we cannot rely on
external wheel caches for Debian bullseye + python3.9 here as we've got
the wrong version of python3.10. The good news is that all of the
dependencies that have historically given us trouble on arm64 in
particular already ship python3.10 aarch64/arm64 wheels. This means we
can rely on pypi as is. This is probably better for us anyway as it
decouples us from relying on additional external resources.

We also update a number of jobs to use nodeset: ubuntu-jammy as this
ubuntu version defaults to python 3.10.

Change-Id: I7fb585bc5ccc52803eea107e76dddf5e9fde8646
This commit is contained in:
Clark Boylan 2022-06-30 12:07:51 -07:00
parent e668905f08
commit bde9bdb975
5 changed files with 22 additions and 25 deletions

View File

@ -9,6 +9,7 @@
- zuul/nodepool
vars:
minikube_version: v1.25.2 # NOTE(corvus): https://github.com/kubernetes/minikube/issues/14403 https://github.com/kubernetes/minikube/issues/14397
nodeset: ubuntu-jammy
- job:
description: |
@ -51,8 +52,8 @@
dependencies:
- opendev-buildset-registry
requires:
- python-builder-3.9-bullseye-container-image
- python-base-3.9-bullseye-container-image
- python-builder-3.10-bullseye-container-image
- python-base-3.10-bullseye-container-image
provides: nodepool-container-image
vars: &nodepool_image_vars
docker_images:
@ -87,8 +88,8 @@
description: Build Docker images and upload to Docker Hub.
timeout: *image_build_timeout
requires:
- python-builder-3.9-bullseye-container-image
- python-base-3.9-bullseye-container-image
- python-builder-3.10-bullseye-container-image
- python-base-3.10-bullseye-container-image
provides: nodepool-container-image
vars: *nodepool_image_vars
secrets:
@ -117,8 +118,8 @@
- zuul/nodepool
- openstack/diskimage-builder
requires:
- python-builder-3.9-bullseye-container-image
- python-base-3.9-bullseye-container-image
- python-builder-3.10-bullseye-container-image
- python-base-3.10-bullseye-container-image
provides: nodepool-siblings-container-image
vars:
zuul_work_dir: "{{ zuul.projects['opendev.org/zuul/nodepool'].src_dir }}"
@ -164,6 +165,7 @@
vars:
zuul_copy_output:
/var/log/nodepool: logs
nodeset: ubuntu-jammy
- job:
name: nodepool-functional-container-openstack-release-base
@ -243,12 +245,13 @@
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
- job:
name: nodepool-tox-py39
name: nodepool-tox-py310
description: |
Nodepool unit tests with ZooKeeper running
parent: tox-py39
parent: tox-py310
pre-run: playbooks/nodepool-tox/pre.yaml
vars: *nodepool_tox_vars
nodeset: ubuntu-jammy
- project:
vars:
@ -258,9 +261,10 @@
- opendev-buildset-registry
- nodepool-build-image
- zuul-tox-docs
- tox-pep8
- tox-pep8:
nodeset: ubuntu-jammy
- nodepool-tox-py38
- nodepool-tox-py39
- nodepool-tox-py310
- nodepool-functional-container-openstack-release
- nodepool-functional-k8s
- nodepool-functional-openshift
@ -272,9 +276,10 @@
jobs:
- nodepool-upload-image
- zuul-tox-docs
- tox-pep8
- tox-pep8:
nodeset: ubuntu-jammy
- nodepool-tox-py38
- nodepool-tox-py39
- nodepool-tox-py310
- nodepool-functional-k8s
- nodepool-functional-openshift
- zuul-quick-start:

View File

@ -13,19 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM docker.io/opendevorg/python-builder:3.9-bullseye as builder
FROM docker.io/opendevorg/python-builder:3.10-bullseye as builder
# ============================================================================
ARG ZUUL_SIBLINGS=""
COPY . /tmp/src
RUN if [ `uname -m` = "aarch64" ] ; then \
echo "Installing arm64 pip.conf" ; \
cp /tmp/src/tools/pip.conf.arm64 /etc/pip.conf ; \
cp /tmp/src/tools/pip.conf.arm64 /output/pip.conf ; \
fi
RUN assemble
FROM docker.io/opendevorg/python-base:3.9-bullseye as nodepool-base
FROM docker.io/opendevorg/python-base:3.10-bullseye as nodepool-base
# ============================================================================
COPY --from=builder /output/ /output

View File

@ -5,8 +5,9 @@ gcc [compile test]
libc6-dev [compile test platform:dpkg]
libffi-dev [compile test platform:dpkg platform:apk]
libffi [platform:apk]
libffi8 [platform:ubuntu-jammy]
libffi7 [platform:ubuntu-focal platform:debian-bullseye]
libffi6 [platform:dpkg !platform:ubuntu-focal !platform:debian-bullseye]
libffi6 [platform:dpkg !platform:ubuntu-focal !platform:ubuntu-jammy !platform:debian-bullseye]
libffi-devel [compile test platform:rpm]
libressl-dev [compile test platform:apk]
libssl-dev [compile test platform:dpkg]

View File

@ -16,6 +16,7 @@ classifier =
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
[pbr]
warnerrors = True

View File

@ -1,5 +0,0 @@
[global]
extra-index-url = https://mirror.dfw.rax.opendev.org/wheel/debian-11-aarch64/
[install]
prefer-binary = true