Buildkite Agent Stack for Kubernetes
Overview
The Buildkite Agent Stack for Kubernetes (also known as agent-stack-k8s) is a Kubernetes controller that uses the Buildkite Agent API to watch for scheduled jobs assigned to the controller's queue.
[!NOTE]
Starting with v0.28.0, the Buildkite GraphQL API is no longer used. If you are upgrading from an older version, your GraphQL-enabled token can be safely removed from your configuration or Kubernetes secret. Only the Agent token is required.
Requirements
- A Kubernetes cluster.
- A Buildkite Agent Token.
Usage
The simplest way to launch a stack on the default queue:
helm install agent-stack-k8s oci://ghcr.io/buildkite/helm/agent-stack-k8s \
--set agentToken=<buildkite-agent-token>
To specify a non-default queue:
helm install agent-stack-k8s oci://ghcr.io/buildkite/helm/agent-stack-k8s \
--set agentToken=<buildkite-agent-token> \
--set config.queue=arm64
Multiple independent controllers serving the same queue
Most installations need no controller ID configuration. If multiple independent controller installations service the same queue, give each installation a distinct controller ID (its Agent API stack key), stable across restarts and upgrades.
With Helm, use distinct release full names or set
BUILDKITE_K8S_STACK_CONTROLLER_ID through controllerEnv to leave Kubernetes
resource names unchanged. Non-Helm deployments can set the same environment
variable or pass --id.
Full instructions can be found in the documentation.
Documentation
Comprehensive documentation for the Buildkite Agent Stack for Kubernetes controller can be found in the Agent Stack for Kubernetes section of the Buildkite Docs.
Development
For guidelines and requirements regarding contributing to the Buildkite Agent Stack for Kubernetes controller, please see the Development guide.