pathcl / kubekite

A manager for buildkite-agent jobs in Kubernetes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kubekite

kubekite is a manager for buildkite-agent jobs in Kubernetes. It watches the Buildkite API for new build jobs and when one is detected, it launches a Kubernetes job resource to run a single-user pod of buildkite-agent. When the agent is finished, kubekite cleans up the job and the associated pod.

Usage

How to build a new version of the container

  • To build and push to GCR in one go run VERSION=[YOUR VERSION] ./build_all.sh
  • Alternatively
    • Build the full docker image, and tag it with the GCR resource: docker build . -t us.gcr.io/mrt-cicd-i-8c9c/kubekite:$VERSION
    • Push the kubekite image to GCR: docker push us.gcr.io/mrt-cicd-i-8c9c/kubekite:$VERSION
  • To build a specific job: docker build . --build-arg JOB_TEMPLATE=job-templates/[job].yaml -t us.gcr.io/mrt-cicd-i-8c9c/kubekite:$VERSION-[job]

Kubekite is designed to be run within Kubernetes as a single-replica deployment. An example deployment spec can be found here. You can build and deploy kubekite from within Buildkite using the included pipeline.

Note that you will have to modify the deployment spec, these scripts, and the pipeline.yml to suit your infrastructure and preferred Docker registry.

About

A manager for buildkite-agent jobs in Kubernetes

License:Other


Languages

Language:Go 55.4%Language:Shell 38.6%Language:Dockerfile 6.0%