Git settings
In the Buildkite Agent Stack for Kubernetes controller version v0.13.0 and later, flags for git clone and git fetch can be overridden on a per-step basis (similar to BUILDKITE_GIT_CLONE_FLAGS and BUILDKITE_GIT_FETCH_FLAGS env vars) with the checkout block:
# pipeline.yml
steps:
- label: Hello World!
agents:
queue: kubernetes
plugins:
- kubernetes:
checkout:
cloneFlags: -v --depth 1
fetchFlags: -v --prune --tags
In the Buildkite Agent Stack for Kubernetes controller version v0.16.0 and later, more Git flags and options are supported by the agent: cleanFlags, noSubmodules, submoduleCloneConfig, gitMirrors (cloneFlags, lockTimeout, and skipUpdate) and are configurable with the checkout block. For example:
# pipeline.yml
steps:
- label: Hello World!
agents:
queue: kubernetes
plugins:
- kubernetes:
checkout:
cleanFlags: -ffxdq
noSubmodules: false
submoduleCloneConfig: ["key=value", "something=else"]
gitMirrors:
path: /buildkite/git-mirrors # optional with volume
volume:
name: my-special-git-mirrors
persistentVolumeClaim:
claimName: block-pvc
lockTimeout: 600
skipUpdate: true
cloneFlags: -v
To avoid setting checkout on every step, you can use default-checkout-params within values.yaml when deploying the stack. These will apply the settings to every job. For example:
# values.yaml
...
config:
default-checkout-params:
# The available options are the same as `checkout` within `plugin.kubernetes`.
cloneFlags: -v --depth 1
noSubmodules: true
gitMirrors:
volume:
name: host-git-mirrors
hostPath:
path: /var/lib/buildkite/git-mirrors
type: Directory