From 3035adcef1c5c1ad1a2231090d73d5890ed99028 Mon Sep 17 00:00:00 2001
From: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
Date: Wed, 3 Apr 2024 10:25:36 +0200
Subject: [PATCH 1/7] Create harbor-satellite-proposal.md
Signed-off-by: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
---
proposals/harbor-satellite-proposal.md | 73 ++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 proposals/harbor-satellite-proposal.md
diff --git a/proposals/harbor-satellite-proposal.md b/proposals/harbor-satellite-proposal.md
new file mode 100644
index 00000000..1da63bb3
--- /dev/null
+++ b/proposals/harbor-satellite-proposal.md
@@ -0,0 +1,73 @@
+# Proposal: `Harbor Satellite`
+
+Authors: Vadim Bauer / [Vad1mo](https://github.com/Vad1mo), Csaba Almasi, Philip Laine, Roald Brunell / [OneFlyingBanana](https://github.com/OneFlyingBanana), (David Huseby, ...?)
+
+
+
+## Abstract
+
+[A short summary of the proposal.]
+
+Harbor Satellite aims to bring Harbor container registries to edge locations, ensuring consistent, available, and integrity-checked images for edge computing environments. This proposal outlines the development of a stateful, standalone satellite that can function as a primary registry for edge locations and as a fallback option if the central Harbor registry is unavailable.
+
+## Background
+
+[An introduction of the necessary background and the problem being solved by the proposed change.]
+
+In recent years, containers have extended beyond their traditional cloud environments, becoming increasingly prevalent in remote and edge computing contexts. These environments often lack reliable internet connectivity, posing significant challenges in managing and running containerized applications due to difficulties in fetching container images. To address this, the project aims to decentralize container registries, making them more accessible to edge devices. The need for a satellite that can operate independently, store images on disk, and run indefinitely with stored data is crucial for maintaining operations in areas with limited or no internet connectivity.
+
+## Proposal
+
+[A precise statement of the proposed change.]
+
+The proposed change is to develop "Harbor Satellite", an extension to the existing Harbor container registry. This extension will enable the operation of decentralized registries on edge devices.
+
+Harbor Satellite will synchronize with the central Harbor registry, when Internet connectivity permits it, allowing it to receive and store images. This will ensure that even in environments with limited or unreliable internet connectivity, containerized applications can still fetch their required images from the local Harbor Satellite.
+
+Harbor Satellite will also include a toolset enabling the monitoring and management of local decentralized registries.
+
+## Non-Goals
+
+[Anything explicitly not covered by the proposed change.]
+
+?
+
+## Rationale
+
+[A discussion of alternate approaches and the trade offs, advantages, and disadvantages of the specified approach.]
+
+Deploying a complete Harbor instance on edge devices in poor/no coverage areas could prove problematic since :
+
+- Harbor wasn't designed to run on edge devices.(e.g. Multiple processes, no unattended mode)
+- Harbor could behave unexpectedly in poor/no connectivity environments.
+- Managing hundreds or thousands of container registries is not operationally feasible with Harbor
+- (What is the difference to a registry mirror?)
+
+Harbor Satellite aims to be resilient, lightweight and will be able to keep functioning independently from Harbor instances.
+
+## Compatibility
+
+[A discussion of any compatibility issues that need to be considered]
+
+Compatibility with all container registries or edge devices can't be guaranteed.
+
+## Implementation
+
+[A description of the steps in the implementation, who will do them, and when.]
+
+Harbor Satellite will run in a single container and will be divided in the following components :
+
+- **Satellite Core** : pulling/pushing images from/to Harbor (using go-libp2p?) and pulling/pushing images from/to the local registry (using Skopeo and/or Crane?).
+- **Registry Proxy** : storing required OCI artifacts locally (using zotregistry or docker registry?).
+
+
+
+
Harbor Satellite Diagram
+
+## Open issues (if applicable)
+
+[A discussion of issues relating to this proposal for which the author does not know the solution. This section may be omitted if there are none.]
+
+Harbor Satellite aims to manage, coordinate and schedule containers using a Kubernetes cluster.
+
+Harbor Satellite also aims to use and benefit from Spegel, a registry mirror designed to optimize the pulling of container images within a Kubernetes cluster.
From b044bfdcd8fc5126557e2dd50136781656a2c48e Mon Sep 17 00:00:00 2001
From: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
Date: Fri, 5 Apr 2024 09:49:52 +0200
Subject: [PATCH 2/7] Moved RFC to "new" folder
Signed-off-by: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
---
proposals/{ => new}/harbor-satellite-proposal.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename proposals/{ => new}/harbor-satellite-proposal.md (100%)
diff --git a/proposals/harbor-satellite-proposal.md b/proposals/new/harbor-satellite-proposal.md
similarity index 100%
rename from proposals/harbor-satellite-proposal.md
rename to proposals/new/harbor-satellite-proposal.md
From 26dcda6afec1915b7df413fe77e472bfef6b1036 Mon Sep 17 00:00:00 2001
From: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
Date: Fri, 5 Apr 2024 09:55:20 +0200
Subject: [PATCH 3/7] Added diagram for RFC
Signed-off-by: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
---
.../harbor-satellite-diagram.svg | 21 +++++++++++++++++++
proposals/new/harbor-satellite-proposal.md | 2 +-
2 files changed, 22 insertions(+), 1 deletion(-)
create mode 100644 proposals/images/harbor-satellite/harbor-satellite-diagram.svg
diff --git a/proposals/images/harbor-satellite/harbor-satellite-diagram.svg b/proposals/images/harbor-satellite/harbor-satellite-diagram.svg
new file mode 100644
index 00000000..85f3cc48
--- /dev/null
+++ b/proposals/images/harbor-satellite/harbor-satellite-diagram.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+ Harbor Satellite (Single Container) Satellite Core Harbor Ground Control Registration Tunnel Set up Registry & Proxy Edge Cloud Pull Volume Spegel (opt Registry) Container Runtime update Conifg (opt)
\ No newline at end of file
diff --git a/proposals/new/harbor-satellite-proposal.md b/proposals/new/harbor-satellite-proposal.md
index 1da63bb3..cdb86323 100644
--- a/proposals/new/harbor-satellite-proposal.md
+++ b/proposals/new/harbor-satellite-proposal.md
@@ -60,7 +60,7 @@ Harbor Satellite will run in a single container and will be divided in the follo
- **Satellite Core** : pulling/pushing images from/to Harbor (using go-libp2p?) and pulling/pushing images from/to the local registry (using Skopeo and/or Crane?).
- **Registry Proxy** : storing required OCI artifacts locally (using zotregistry or docker registry?).
-
+
Harbor Satellite Diagram
From ddfe8b72e79f33dcfd5ee582dff789ad003aecc3 Mon Sep 17 00:00:00 2001
From: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
Date: Fri, 5 Apr 2024 09:56:59 +0200
Subject: [PATCH 4/7] Update harbor-satellite-proposal.md
Signed-off-by: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
---
proposals/new/harbor-satellite-proposal.md | 18 +-----------------
1 file changed, 1 insertion(+), 17 deletions(-)
diff --git a/proposals/new/harbor-satellite-proposal.md b/proposals/new/harbor-satellite-proposal.md
index cdb86323..3b84ef4f 100644
--- a/proposals/new/harbor-satellite-proposal.md
+++ b/proposals/new/harbor-satellite-proposal.md
@@ -6,20 +6,14 @@ Authors: Vadim Bauer / [Vad1mo](https://github.com/Vad1mo), Csaba Almasi, Philip
## Abstract
-[A short summary of the proposal.]
-
Harbor Satellite aims to bring Harbor container registries to edge locations, ensuring consistent, available, and integrity-checked images for edge computing environments. This proposal outlines the development of a stateful, standalone satellite that can function as a primary registry for edge locations and as a fallback option if the central Harbor registry is unavailable.
## Background
-[An introduction of the necessary background and the problem being solved by the proposed change.]
-
In recent years, containers have extended beyond their traditional cloud environments, becoming increasingly prevalent in remote and edge computing contexts. These environments often lack reliable internet connectivity, posing significant challenges in managing and running containerized applications due to difficulties in fetching container images. To address this, the project aims to decentralize container registries, making them more accessible to edge devices. The need for a satellite that can operate independently, store images on disk, and run indefinitely with stored data is crucial for maintaining operations in areas with limited or no internet connectivity.
## Proposal
-[A precise statement of the proposed change.]
-
The proposed change is to develop "Harbor Satellite", an extension to the existing Harbor container registry. This extension will enable the operation of decentralized registries on edge devices.
Harbor Satellite will synchronize with the central Harbor registry, when Internet connectivity permits it, allowing it to receive and store images. This will ensure that even in environments with limited or unreliable internet connectivity, containerized applications can still fetch their required images from the local Harbor Satellite.
@@ -28,14 +22,10 @@ Harbor Satellite will also include a toolset enabling the monitoring and managem
## Non-Goals
-[Anything explicitly not covered by the proposed change.]
-
-?
+T.B.D.
## Rationale
-[A discussion of alternate approaches and the trade offs, advantages, and disadvantages of the specified approach.]
-
Deploying a complete Harbor instance on edge devices in poor/no coverage areas could prove problematic since :
- Harbor wasn't designed to run on edge devices.(e.g. Multiple processes, no unattended mode)
@@ -47,14 +37,10 @@ Harbor Satellite aims to be resilient, lightweight and will be able to keep func
## Compatibility
-[A discussion of any compatibility issues that need to be considered]
-
Compatibility with all container registries or edge devices can't be guaranteed.
## Implementation
-[A description of the steps in the implementation, who will do them, and when.]
-
Harbor Satellite will run in a single container and will be divided in the following components :
- **Satellite Core** : pulling/pushing images from/to Harbor (using go-libp2p?) and pulling/pushing images from/to the local registry (using Skopeo and/or Crane?).
@@ -66,8 +52,6 @@ Harbor Satellite will run in a single container and will be divided in the follo
## Open issues (if applicable)
-[A discussion of issues relating to this proposal for which the author does not know the solution. This section may be omitted if there are none.]
-
Harbor Satellite aims to manage, coordinate and schedule containers using a Kubernetes cluster.
Harbor Satellite also aims to use and benefit from Spegel, a registry mirror designed to optimize the pulling of container images within a Kubernetes cluster.
From 42b7647935b6bb754df1f3d7260aad0ac9a64011 Mon Sep 17 00:00:00 2001
From: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
Date: Tue, 16 Apr 2024 09:49:37 +0200
Subject: [PATCH 5/7] Update to proposal
Added 3 new use cases
Signed-off-by: Roald Brunell <87445607+OneFlyingBanana@users.noreply.github.com>
---
.../images/harbor-satellite/use-case-1.png | Bin 0 -> 138482 bytes
.../images/harbor-satellite/use-case-2.png | Bin 0 -> 129436 bytes
.../images/harbor-satellite/use-case-3.png | Bin 0 -> 122666 bytes
proposals/new/harbor-satellite-proposal.md | 52 ++++++++++++++----
4 files changed, 42 insertions(+), 10 deletions(-)
create mode 100644 proposals/images/harbor-satellite/use-case-1.png
create mode 100644 proposals/images/harbor-satellite/use-case-2.png
create mode 100644 proposals/images/harbor-satellite/use-case-3.png
diff --git a/proposals/images/harbor-satellite/use-case-1.png b/proposals/images/harbor-satellite/use-case-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea8575846371462171df8cc4db45459bb914e7e7
GIT binary patch
literal 138482
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 4lFQT+v$jun_#ET?x2HIi9fkkDT+GJh^518
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