pyk: a simple, yet useful Kubernetes toolkit in Python
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 ->
Metadata
Release files for pyk 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyk-0.3.2.tar.gz | 4.4 kB | Details |
Release files / pyk-0.3.2.tar.gz
| Download URL | pyk-0.3.2.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
edd7bb851081803a672b48a4f3336be33aa6b28ff2c0791966d4b4f125030826
|
|
BLAKE2b-256 checksum How to use checksums |
76f6520fee871ede6f79e5f78f928c0a4b1ded2a6eed9b4a782751bdbd67a4dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |