Thanks for contributing to coder-k8s.
Note
The root README.md is end-user focused. This guide contains local development and contribution workflows.
- Go 1.25+ (
go.modcurrently declares Go 1.25.7) - A Kubernetes cluster (OrbStack, KIND, or any conformant cluster)
kubectlconfigured for your target cluster
# Generate and apply CRDs
make manifests
kubectl apply -f config/crd/bases/
# Run controller locally against your kubeconfig context
GOFLAGS=-mod=vendor go run . --app=controller
# In another terminal, create the sample namespace and apply a sample control plane
kubectl create namespace coder
kubectl apply -f config/samples/coder_v1alpha1_codercontrolplane.yaml
# Verify resource creation
kubectl get codercontrolplanes -ABootstrap a KIND cluster and install CRDs/RBAC (this switches current kubectl context):
make kind-dev-upUseful helpers:
make kind-dev-status
make kind-dev-ctx
make kind-dev-load-image
make kind-dev-k9s
make kind-dev-down| Command | Description |
|---|---|
make build |
Build all packages |
make test |
Run unit + integration tests |
make test-integration |
Run focused controller integration tests |
make manifests |
Generate CRD and RBAC manifests |
make codegen |
Run deepcopy generation |
make docs-reference |
Regenerate API reference docs from Go types |
make docs-check |
Build docs in strict mode (CI-equivalent) |
make verify-vendor |
Verify vendored dependency consistency |
make lint |
Run linter + formatting checks |
make vuln |
Run vulnerability scan |
Run at least:
make verify-vendor
make test
make build
make lint
make docs-check