We enthusiastically announce the release of: zun 5.0.0: OpenStack Containers service This release is part of the ussuri release series. The source is available from: https://opendev.org/openstack/zun Download the package from: https://tarballs.openstack.org/zun/ Please report issues through: https://bugs.launchpad.net/zun/+bugs For more details, please see below. Changes in zun 4.0.0..5.0.0 --------------------------- e5f601a3 Use unittest.mock instead of third party mock a6418be0 Zun specific contributor and PTL docs 3901e575 Change entrypoint from string to list 3fe89808 Update hacking for Python3 977b5ef7 Add entrypoint to container 9104241b Use CRI driver for capsule by default 33b96a81 Fix autogenerated db migrations 05312bdd Clean up pecan.abort utils df62b3e1 Add release note for CRI runtime support 473ad2d6 Add release note for Zun CNI plugin 5dc4ae5a Failed to format message b2f5fc4f failed to delele capsule when sandbox is removed by docker c2d56024 delete inincontainer in capsule 8369d834 Pass runtime handler to CRI 436a0e60 Configure default container runtime in devstack dc49d557 Support 'host' on creating container 5b6fa1ec Enable CRI runtime in devstack 78365d11 Add missing CNI config file a104f2ad Add numactl package to installation guide edbd6cfd Update installation guide for using python3 eb1c3295 Add CRI to installation guide 9136170d Add kuryr-lib into requirements.txt eb7e8015 Init privsep context for zun-cni-daemon 67b1ec97 Replace tox_envlist 'all-plugin' with 'all' 6ebf9b65 Introduce a CRI driver 63735680 Move port deletion code to zun/network/neutron.py 69844fe9 Start zun-cni-daemon in devstack 948af86c Treat cpu as float (not integer) 54640a22 Move create_or_update_port to zun/network/neutron.py 624eebbc Split capsule code out of container driver 83dbf2d5 Refactor container driver 46a2d314 Move volume-related code to base container driver 7d174c9a Cleanup container driver inferface 428f9f83 Refactor get_available_resources in container driver 112c5a6c Provide default implementation for several methods 9f7922a7 Load container driver from entry point b0f8488d Move neutron binding constants to zun/common/consts.py 7c7ee590 Add python CRI client 9aa9563a Be robust on finding nova resource provider 0492c357 Add 'annotations' to capsule API 22936a9a CNI: handle delete when db record is missing 2bf646e9 Modify incorrect registry test cases 69c311a1 Failed to delete Creating/Error capsule 4f13f6ec Fix the duplicated words issue of "message message " f5286b90 Introduce CNI plugin for Zun 48d7d617 Implement Zun CNI daemon 0477428a Refactor common/config.py be5d95ac Add 'cni_metadata' to db layer 4a6cbe7d Remove unused db column 'meta' from 'container' table 9cc92678 Introduce VIFState object 29df2620 Rename Network object to ZunNetwork 08313109 check volume name in capsule 4a8e0301 Add 'annotations' to db layer e9e5473d PDF documentation build d306ed37 wsproxy: get the underlying socket for exec bcf96075 Change default of resume_container_state as True 88d20578 Replace git.openstack.org with opendev.org 8fbd944c Convert str to bytes on wsproxy fa4dc78c [ussuri][goal] Drop python 2.7 support and testing 11a114ea Fix node attribute in exception 11b6db17 update review site link 99aab3d3 capsule: ignore image_pull_policy if disallowed by policy eba9438f Capsule: avoid KeyError on get container spec 499a5470 Fix detaching a volume that failed to attach 97f621c5 Fix response of json schema validation error 4f3deaba Switch to Ussuri jobs 1712f184 Fix image search 500 error ed7eabc9 Update master for stable/train Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 18 +- CONTRIBUTING.rst | 22 +- api-ref/source/capsules.inc | 4 + api-ref/source/containers.inc | 7 + api-ref/source/parameters.yaml | 43 +- api-ref/source/samples/capsule-create-req.json | 5 +- api-ref/source/samples/capsule-create-resp.json | 3 + api-ref/source/samples/capsule-get-all-resp.json | 3 + api-ref/source/samples/capsule-show-resp.json | 3 + contrib/legacy-ubuntu-init/README.rst | 2 +- contrib/vagrant/config/localrc | 8 +- contrib/vagrant/install_devstack.sh | 2 +- devstack/lib/zun | 29 +- devstack/local.conf.sample | 21 +- devstack/local.conf.subnode.sample | 11 +- devstack/settings | 9 + etc/cni/net.d/10-zun-cni.conf | 6 + lower-constraints.txt | 11 +- playbooks/zun-tempest-base/post.yaml | 1 + .../notes/add-cni-plugin-fd5bf4e9abbe6683.yaml | 6 + ...d-support-for-cri-runtime-2c549a85fe795361.yaml | 10 + ...upport-for-requested_host-0ea7e317234c3d0c.yaml | 5 + .../notes/container_driver-e82fe9c64c9b994b.yaml | 11 + .../notes/drop-py-2-7-c475cf37ff3476d8.yaml | 6 + ...support-entrypoint-option-5127ab5044025380.yaml | 5 + releasenotes/source/index.rst | 1 + releasenotes/source/train.rst | 6 + requirements.txt | 8 + roles/fetch_containerd_log/tasks/main.yaml | 11 + setup.cfg | 20 +- test-requirements.txt | 3 +- tools/flake8wrap.sh | 4 +- tools/gen-criapi | 49 + tox.ini | 40 +- zun/api/controllers/v1/capsules.py | 33 +- zun/api/controllers/v1/containers.py | 88 +- zun/api/controllers/v1/hosts.py | 11 +- zun/api/controllers/v1/images.py | 6 +- zun/api/controllers/v1/networks.py | 2 +- zun/api/controllers/v1/schemas/containers.py | 8 + zun/api/controllers/v1/schemas/parameter_types.py | 13 +- zun/api/controllers/v1/views/capsules_view.py | 1 + zun/api/controllers/v1/views/containers_view.py | 1 + zun/api/controllers/versions.py | 5 +- zun/api/middleware/auth_token.py | 2 +- zun/api/rest_api_version_history.rst | 18 + zun/api/validation/validators.py | 2 +- zun/cmd/api.py | 1 + zun/cni/__init__.py | 0 zun/cni/api.py | 170 + zun/cni/binding/__init__.py | 0 zun/cni/binding/base.py | 144 + zun/cni/binding/bridge.py | 110 + zun/cni/cmd/__init__.py | 0 zun/cni/cmd/cni.py | 70 + zun/cni/cmd/cni_daemon.py | 37 + zun/cni/daemon/__init__.py | 0 zun/cni/daemon/service.py | 260 + zun/cni/plugins/__init__.py | 0 zun/cni/plugins/zun_cni_registry.py | 151 + zun/cni/utils.py | 126 + zun/common/config.py | 12 +- zun/common/consts.py | 12 + zun/common/docker_image/regexp.py | 3 +- zun/common/exception.py | 16 +- zun/common/policies/container.py | 11 + zun/common/privileged.py | 9 + zun/common/short_id.py | 3 +- zun/common/utils.py | 38 +- zun/compute/api.py | 25 + zun/compute/compute_node_tracker.py | 33 +- zun/compute/manager.py | 102 +- zun/conf/__init__.py | 4 + zun/conf/cni_daemon.py | 82 + zun/conf/compute.py | 2 +- zun/conf/container_driver.py | 20 +- zun/conf/neutron.py | 40 + zun/container/cri/__init__.py | 0 zun/container/cri/driver.py | 307 + zun/container/docker/driver.py | 81 +- zun/container/docker/host.py | 7 +- zun/container/driver.py | 313 +- .../os_capability/linux/os_capability_linux.py | 6 +- zun/criapi/__init__.py | 0 zun/criapi/api_pb2.py | 6859 ++++++++++++++++++++ zun/criapi/api_pb2_grpc.py | 554 ++ zun/criapi/gogo_pb2.py | 806 +++ zun/db/sqlalchemy/alembic/env.py | 1 + .../47d79ffdc582_add_cni_metadata_to_container.py | 37 + ...c97dca93d0_add_missing_index_and_foreign_key.py | 35 + .../c2052ead4f95_remove_meta_from_container.py | 31 + .../df87dbd4846c_add_annotations_to_container.py | 37 + .../f979327df44b_add_entrypoint_to_container.py | 42 + zun/db/sqlalchemy/models.py | 14 +- zun/hacking/checks.py | 27 +- zun/image/docker/driver.py | 2 +- zun/network/kuryr_network.py | 237 +- zun/network/linux_net.py | 54 + zun/network/neutron.py | 204 + zun/network/os_vif_util.py | 243 + zun/objects/__init__.py | 9 +- zun/objects/container.py | 43 +- zun/objects/fields.py | 11 +- zun/objects/registry.py | 2 +- zun/objects/vif.py | 45 + zun/objects/{network.py => zun_network.py} | 24 +- zun/pci/utils.py | 8 +- zun/scheduler/driver.py | 4 +- zun/scheduler/filter_scheduler.py | 33 +- zun/scheduler/utils.py | 22 +- .../api/controllers/v1/test_availability_zones.py | 4 +- .../unit/api/controllers/v1/test_containers.py | 6 +- .../unit/api/controllers/v1/test_quota_classes.py | 2 +- .../unit/api/controllers/v1/test_registries.py | 6 +- .../unit/api/controllers/v1/test_zun_service.py | 3 +- .../unit/compute/test_compute_node_tracker.py | 6 +- .../unit/container/docker/test_docker_driver.py | 31 +- .../test_os_capability_linux.py | 6 +- .../unit/scheduler/filters/test_compute_filter.py | 3 +- .../filters/test_pci_passthrough_filters.py | 2 +- zun/volume/driver.py | 2 +- zun/websocket/websocketproxy.py | 8 + 197 files changed, 11984 insertions(+), 934 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 9ca66959..0e3fdfdf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,0 +5,4 @@ +cotyledon>=1.5.0 # Apache-2.0 +Flask>=0.12.3 # BSD +futurist>=1.6.0 # Apache-2.0 +grpcio>=1.12.0 # Apache-2.0 @@ -7,0 +12 @@ keystonemiddleware>=4.18.0 # Apache-2.0 +kuryr-lib>=0.5.0 # Apache-2.0 @@ -8,0 +14 @@ pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD +protobuf>=3.6.0 # 3-Clause BSD @@ -31,0 +38 @@ os-traits>=0.15.0 # Apache-2.0 +os-vif>=1.15.1 # Apache-2.0 @@ -36,0 +44 @@ neutron-lib>=1.13.0 # Apache-2.0 +pyroute2>=0.5.7;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) diff --git a/test-requirements.txt b/test-requirements.txt index 333a9057..346fb167 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9 +8,0 @@ coverage!=4.4,>=4.0 # Apache-2.0 -mock>=2.0.0 # BSD @@ -11 +10 @@ fixtures>=3.0.0 # Apache-2.0/BSD -hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 +hacking>=3.0,<3.1.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org