https://github.com/feiskyer/python-cri
Python client for kubernetes container runtime interface (CRI).
https://github.com/feiskyer/python-cri
containers kubelet-cri kubernetes
Last synced: 30 days ago
JSON representation
Python client for kubernetes container runtime interface (CRI).
- Host: GitHub
- URL: https://github.com/feiskyer/python-cri
- Owner: feiskyer
- License: apache-2.0
- Created: 2017-03-23T06:57:53.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-19T06:27:43.000Z (over 7 years ago)
- Last Synced: 2025-04-14T22:38:32.531Z (about 2 months ago)
- Topics: containers, kubelet-cri, kubernetes
- Language: Python
- Size: 76.2 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# python-cri
Python client for kubernetes container runtime interface (CRI).
See [CRI](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/runtime-client-server.md) for more details.
## Install
```sh
# For kubernetes v1.6.x
pip install cri==0.1.5# For kubernetes v1.7.x
pip install cri==0.2.0# For kubernetes v1.8.x
pip install cri==1.8.1
```## Usage
```python
import grpc
from cri import api_pb2channel = grpc.insecure_channel('unix:///var/run/dockershim.sock')
runtime_stub = api_pb2.RuntimeServiceStub(channel)
image_stub = api_pb2.ImageServiceStub(channel)# Get runtime version
print runtime_stub.Version(api_pb2.VersionRequest())# Get sandboxes
print runtime_stub.ListPodSandbox(api_pb2.ListPodSandboxRequest())# Get Images
print image_stub.ListImages(api_pb2.ListImagesRequest())
```## Full example
Create a busybox container in dockershim.
```python
import grpc
from cri import api_pb2channel = grpc.insecure_channel('unix:///var/run/dockershim.sock')
runtime_stub = api_pb2.RuntimeServiceStub(channel)
image_stub = api_pb2.ImageServiceStub(channel)sandboxConfig = api_pb2.PodSandboxConfig(
metadata=api_pb2.PodSandboxMetadata(name="sandbox", namespace="test"),
dns_config=api_pb2.DNSConfig(servers=["3.3.3.3"], searches=["google.com"])
)sandbox_resp = runtime_stub.RunPodSandbox(
api_pb2.RunPodSandboxRequest(config=sandboxConfig))print image_stub.PullImage(api_pb2.PullImageRequest(image=api_pb2.ImageSpec(image="busybox")))
containerConfig = api_pb2.ContainerConfig(
metadata=api_pb2.ContainerMetadata(name="busybox"),
image=api_pb2.ImageSpec(image="busybox"),
command=["sh", "-c", "top"],
)container_resp = runtime_stub.CreateContainer(api_pb2.CreateContainerRequest(
pod_sandbox_id=sandbox_resp.pod_sandbox_id,
config=containerConfig,
sandbox_config=sandboxConfig,
))print runtime_stub.StartContainer(api_pb2.StartContainerRequest(
container_id=container_resp.container_id))
```