Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
Signed-off-by: Philip Laine <[email protected]>
  • Loading branch information
phillebaba committed Jan 1, 2025
0 parents commit e34d668
Show file tree
Hide file tree
Showing 26 changed files with 885 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/public/
/resources/_gen/
/assets/jsconfig.json
hugo_stats.json
/.hugo_build.lock
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 The Spegel Authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Website

Spegel Hugo website.
56 changes: 56 additions & 0 deletions content/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
toc: false
---

<div class="hx-mt-6 hx-mb-6">
{{< hextra/hero-headline >}}
Stateless cluster local&nbsp;<br class="sm:hx-block hx-hidden" />OCI registry mirror
{{< /hextra/hero-headline >}}
</div>

<div class="hx-mb-12">
{{< hextra/hero-subtitle >}}
Speed up container pulls and minimize downtime with a stateless peer-to-peer&nbsp;<br class="sm:hx-block hx-hidden" />OCI registry mirror for efficient image distribution
{{< /hextra/hero-subtitle >}}
</div>

<!-- <div class="hx-mb-6"> -->
<!-- {{< hextra/hero-button text="Get Started" link="/docs/getting-started/" >}} -->
<!-- </div> -->

![landscape](/images/overview.gif)

<div class="hx-mt-6"></div>

{{< hextra/feature-grid >}}
{{< hextra/feature-card
icon="database"
title="Caching"
subtitle="Optimize image storage and sharing across nodes, reducing external dependencies and network usage."
>}}
{{< hextra/feature-card
icon="arrow-sm-down"
title="Reliability"
subtitle="Minimize downtime by ensuring image delivery even during external registry failures or network issues."
>}}
{{< hextra/feature-card
icon="fast-forward"
title="Speed"
subtitle="Accelerate container image pulls, reducing delays and improving overall cluster performance."
>}}
{{< hextra/feature-card
icon="badge-check"
title="Simplicity"
subtitle="Set up and maintain with ease, thanks to the stateless design and minimal configuration requirements."
>}}
{{< hextra/feature-card
icon="lightning-bolt"
title="Efficiency"
subtitle="Reduce egress traffic and improve resource usage by minimizing external registry calls."
>}}
{{< hextra/feature-card
icon="folder-remove"
title="Stateless"
subtitle="Operates seamlessly without requiring extra storage, keeping your setup simple and efficient."
>}}
{{< /hextra/feature-grid >}}
10 changes: 10 additions & 0 deletions content/docs/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Documentation
next: getting-started
---

Kubernetes does a great job at distributing workloads on multiple nodes. Allowing node failures to occur without affecting uptime. A critical component for this to work is that each node has to be able to pull the workload images before they can start. Each replica running on a node will incur a pull operation. The images may be pulled from geographically close registries within the cloud provider, public registries, or self-hosted registries. This process has a flaw in that each node has to make this round trip separately. Why can't the nodes share the image among themselves?

Spegel enables each node in a Kubernetes cluster to act as a local registry mirror, allowing nodes to share images between themselves. Any image already pulled by a node will be available for any other node in the cluster to pull.

This has the benefit of reducing workload startup times and egress traffic as images will be stored locally within the cluster. On top of that it allows the scheduling of new workloads even when external registries are down.
Loading

0 comments on commit e34d668

Please sign in to comment.