• Helm 2.8.0+
  • High available ingress controller (Harbor does not manage the external endpoint)
  • High available PostgreSQL 9.6+ (Harbor does not handle the deployment of HA of database)
  • High available Redis (Harbor does not handle the deployment of HA of Redis)

Most of Harbor’s components are stateless now. So we can simply increase the replica of the pods to make sure the components are distributed to multiple worker nodes, and leverage the “Service” mechanism of K8S to ensure the connectivity across pods.

As for storage layer, it is expected that the user provide high available PostgreSQL, Redis cluster for application data and PVCs or object storage for storing images and charts.

Download Harbor helm chart:

Configure the followings items in , you can also set them as parameters via --set flag during running helm install:

  • Ingress rule Configure the expose.ingress.hosts.core and expose.ingress.hosts.notary.

  • External PostgreSQL Set the database.type to external and fill the information in database.external section.

    Three empty databases should be created manually for Harbor core, Notary server and Notary signer and configure them in the section. Harbor will create tables automatically when starting up.

  • External Redis Set the redis.type to external and fill the information in redis.external section.

    Harbor introduced redis mode support in 2.1.0. You can enable this by setting sentinel_master_set and host to <host_sentinel1>:<port_sentinel1>,<host_sentinel2>:<port_sentinel2>,<host_sentinel3>:<port_sentinel3>.

    You can also refer to this to setup a HAProxy before the Redis to expose a single entry point.

  • Replica Set portal.replicas, core.replicas, jobservice.replicas, registry.replicas, chartmuseum.replicas, notary.server.replicas and notary.signer.replicas to n(n>=2).

Install the Harbor helm chart with a release name my-release:

Helm 2: