Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 01d7e64

Browse files
moller2866Sofus Albertsen
and
Sofus Albertsen
authoredApr 1, 2025··
Proposed ADR for image registry (#25)
Co-authored-by: Sofus Albertsen <sofus.albertsen@eficode.com>
1 parent 4eb5d36 commit 01d7e64

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed
 
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
title: "Harbor as Image Registry"
3+
date: "2025-03-31"
4+
---
5+
6+
| status: | date: | decision-makers: |
7+
| --- | --- | --- |
8+
| proposed | 2025-03-31 | Kasper Møller |
9+
10+
## Context and Problem Statement
11+
12+
Containerized applications require a reliable and secure image registry to store and distribute container images. The chosen solution must integrate seamlessly with Kubernetes, provide robust security features, and support scalability for future growth.
13+
14+
The question is: **Which container image registry should we use for our on-premises Kubernetes cluster?**
15+
16+
## Considered Options
17+
18+
* **Harbor:** An open-source, cloud-native registry that provides vulnerability scanning, role-based access control (RBAC), and image replication. It integrates well with Kubernetes and supports OCI-compliant images.
19+
* **JFrog Artifactory:** A universal artifact repository manager that supports container images, binaries, and other artifacts. It offers advanced features like high availability, replication, and enterprise-grade security but comes with licensing costs.
20+
* **Sonatype Nexus:** A repository manager that supports container images and other artifacts. It provides features like vulnerability scanning and integration with CI/CD pipelines. Has almost feature parity with Artifactory, and also comes with licensing costs.
21+
22+
## Decision Outcome
23+
24+
Chosen option: **Harbor**, because it provides a strong balance of features, open-source flexibility, and seamless integration with Kubernetes, while avoiding the licensing costs associated with commercial solutions.
25+
26+
### Consequences
27+
28+
* **Good, because:**
29+
* Harbor is open-source and free to use, reducing costs.
30+
* It provides robust security features, including vulnerability scanning and RBAC, which align with our security requirements.
31+
* It integrates well with Kubernetes and supports image replication, making it suitable for multi-cluster setups.
32+
* Harbor supports Helm charts and OCI-compliant libraries, making it versatile for managing not only container images but also other Kubernetes-related artifacts.
33+
34+
* **Bad, because:**
35+
* Harbor's user interface and feature set may not be as polished or extensive as JFrog Artifactory. User/role section is no way as feature rich and extensible as the competitors, only providing a fixed set of roles with limits in how much you can change.
36+
* It lacks some advanced enterprise features, such as those offered by Artifactory, which might be needed for highly complex environments.
37+
* It only supports OCI and helm repositories as its types of artifacts. If you need more than that, then choose one of JFrog Artifactory or Sonatype Nexus.
38+
39+
### Recommendations
40+
41+
* For organizations that require a cost-effective, Kubernetes-native solution with strong security features and support for Helm charts and OCI-compliant libraries, Harbor is an excellent choice.
42+
* For teams with complex artifact management needs and a budget for licensing, JFrog Artifactory may be a better fit due to its advanced features and broader artifact support.

‎docs/software_ready/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ title: Getting your software ready
66

77
| Problem domain | Description | Reason for importance | Tool recommendation |
88
|:---:|:---:|:---:|:---:|
9-
| Image Registry | A common place to store and fetch images | High availability, secure access control | |
9+
| Image Registry | A common place to store and fetch images | High availability, secure access control | [Harbor](ADRs/harbor_as_image_registry.md) |
1010
| Secret Management | Securely store and manage sensitive information like passwords and API keys | Prevent unauthorized access and data leaks | |
1111
| Ingress Controller / Gateway API | Manage external access to services in the cluster | Enable routing, load balancing, and secure communication | |
1212
| GitOps / Deployment Pipelines | Automate application deployments using Git as the source of truth | Ensure consistency, traceability, and faster deployments | |

0 commit comments

Comments
 (0)
Please sign in to comment.