$: helm repo add harbor https://helm.goharbor.io
$: helm repo update
$: helm install harbor harbor/harbor -f config.yaml # install and configure
# Note: if `Deployment` is `extensions/v1beta1`, download the chart, apply changes and install it manually
$: helm pull harbor/harbor
$: helm install harbor harbor -f config.yaml
$: helm uninstall harbor
Set expose.type
:
Ingress
: ingress controller must be present. If TLS is disabled, the port must be included in the command when pulling/pushing imagesClusterIP
: services can only be reached within the clusterNodePort
: services are assigned a port on eachNode
LoadBalancer
: use a cloud provider's load balancer
Set externalURL
in protocol://domain[:port]
format:
- if behind the proxy, set it as the URL of proxy
- if
Ingress
, thedomain
should be the value ofexpose.ingress.hosts.core
- if
ClusterIP
, thedomain
should be the value ofexpose.clusterIP.name
- if
NodePort
, thedomain
should be the IP address of aNode
- if
LoadBalancer
, set thedomain
as your own domain name and add a CNAME record to map the domain name to the one you got from the cloud provider
Set persistence.*
:
- disable: data does not survive the termination of a
Pod
Persistent Volume Claim
(PVC
): default; a defaultStorageClass
is needed in the cluster to dynamic provision the volumes; specify anotherStorageClass
in thestorageClass
or setexistingClaim
if you have existingPersistance Volume
s (PV
s) to use- External Storage (only for images and charts): supported external storages are:
azure
,gcs
,s3 swift
andoss
Optionally, set Secret
values:
core.secret
jobservice.secret
registry.secret
notary.secretName
core.secretName