A simple, yet useful Kubernetes toolkit in Python
Project description
This is a simple, yet useful toolkit that supports you in writing microservices-style apps with Kubernetes.
The pyk toolkit is meant to be used by tools such as kploy or from your own app. It is manifest-oriented, that is, it expects the resource definitions in YAML files; currently pyk’s API is as follows:
execute an arbitrary operation and return the resource, if any: execute_operation(method='GET', ops_path='', payload='')
return a description of a resource: describe_resource(resource_path)
delete a resource: delete_resource(resource_path)
create a Replication Controller (RC): create_rc(manifest_filename, namespace='default')
scale a RC: scale_rc(manifest_filename, namespace='default', num_replicas=0)
create a service: create_svc(manifest_filename, namespace='default')
Dependencies
All of these are included in the setup:
Using pyk
A simple usage pattern is, for example, to create a Replication Controller:
import pprint from pyk import toolkit pyk_client = toolkit.KubeHTTPClient() # assumes local API Server at http://localhost:8080 _, rc_url = pyk_client.create_rc(manifest_filename='manifest/nginx-webserver-rc.yaml') rc = pyk_client.describe_resource(rc_url) pprint.pprint(rc.json())
Testing pyk
In order to run the tests, use test_pyk.py $KUBERNETES_API_SERVER_URL, for example:
$ ./test_pyk.py http://52.33.181.164/service/kubernetes
Above runs all the tests. You can also specify a particular test, like so:
$ ./test_pyk.py http://52.33.181.164/service/kubernetes "init app" ================================================================================ = Test case: init a simple app 2015-11-28T05:13:16 From manifest/nginx-webserver-rc.yaml I created the RC "webserver-rc" at /api/v1/namespaces/default/replicationcontrollers/webserver-rc 2015-11-28T05:13:17 From manifest/webserver-svc.yaml I created the service "webserver-svc" at /api/v1/namespaces/default/services/webserver-svc 2015-11-28T05:13:18 Found following endpoints: 2015-11-28T05:13:18 /api/v1/namespaces/default/endpoints/k8sm-scheduler -> { "addresses": [ { "ip": "10.0.3.45" } ], "ports": [ { "port": 25504, "protocol": "TCP" } ] } 2015-11-28T05:13:18 /api/v1/namespaces/default/endpoints/kubernetes -> { "addresses": [ { "ip": "10.0.3.45" } ], "ports": [ { "port": 25502, "protocol": "TCP" } ] } 2015-11-28T05:13:18 /api/v1/namespaces/default/endpoints/webserver-svc ->
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pyk-0.3.2.tar.gz
.
File metadata
- Download URL: pyk-0.3.2.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | edd7bb851081803a672b48a4f3336be33aa6b28ff2c0791966d4b4f125030826 |
|
MD5 | 33d4a9892afe1399e7b8089cd0de0ffb |
|
BLAKE2b-256 | 76f6520fee871ede6f79e5f78f928c0a4b1ded2a6eed9b4a782751bdbd67a4dd |