Local Development¶
The supported development environment runs on the host with Go, Docker, Helm, kubectl, and Kind. The repository does not maintain a devcontainer.
Start the stack¶
Add the Harbor ingress name to the host file:
127.0.0.1 core.harbor.domain
Create a Kind cluster, install Traefik and Harbor, build the operator, and deploy it:
make kind-up
To use Cilium and Hubble instead of Kind's default CNI:
make kind-up KIND_CNI=cilium
Iterate¶
After changing controller code, API types, generated assets, RBAC, or chart wiring, rebuild and redeploy with:
make kind-refresh
Apply the sample resources when useful:
make apply-samples
make delete-harbor-crs deletes every custom resource in the harbor.harbor-operator.io API group, not only the checked-in samples.
Reset or stop¶
Reset operator-managed resources and CRDs, then redeploy:
make kind-redeploy
Delete the Kind cluster completely:
make kind-down
Use kind-redeploy when testing first-install behavior or an intentionally incompatible CRD change. Avoid resetting a shared development cluster that another task may be using.
Focused deployment targets¶
The high-level workflow is usually sufficient. For packaging or deployment work, the Makefile also exposes generate-manifests, sync-chart-assets, apply-crds, docker-build, deploy, and undeploy.