10 Commits

Author SHA1 Message Date
Hunt Xu
662794bded Kubernetes: disable inter-pods connections
By default pods in Kubernetes can connect to each other. However in
Qinling, each pod should be independent acting as a worker of a function
or running an execution of a function. Disabling the inter-pods traffic
in the namespace used by Qinling would ensure the isolation of each pod.

This commit leverages the NetworkPolicy in Kubernetes[1] to isolate the
pods. So a network solution which supports NetworkPolicy (for example,
cailco) for Kubernetes must be used or there will be no effect.

[1] https://kubernetes.io/docs/concepts/services-networking/network-policies/

Story: 2001585
Task: 6534
Change-Id: I368323410e92cc23c9a7b50e4936c7070cd57ef7
2018-07-23 21:57:18 +00:00
Lingxian Kong
4a4a18f2ec Set file size limit to 50M in the python rumtime image
The original file size limit is too small and not suitable for common
user case. This patch changes the file size limit to 50M but it could
be configurable in future.

Change-Id: Ie48c9374f8eb2b6a15416fb5ec775f6a444063c3
Story: 2002967
Task: 22973
2018-07-13 15:36:43 +12:00
Hunt Xu
76d01bb325 Allow qinling to connect to k8s API with certificates
By now, qinling connects to the Kubernetes API server insecurely.
kubectl proxy is used for testing purpose. However, in real production
deployments, it is not a good idea to let qinling connect to the
Kubernetes API server without any authentication and authorization.

This commit adds the support in qinling for it to connect to the
Kubernetes API server with X509 Client Certs for authentication [1].
An example file is also added for users to grant specific access to the
Kubernetes API for qinling using the RBAC authorization of
Kubernetes [2]. With these users can control qinling's access to the
Kubernetes API [3] and ensure qinling uses a secure connection to talk
with the Kubernetes API.

Devstack plugin also setups qinling to connect to Kubernetes API server
using TLS certificates by default. This makes the deployment with
devstack closer to a production-ready environment. For testing purpose,
user can set the QINLING_K8S_APISERVER_TLS variable to False in
devstack's local.conf.

Note: a HOTWO document will be added in a follow-up commit.

[1] https://kubernetes.io/docs/admin/authentication/#x509-client-certs
[2] https://kubernetes.io/docs/admin/authorization/rbac/
[3] https://kubernetes.io/docs/admin/accessing-the-api/

Change-Id: I532f131abbfc8ed90de398cc135e9b8248d2757a
2018-04-11 17:26:20 +08:00
Lingxian Kong
9f5b474b6f Support to update function code
Change-Id: If7698350925119140b46cf319ad74f3e063ef0a6
Closes-Bug: #1733477
2017-11-24 14:09:59 +13:00
Zuul
b2d82ee744 Merge "Add python-zaqarclient to python runtime" 2017-11-01 20:49:38 +00:00
Lingxian Kong
1ea8b39051 Add python-zaqarclient to python runtime
Add an example using zaqar.

Change-Id: I130a87d2b1315dca8b8712db5baea31c8eebbd9e
2017-11-02 00:19:10 +13:00
junboli
4b9cd0e0b0 Add license for example code
All python code should include Licensed under the
Apache License, Version 2.0.
This patch is to add apache license.

Change-Id: I693826787d984b8976de8a10c2dbd5fc678876a1
2017-10-10 22:17:14 +08:00
Lingxian Kong
3c8746f395 Improve swift python sample code
Change-Id: I6f43ac14d2a01b17a39c95b17919c5fd42115330
2017-10-09 14:17:57 +13:00
Lingxian Kong
601410e119 Support filtering for execution query
Change-Id: Iab965386f57948d4c333dfadde589c76ea639764
Implements: blueprint qinling-execution-filter
2017-10-09 11:32:23 +13:00
Lingxian Kong
786f83d182 Support Keystone session in python runtime
Keystone session can be used directly in user function to access
OpenStack services.

Include openstack clients in python requirements as well.

Add a python function example.

Implements: blueprint qinling-openstack-clients
Change-Id: I4798c404cb57bafe14049f57ba8db7c7125106c7
2017-07-03 01:16:40 +12:00