What's New
New Features
-
Declarative Config
Enhanced the current configuration by adding environment variables to overwrite the Harbor configuration including auth, backing store, system permissions and more. This enables full audit capabilities and prevent config drift. This addresses #8076 -
IPv6
Support running Harbor in Kubernetes with harbor-helm on IPv6-only infrastructure. (Tested on Kubernetes version 1.21.0 and Calico version 3.18.1 ) -
Photon Upgrade
Upgrade all Harbor base images from Photon 2.0 to 4.0.- Postgresql upgrade to v13.3.
- Redis upgrade to v6.0.13.
-
Additional Features
- Performance enhancement for concurrent requests.
- Observability Metrics Improvement: Support Jobservice metrics.
- Swagger API Improvement: The APIs of project scanners & webhooks support both project id and name in their path.
- Replication enhancement to support destination namespace flattening.
- Move the legacy APIs to new programming model.
- Golang v1.15.12. Harbor is now built using Golang v1.15.12 as of this release.
- Bump up Trivy 0.17 which adds support for Java JAR/WAR/EAR archives and Go binaries scanning.
Upgrade Considerations
- During upgrade, Harbor will remove the old Postgres data and migrate it to new destination to compatible new version postgres.
Please back up your data before upgrading to v2.3.0.
Deprecations
- The ChartMuseum is scheduled to be deprecated in a future v2.4.0 release. Helm charts can be managed in Harbor through the OCI image registry alongside your container images
Known issues
- If you upgrade from v2.1.x you may see issues sign image using a pre-generated key, more details see #14932, this will be fixed in v2.3.1
- Fixing #14932 will cause another break change in the future: If a key is created when signing the image in v2.3.0, a similar key decoding issue like #14932 will happen if you upgrade from v2.3.0 to v2.3.1
Breaking Changes
- The API to GET artifact under public project such as GET /v2/$public_project/$repo/manifests/$tag, will receive a 401 if the request does not carry "Authorization" header, more details see:
#14711
#14768 - If you need to enable LDAP group related feature, the LDAP Group Filter cannot be empty
Resolved Issues
Contributors
- Will Sun
- He Weiwei
- Wang Yan
- Wenkai Yin(尹文开)
- Daniel Jiang
- stonezdj(Daojun Zhang)
- Qian Deng
- danfengliu
- Ziming
- ChenYu Zhang
- Steven Zou
- Alexis
- rao yunkun
- Moshe Immerman
- Daniel Pacak
- Abigail McCarthy
- Akiros001
- Vadim Bauer
- 疯魔慕薇
- Eike David Lenz