Install Harbor#

Note

Before you begin please make sure you have a namespace to deploy Harbor to. If there is not an existing namespace that makes sense to deploy to please create one for Harbor.

We install Harbor with Helm and the installation is based off the Harbor Installation Documentation. We provide a customized values file with the Helm install command that is stored in our GitHub repository here.

Note

Before installing Harbor there are a few lines in the values files that need to be confirmed for the installation. These lines are:

  • 20 (certSource:)

  • 29 (secretName:)

  • 34 (notarySecretName:)

  • 37 (core:)

  • 38 (notary:)

  • 128 (externalURL:)

  • 363 (harborAdminPassword:)

Create certificates#

We utilize cert-manager to create TLS certificates for the services deployed. If Harbor has not been deployed new certificates need to be created and applied for the Harbor instance as well as Notary which is used to sign the artifacts. Examples of what the kubernetes manifests look like for these certificate requests can be seen in our GitHub repo at this Harbor link or the Notary Link

Install Harbor with Helm#

Now that we’ve confirmed the Helm chart values for Harbor and created valid certificates for Harbor and Notary we can install Harbor with Helm. First we have to make sure that the Harbor Helm repo is included in Helm with the following command:

helm repo add harbor https://helm.goharbor.io

Once the Harbor Helm repository has been added we can go ahead and install Harbor. An example command of how this is accomplished can be seen below:

helm install harbor harbor/harbor --version 1.12.4 -f values.yaml --debug -n <namespace>

Expanding the PVC#

Our Harbor instance utilizes a PVC backed by Rook & CEPH to provide storage for the images pushed to the registry. Currently the PVC is 150GB in size. If this needs to expand administrators can increase the PVC size by following this link to PV resizing directions