Development
Tooling: Go (version per go.mod), Docker + Buildx, Helm v3, kind, golangci-lint. Codegen tools are installed by make -C deployments/devel install-tools.
Make targets
make build # go build ./...
make cmds # build the five binaries in cmd/
make test # race-enabled unit tests
make generate # CRDs, deepcopy, clientset, listers, informers
make check # golangci-lint + check-generate (the CI gate)
make helm-lint # lint the Helm chart
make bats # BATS integration tests (needs a live cluster)
Prefix any target with docker- to run it in the devel container (requires BUILD_DEVEL_IMAGE=yes).
Local cluster
export KIND_CLUSTER_NAME=kind-dra-1
./demo/clusters/kind/build-dra-driver-gpu.sh # build & load driver image
./demo/clusters/kind/create-cluster.sh # create the cluster
./demo/clusters/kind/install-dra-driver-gpu.sh # helm install
Iterate: edit → rerun the build script → rerun the install script.
GPU-aware variant: demo/clusters/nvkind/. GKE recipes: demo/clusters/gke/.
Tests
- Unit:
make test. - BATS:
tests/bats/— invasive, runs against a real cluster. Readtests/bats/README.mdfirst.
CI
GitHub Actions in .github/workflows/ run lint, codegen check, unit tests, build, chart lint, and CodeQL. End-to-end GPU tests run on Prow / Lambda Cloud — see hack/ci/lambda/e2e-test.sh.