Skip to content

Commit 3978bd0

Browse files
committed
Proposed adr for image regetry
1 parent 7d441fd commit 3978bd0

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
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 but lacks some Kubernetes-specific optimizations.
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.
36+
* It lacks some advanced enterprise features, such as those offered by Artifactory, which might be needed for highly complex environments.
37+
* While Harbor supports Helm charts, its feature set for managing non-container artifacts may not be as comprehensive as 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.
43+
* For simpler use cases or teams already using Sonatype Nexus for other artifacts, Nexus can be considered, though it may lack Kubernetes-specific optimizations and advanced Helm chart support.

docs/software_ready/_index.md

+1-1
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)