[release-announce] qinling 1.0.0 (rocky)

no-reply at openstack.org no-reply at openstack.org
Thu Aug 30 14:28:48 UTC 2018


We are happy to announce the release of:

qinling 1.0.0: Function as a Service

This release is part of the rocky release series.

The source is available from:

    http://git.openstack.org/cgit/openstack/qinling

Download the package from:

    https://tarballs.openstack.org/qinling/

For more details, please see below.

Changes in qinling aee1b062bab33c7e6a5016a1b569bc2305010a41..1.0.0
------------------------------------------------------------------

c67f84b Add release note for function alias
12fa919 Delete check of function alias
e924577 Support to specify workload type for runtime
b3c5bfd Improve connecting to existing k8s cluster guide
af6da47 Add upgrade description to release note
38be74a Add a tempest test case to verify connection from k8s pod to outside
2616494 Support alias for webhook creation
662794b Kubernetes: disable inter-pods connections
f76ffc9 Raise specific exceptions instead of tenacity.RetryError
6cc83e7 Support alias for job creation
613e542 Runtime: less strict for resource limiting
f8c99ec Creating functions using OpenStack Swift
77fc9f1 Increase etcd3gw dependency version
69a61e5 Add scope information when getting session from Keystone
cd92cff Support alias for execution creation
121a537 Fix function download content-type not set correctly
01d769f Support to get pool information for the runtime
6b45191 periodics: fix service of function version 0 not expiring issue
4a4a18f Set file size limit to 50M in the python rumtime image
30fcd00 python2-runtime: limit cglimit listen on localhost only
bcdbfb6 Add a preliminary structure for admin security guide
abba847 The original image link does not work
13fb206 Remove default function_version in webhook resource def
347363d config: update api_workers default value to match help message
779bcf7 Enable oslo_config mutable configurations
b7534dd Function Alias API: delete and update
bbfe83e Invoke Python function in a directory rather than a zip package
16f5bb2 Add an example for function cookbook
18f8b9d Function Alias API: create and get
2b2a62d Add basic structure for user guide
7ced7b8 add release notes to README.rst
d85799a Add install guide on ubuntu 16.04
a8425dc Add simple tempest testcases for resource limiting
3d06637 Fix typo
28f4440 Improve contributing page
180e1c6 Add release note for customized memory and cpu resources feature
2045799 devstack: use cgroupfs driver for both docker and k8s on Cent OS
e886447 Runtime implementation for non-image type function.
670a7be fix tox python3 overrides
e567904 replace file() with open() for python 3 compatibility
b63d05d Function aliases: db scheme change
290fc69 Fix trivial errors in log formatting
958b2d2 Store error info in execution result when failed
e5ee23d Delete package only when the package is updated
045c94a Specify the runtime image version explicitly
3afca01 Improve doc
284fe74 rest_utils: simplify filter extracting
3aae175 Function Aliases spec proposal
2237daf Delete underlying resources when deleting function version
2a1301d Replace Chinese quotes with English quotes
5a4292e Fix typo
4a27a7a Improve the quick start guide a little bit
f69f33c [Trivialfix]Modify a grammatical error
92d96f5 Improve the setup scripts to support multi-nics
e61e18c Fix function package downloading
40a89a3 Fix incompatible requirements
2edca38 kubernetes: add V1DeleteOptions when deleting services
33b4337 Improve qinling doc
8757a10 Fix the permission issue in devstack plugin
ff38280 Runtime implementation for image type function
61dc02f Document how to make Qinling work with existing k8s cluster
e22faa6 Outline for Qinling doc
706948a Add release note for function versioning feature
4c085db Functional test for deleting function version
19cd85e Functional test for function version detach/get
0e8d91c Fix missing fields in API response
49ea542 Add function_id in function version API response
5d8f0c0 Functional test for creating job/webhook with function version
6ee16ce Functional test for creating execution with function version
2be2b43 Functional test for creating function version
08ded02 Function version API: scale_up/scale_down/detach/get_workers
3f303eb Delete all its versions when deleting function
e0e8f3d Add cpu and memory_size options support for function
c3a081f Support function version for webhook
7d79bf3 Support function version for job
710b613 Replace assertRaisesRegexp with assertRaisesRegex
885ed28 Support version for execution creation
d4567df Upgrade db version to add cpu column for function
917132a Function versioning API: delete
e8e8084 Function versioning API: get
9005cea Function versioning API: list
12d2ee6 Function versioning API: create
8331c23 Delete old package when updating function
674b839 Fix devstack plugin script
39a5a05 Function versioning: db scheme support
546d03e Include md5 in function package path
5572617 Depress the debug log from futurist.periodics
ef5268e Add missing release note for the k8s certs change
7c09206 Fix typo: extention -> extension
4826a01 engine: set execution status upon exceptions
76d01bb Allow qinling to connect to k8s API with certificates
9c47eec spec doc for adding customized mem/cpu for function
1ea7e91 Remove force value of get_url in playbook
2865210 Function versioning spec proposal
e6c4303 Switch qinling-tempest to a voting check and gate job
bd29ab0 periodics: switch to use futurist
740bcd8 engine: delete workers from etcd after removing
0eef3c8 Install same version for k8s CLIs and k8s control plane services
8218068 Updated from global requirements
64d2b90 Updated from global requirements
5735423 add lower-constraints job
f56c67f Add specs folder for Qinling
62a2790 add missing unit tests for methods of function controller
d11172e Updated from global requirements
9bed24e Exclude tests and db migrations from coverage report
c9c1c1a Add a basic feature description about Sync/Async
9f91d6f zuul: create Neutron config dir for the devstack job
2ad25a3 tempest plugin: save package in temporary dir
823b5b4 Updated from global requirements
7ba51a7 Make tempest check use devstack-tempest parent
5fdd96a Updated from global requirements
261dd0c tests: add more unit tests for qinling.orchestrator
20d10bc tests: add unit tests for qinling.orchestrator
0dd033d Updated from global requirements
e865f19 kubeadm: make it also work on CentOS 7
6bec49c Updated from global requirements
2bef99e Improve the net_resolv_pre_kube function in network.sh
9922c20 Remove the resource limit for pod in k8s deployment
6c6bca6 Add Node.js runtime support
ffc1ceb Add unzip functionality in sidecar
e9eaef8 kubeadm: fix issue about obtaining k8s config
70e8458 Don't run tempest jobs when patching unit test and releasenote
23d1259 Follow the new PTI for document build
803bb7b orchestrator: fix several issues of kubernetes manager
ec36b22 Replace uuid.uuid4() with uuidutils.generate_uuid()
b0553c6 Updated from global requirements
05588c1 Add sidecar support for runtime
b0d724a Update qinling doc location to docs.openstack.org
f9b342b tests: add filesystem storage unit tests
5934149 tests: add default engine unit tests
5615dd5 Use uWSGI for python runtime
22d172b Fix potential KeyError in execution tests
dabfa1a Use kubeadm for devstack
5215953 doc: use storyboard link in CONTRIBUTING
7fd9070 filesystem storage: don't ensure base path when initialization
e587213 Don't run tempest jobs when patching document
c424780 Update the admin guide doc structure
2651652 Fix link for keystonemiddleware page
462561c Fix minor typos in chinese spelling
9523466 Update mysql connection in doc
d3356c3 Update home-page url
44e9752 Add coverage test script
cea8723 tests: improve unit tests of runtime API controller
2826144 Fix the OpenStack-Helm page does not exist
e3c5e70 engine: fix a typo in default_engine log message
78be927 Use storyboard link in Qinling doc
e17b388 Improve doc
3f99e1b Zuul: Remove project name
9e217f9 kube.sh: don't download kubectl again when it exists
3372e12 kube.sh: fix wrong systemd mount flag
113a29b tox.ini: add missing comments for H204 and H205
399363b kube.sh: skip get-docker when Docker is installed from distro repo
ad4a3df Fix a typo in quick start guide
a229b4f Make shell script graceful
53416f7 Fix one doc error in developer guide
7250094 Zuul: Remove project name
3170f38 Fix a potential error about script file


Diffstat (except docs and test files)
-------------------------------------

.coveragerc                                        |   3 +
.zuul.yaml                                         |  74 +-
CONTRIBUTING.rst                                   |  28 +-
README.rst                                         |   7 +-
devstack/plugin.sh                                 |  65 +-
devstack/settings                                  |   8 +-
.../development-environment-devstack.rst           |  24 +-
etc/policy.json.sample                             |   5 +
.../functions/python/openstack/create_thumbnail.py |  36 +-
example/kubernetes/cfssl-ca-config.json            |  17 +
example/kubernetes/cfssl-client-csr.json           |   7 +
example/kubernetes/k8s_qinling_role.yaml           |  77 ++
lower-constraints.txt                              | 131 +++
playbooks/legacy/qinling-dsvm-tempest/post.yaml    |  80 --
playbooks/legacy/qinling-dsvm-tempest/run.yaml     |  52 --
playbooks/post.yaml                                |   8 +
playbooks/pre.yaml                                 |  10 +
qinling/api/controllers/v1/execution.py            |  15 +-
qinling/api/controllers/v1/function.py             | 215 +++--
qinling/api/controllers/v1/function_alias.py       | 156 ++++
qinling/api/controllers/v1/function_version.py     | 361 ++++++++
qinling/api/controllers/v1/job.py                  |  26 +-
qinling/api/controllers/v1/resources.py            | 148 ++--
qinling/api/controllers/v1/root.py                 |   2 +
qinling/api/controllers/v1/runtime.py              |  50 +-
qinling/api/controllers/v1/webhook.py              |  43 +-
qinling/cmd/api.py                                 |   3 +-
qinling/cmd/engine.py                              |   2 +
qinling/config.py                                  |  70 +-
qinling/context.py                                 |   2 +-
qinling/db/api.py                                  |  48 ++
qinling/db/sqlalchemy/api.py                       | 130 ++-
.../versions/002_add_function_version_support.py   |  69 ++
.../versions/003_add_cpu_column.py                 |  44 +
.../versions/004_add_function_aliases_support.py   |  54 ++
.../versions/005_add_trusted_for_runtime.py        |  36 +
qinling/db/sqlalchemy/model_base.py                |   9 +-
qinling/db/sqlalchemy/models.py                    |  76 +-
qinling/engine/default_engine.py                   | 194 +++--
qinling/engine/utils.py                            |  71 +-
qinling/exceptions.py                              |  15 +
qinling/orchestrator/base.py                       |  17 +-
qinling/orchestrator/kubernetes/manager.py         | 272 +++++--
.../kubernetes/templates/deployment.j2             |  36 +-
qinling/orchestrator/kubernetes/templates/pod.j2   |  11 +-
.../orchestrator/kubernetes/templates/service.j2   |   3 +-
qinling/orchestrator/kubernetes/utils.py           |  14 +-
qinling/rpc.py                                     |  23 +-
qinling/services/periodics.py                      |  86 +-
qinling/storage/base.py                            |  50 +-
qinling/storage/file_system.py                     | 137 +++-
.../unit/api/controllers/v1/test_execution.py      |  69 +-
.../unit/api/controllers/v1/test_function_alias.py | 154 ++++
.../api/controllers/v1/test_function_version.py    | 278 +++++++
.../api/controllers/v1/test_function_worker.py     |  39 +-
.../unit/orchestrator/kubernetes/test_manager.py   | 904 +++++++++++++++++++++
qinling/utils/common.py                            |  19 +-
qinling/utils/constants.py                         |   2 +
qinling/utils/etcd_util.py                         |  47 +-
qinling/utils/executions.py                        | 102 ++-
qinling/utils/openstack/keystone.py                |   2 +
qinling/utils/openstack/swift.py                   |  16 +-
qinling/utils/rest_utils.py                        |  47 +-
qinling_tempest_plugin/config.py                   |  20 +-
.../functions/nodejs/test_nodejs_async.js          |  13 +
.../functions/nodejs/test_nodejs_basic.js          |   3 +
.../functions/python/test_python_basic.py          |  17 +
.../functions/python/test_python_cpu_limit.py      |  40 +
.../functions/python/test_python_file_limit.py     |  38 +
.../functions/python/test_python_http_get.py       |  24 +
.../functions/python/test_python_memory_limit.py   |  23 +
.../python/test_python_positional_args.py          |  17 +
.../functions/python/test_python_process_limit.py  |  41 +
.../functions/python/test_python_sleep.py          |  18 +
qinling_tempest_plugin/functions/python_test.py    |  17 -
.../functions/test_python_file_limit.py            |  38 -
.../functions/test_python_positional_args.py       |  17 -
.../functions/test_python_process_limit.py         |  43 -
.../functions/test_python_sleep.py                 |  18 -
qinling_tempest_plugin/plugin.py                   |   4 +-
qinling_tempest_plugin/services/qinling_client.py  | 199 ++++-
...ble-mutable-configuration-a0527660fa58532c.yaml |   6 +
.../notes/function-aliasing-318abd48128b4084.yaml  |   5 +
.../function-versioning-6e23fc021c2a7c7e.yaml      |  10 +
...-runtime-pool-information-440351400ad7f0b8.yaml |   5 +
.../notes/isolate-k8s-pods-617fec5dc5fbd2d8.yaml   |  12 +
...nling-k8s-apiserver-certs-1651e26de5ca001c.yaml |  21 +
.../resources-customized-5f5382d40e375dc1.yaml     |  10 +
.../workload-type-support-d613cdb7bb90b2a2.yaml    |   9 +
releasenotes/source/index.rst                      |   2 +-
releasenotes/source/pike.rst                       |   6 -
releasenotes/source/queens.rst                     |   6 +
requirements.txt                                   |  22 +-
runtimes/nodejs/Dockerfile                         |  14 +
runtimes/nodejs/package-lock.json                  | 797 ++++++++++++++++++
runtimes/nodejs/package.json                       |  24 +
runtimes/nodejs/server.js                          | 105 +++
runtimes/python2/Dockerfile                        |  10 +-
runtimes/python2/README.md                         |  22 -
runtimes/python2/cglimit.py                        | 124 +++
runtimes/python2/custom-entrypoint.sh              |  18 +-
runtimes/python2/requirements.txt                  |   1 +
runtimes/python2/server.py                         | 151 ++--
runtimes/sidecar/Dockerfile                        |  23 +
runtimes/sidecar/requirements.txt                  |   3 +
runtimes/sidecar/sidecar.py                        | 104 +++
setup.cfg                                          |   2 +-
setup.py                                           |   2 +-
test-requirements.txt                              |   7 +-
tools/cover.sh                                     |  66 ++
tools/gate/dump_logs.sh                            |  97 ---
tools/gate/funcs/common.sh                         |  55 --
tools/gate/funcs/kube.sh                           | 150 ----
tools/gate/funcs/network.sh                        |  88 --
tools/gate/kubeadm/funcs/common.sh                 |  60 ++
tools/gate/kubeadm/funcs/network.sh                |  50 ++
tools/gate/kubeadm/playbook/deploy_k8s.yaml        |  21 +
.../playbook/roles/docker/defaults/main.yml        |   2 +
.../kubeadm/playbook/roles/docker/tasks/centos.yml |  26 +
.../kubeadm/playbook/roles/docker/tasks/main.yml   |  14 +
.../kubeadm/playbook/roles/docker/tasks/ubuntu.yml |  22 +
.../playbook/roles/k8s_cli/tasks/centos.yml        |  36 +
.../k8s_cli/tasks/install_kube_prompt_tasks.yml    |  25 +
.../kubeadm/playbook/roles/k8s_cli/tasks/main.yml  |  16 +
.../playbook/roles/k8s_cli/tasks/ubuntu.yml        |  20 +
.../playbook/roles/kube_master/tasks/main.yml      |  46 ++
tools/gate/kubeadm/setup_gate.sh                   |  49 ++
tools/gate/kubeadm/vars.sh                         |  19 +
tools/gate/kubeadm_aio.sh                          |  25 -
tools/gate/setup_gate.sh                           |  41 -
tools/gate/vars.sh                                 |  42 -
tools/kubeadm-aio/Dockerfile                       |  88 --
tools/kubeadm-aio/README.rst                       | 110 ---
tools/kubeadm-aio/assets/etc/kube-cni              |   2 -
tools/kubeadm-aio/assets/etc/kube-role             |   3 -
tools/kubeadm-aio/assets/etc/kube-version          |   3 -
.../assets/etc/kubeadm-join-command-args           |   1 -
tools/kubeadm-aio/assets/etc/kubeadm.conf          |   4 -
tools/kubeadm-aio/assets/etc/kubeapi-device        |   3 -
tools/kubeadm-aio/assets/etc/kubelet-container     |   3 -
tools/kubeadm-aio/assets/kubeadm-aio               |  54 --
.../assets/opt/cni-manifests/calico.yaml           | 365 ---------
.../assets/opt/cni-manifests/canal.yaml            | 329 --------
.../assets/opt/cni-manifests/flannel.yaml          |  94 ---
.../assets/opt/cni-manifests/weave.yaml            | 187 -----
.../assets/opt/nfs-provisioner/deployment.yaml     |  73 --
.../assets/opt/nfs-provisioner/storageclass.yaml   |   5 -
tools/kubeadm-aio/assets/opt/rbac/dev.yaml         |  15 -
tools/kubeadm-aio/kubeadm-aio-launcher.sh          |  94 ---
tools/vagrant/Vagrantfile                          |   6 +-
tools/vagrant/qinling.conf.sample                  |   4 +-
tox.ini                                            |  25 +-
208 files changed, 11143 insertions(+), 3179 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index 3b6834a..c4d242a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -7 +7 @@ Babel!=2.4.0,>=2.3.4 # BSD
-keystoneauth1>=3.3.0 # Apache-2.0
+keystoneauth1>=3.4.0 # Apache-2.0
@@ -9,2 +9,2 @@ keystonemiddleware>=4.17.0 # Apache-2.0
-oslo.concurrency>=3.20.0 # Apache-2.0
-oslo.config>=5.1.0 # Apache-2.0
+oslo.concurrency>=3.26.0 # Apache-2.0
+oslo.config>=5.2.0 # Apache-2.0
@@ -15 +15 @@ oslo.utils>=3.33.0 # Apache-2.0
-oslo.log>=3.30.0 # Apache-2.0
+oslo.log>=3.36.0 # Apache-2.0
@@ -19 +19 @@ pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD
-setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,>=16.0 # PSF/ZPL
+setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,>=21.0.0 # PSF/ZPL
@@ -25,2 +25,2 @@ WSME>=0.8.0 # MIT
-kubernetes>=4.0.0  # Apache-2.0
-PyYAML>=3.10 # MIT
+kubernetes>=6.0.0 # Apache-2.0
+PyYAML>=3.12 # MIT
@@ -29,2 +29,2 @@ croniter>=0.3.4 # MIT License
-python-dateutil>=2.4.2 # BSD
-tenacity>=3.2.1 # Apache-2.0
+python-dateutil>=2.5.3 # BSD
+tenacity>=4.4.0 # Apache-2.0
@@ -32,2 +32,2 @@ PyMySQL>=0.7.6 # MIT License
-etcd3gw>=0.2.0 # Apache-2.0
-cotyledon>=1.3.0  # Apache-2.0
+etcd3gw>=0.2.2 # Apache-2.0
+cotyledon>=1.3.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index b8f9530..73f7445 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -7,2 +7 @@ coverage!=4.4,>=4.0 # Apache-2.0
-sphinx>=1.6.2 # BSD
-oslotest>=1.10.0 # Apache-2.0
+oslotest>=3.2.0 # Apache-2.0
@@ -14,2 +12,0 @@ futurist>=1.2.0 # Apache-2.0
-openstackdocstheme>=1.17.0 # Apache-2.0
-reno>=2.5.0 # Apache-2.0
@@ -17 +14 @@ reno>=2.5.0 # Apache-2.0
-kubernetes>=4.0.0  # Apache-2.0
+kubernetes>=6.0.0 # Apache-2.0






More information about the Release-announce mailing list