kronic

Kronic

Kronic Logo

Build / Test

The simple Kubernetes CronJob admin UI.

Kronic is in early alpha. It may eat your cronjobs, pods, or even your job.

Screenshots

See CronJobs across namespaces: Homepage

View, suspend, trigger, clone, or delete CrobJobs at a glance: Cronjobs in a Namespace

Drill down into details to see the status of jobs and pods: Cronjob Detail view

Get your hands dirty with the raw YAML to edit a CronJob: Cronjob Edit view

Purpose

CronJobs are a powerful tool, but I have found that developers and stakeholders often need an easy way to inspect the status of jobs, trigger them ad-hoc, or create a new one-off job based on existing CronJob definitions.

Kronic aims to be a simple admin UI / dashboard / manager to view, suspend, trigger, edit, and delete CronJobs in a Kubernetes cluster.

Deploying to K8S

A helm chart is provided at ./chart/kronic. By default the Kronic helm chart will provide only a ClusterIP service. See the values.yaml for some tweakable settings, most notably ingress definition.

Warning Avoid exposing Kronic publicly! The ingress configuration allows for basic authentication, but this is only minimal protection. Ensure you change ingress.auth.password from the default. Best practice would be to use a privately routed ingress class or other network-level protections. You may also provide your own basic auth secret using ingress.auth.secretName. See Ingress docs on creation.

To install Kronic, clone this repository and run:

helm install -n kronic --create-namespace kronic ./chart/kronic

Running Locally

Kronic can use a KUBECONFIG file to run locally against a cluster. To do so:

docker run -i --name kronic \
    -v $HOME/.kube:/home/kronic/.kube \
    -p 8000:8000 \
    ghcr.io/mshade/kronic

Note You may need to ensure permissions on the kubeconfig file are readable to the kronic user (uid 3000). You may also mount a specific kubeconfig file into place, ie: -v $HOME/.kube/kronic.yaml:/home/kronic/.kube/config

Design

Kronic is a small Flask app built with:

Todo