Harbor is currently deployed using docker-compose. It would be nice to deploy it to Kubernetes using Helm, as we do for to all the other Toolforge components.
One blocker is T350687: [harbor] Move harbor data to object storage service
The full list of pre-requisites is:
- Kubernetes cluster 1.10+
- Helm 2.8.0+
- High available ingress controller (Harbor does not manage the external endpoint) - nginx ingress
- High available PostgreSQL (Harbor does not handle the deployment of HA of database) - trove
- High available Redis (Harbor does not handle the deployment of HA of Redis)
- PVC that can be shared across nodes or external object storage
Something to keep in mind here is how to bootstrap the k8s cluster, specially if we move all the images to harbor (from docker-registry), as we end up with a chicken-and-egg problem.