Skip to content
/ kubekite Public
forked from bobhenkel/kubekite

A manager for buildkite-agent jobs in Kubernetes

License

Notifications You must be signed in to change notification settings

merit/kubekite

 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 55.4%
  • Shell 38.6%
  • Dockerfile 6.0%