Skip to content

Add configurable option to keep tag files in storage backend #23641

Description

@moh2a

Is your feature request related to a problem? Please describe.
Since PR goharbor/community#265, Harbor no longer lands tag files in the storage backend. I rely on a standby native Distribution registry reading from the same S3 backend for disaster recovery. Without tag files in S3, the failover registry cannot resolve images by tag and becomes unusable.

Describe the solution you'd like
Add a configurable option (e.g. registry_store_tags_in_storage: true|false, default false) that allows users to opt into keeping tag files in the storage backend, accepting the GC performance trade-off.

Describe the main design/architecture of your solution
A configuration flag in harbor.yml (or equivalent env variable). When enabled, Harbor preserves the pre-#22507 behavior: tag files are written to the storage backend during push. When disabled (default), current behavior applies (tags not landed in storage).

Describe the development plan you've considered
Conditional check in the push path where the tag file write was removed by #22507. If the flag is enabled, execute the original write. No changes to GC logic needed, the existing tag deletion in GC already handles cleaning up tag files in storage.

Additional context
Another user reported the same need: @jsingleton785 here : goharbor/community#265 (comment). This also aligns with @reasonerjt's suggestion (r2380819844) to provide an option for users who want tags in storage, and with Option 1 from the original proposal.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions