A tool for observing Kubernetes pods' statuses in real time.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ocular
.gitignore
.prospector.yaml
.pyup.yml
.travis.yml
CONTRIBUTING.md
LICENSE
MANIFEST.in Add manifest Jan 9, 2019
README.md
pytest.ini Bootsrap project Dec 14, 2018
requirements.txt Bump version to 0.0.6 Jan 13, 2019
setup.cfg
setup.py
tox.ini

README.md

License: MIT Build Status PyPI version Codacy Badge Slack

ocular

A tool for observing Kubernetes pods' statuses in real time.

Description

Often times it's very hard to translate a Kubernetes event to a concrete state, and that's the gap that ocular tries fill, i.e. return one of the following statuses:

created
building
unschedulable
scheduled
running
succeeded
failed
stopped
unknown

ocular returns as well a condensed information about the reason of that status.

Install

$ pip install -U ocular

Usage

import ocular
from kubernetes import client

api_client = client.api_client.ApiClient(configuration=...)

for pod_state in ocular.monitor(api_client, 
                                namespace='polyaxon', 
                                container_names=('polyaxon-experiment-job',), 
                                label_selector='app in (workers,dashboard),type=runner'):
    print(pod_state)

Results

...
>> {'status': 'unknown', 'message': 'Unknown pod conditions', 'details': {'event_type': 'ADDED', 'labels': ...
>> {'status': 'building', 'message': None, 'details': {'event_type': 'MODIFIED', 'labels': ...
>> {'status': 'building', 'message': 'PodInitializing', 'details': {'event_type': 'MODIFIED', 'labels': ...
>> {'status': 'building', 'message': 'PodInitializing', 'details': {'event_type': 'MODIFIED', 'labels': ...
>> {'status': 'running', 'message': None, 'details': {'event_type': 'MODIFIED', 'labels': ...
>> {'status': 'running', 'message': None, 'details': {'event_type': 'MODIFIED', 'labels': ...
>> {'status': 'succeeded', 'message': None, 'details': {'event_type': 'MODIFIED', 'labels': ...
...

License

FOSSA Status