Skip to content

sighupio/add-on-registry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shows a black logo in light color mode and a white one in dark color mode.
Registry Add-On Module

Release License Slack

Registry Add-On Module provides all components necessary to deploy a container registry on top of Kubernetes based on the Harbor project for the SIGHUP Distribution (SD).

If you are new to SD please refer to the official documentation on how to get started with SD.

Packages

Registry Add-On Module provides the following packages:

Package Version Description
Harbor v2.14.0 Harbor is an open-source container image registry that secures images with role-based access control, scans images for vulnerabilities, and signs images as trusted.

Click on each package to see its full documentation.

Compatibility

Kubernetes Version Compatibility Notes
1.29.x Conformance tests passed.
1.30.x Conformance tests passed.
1.31.x Conformance tests passed.
1.32.x Conformance tests passed.
1.33.x Conformance tests passed.

The table shows the latest 5 compatible versions. Check the compatibility matrix for the complete list of all supported versions.

Usage

Prerequisites

Tool Version Description
kustomize >=5.8.0 Packages are customized using kustomize. To learn how to create your customization layer with kustomize, please refer to the repository.

All packages in this repository have the following dependencies, for package specific dependencies, please visit the single package's documentation:

Deployment

  1. Download the Kustomize distribution that you want to install:

    ADD_ON_REGISTRY_DISTRIBUTION="full-harbor" # or "harbor-ha"
    ADD_ON_REGISTRY_VERSION=v3.5.0 # check the latest version
    kustomize localize "https://github.com/sighupio/add-on-registry//katalog/harbor/distributions/${ADD_ON_REGISTRY_DISTRIBUTION}?ref=${ADD_ON_REGISTRY_VERSION}" vendor
  2. Inspect the download packages under ./vendor/katalog/registry/harbor.

  3. Define a kustomization.yaml that includes the ./vendor/katalog/registry/harbor/distributions/<your desired distribution> directory as resource.

    resources:
    - ./vendor/katalog/registry/harbor/distributions/<your desired distribution>
  4. Apply the necessary patches. You can see some examples in the examples directory.

  5. To deploy the packages to your cluster, execute:

kustomize build . | kubectl apply -f -

Upgrading

Always check the Upgrade Guide from Harbor. Make sure that the version you are currently running is compatible with the upgrade to the version you want to install.

The Core component of Harbor automatically runs the needed Database migrations, so normally it is sufficient to just deploy the new module version.

You can make sure that the migration runs on a single Pod by:

  1. Scaling down to zero the existing core deployment: kubectl scale deploy -n registry core --replicas 0
  2. Apply the new version, making sure that the replicas of the core deployment is set to 1
  3. When the migration is finished, you can set the desired number of replicas and apply again

Warning

Always backup your data before attempting an upgrade!

Monitoring

The Registry Module also includes metrics and dashboards for Harbor's components.

You can monitor the status of Harbor from the provided Grafana Dashboards. Here are some screenshots:

click on each screenshot for the full screen version

The following set of alerts is included:

Alert Name Summary Description
HarborCoreIsDown Harbor Core Is Down [High]: Check the core Deployment as it may be down
HarborDatabaseIsDown Harbor Database Is Down [High]: Check the connection with the Database
HarborRegistryIsDown Harbor Registry Is Down [High]: Check the registry Deployment as it may be down
HarborRedisIsDown Harbor Redis Is Down [High]: Check the connection with Redis
HarborTrivyIsDown Harbor Trivy Is Down [High]: Check the trivy StatefulSet as it may be down
HarborJobServiceIsDown Harbor JobService Is Down [High]: Check the jobService Deployment as it may be down
ProjectQuotaIsRaisingTheLimit Project Quota Is Raising The Limit [High]: Projects are exhausting the global quota
Harborp99latencyishigherthan10seconds Harbor p99 latency is higher than 10 seconds [Medium]: Registry's response latencies are higher than usual
HarborErrorRateisHigh Harbor Error Rate is High [Medium]: Registry's error rate in responses is higher than usual

Examples

You can check out the examples we prepared about customiizing the Registry Add-On Module:

Example Description
full-harbor Full in-cluster Harbor Installation.
harbor-ha Full Harbor installation in HA, using external Database engine and Redis instances instead of the provided ones.

If you need to migrate your deployment type from full-harbor to harbor-ha, you can read the Harbor Full to HA Migration Guide.

Contributing

Before contributing, please read first the Contributing Guidelines.

Reporting Issues

In case you experience any problem with the module, please open a new issue.

License

This module is open-source and it's released under the following LICENSE