Container Registry Synchronization made easy and fast

Related tags

booster
Overview

๐Ÿš€ booster

Makes synchronization of container images between registries faster.

build status

Requirements

  • Two or more container registries to synchronize
  • Access to their backing storage directory (for now)

Demo

Set up a demo environment with two local Registry containers, each with its booster:

# Start a "primary" registry backed by a local directory
docker run -d \
  -p 5001:5000 \
  -v `pwd`/primary:/var/lib/registry \
  registry:2

# Start a companion booster container for the primary
PRIMARY_BOOSTER_ID=$( \
docker run -d \
  -p 5002:5000 \
  -v `pwd`/primary:/var/lib/registry \
  ghcr.io/moio/booster:latest \
) 


# Start a "replica" registry backed by another local directory
docker run -d \
  -p 5003:5000 \
  -v `pwd`/replica:/var/lib/registry \
  registry:2

# Start a companion booster container for the replica
# Link it to the primary booster
docker run -d \
  -p 5004:5000 \
  -v `pwd`/replica:/var/lib/registry \
  --link $PRIMARY_BOOSTER_ID:primary-booster \
  ghcr.io/moio/booster:latest --primary=http://primary-booster:5000

Load up the primary Registry with an image:

docker pull ubuntu:xenial-20210429
docker image tag ubuntu:xenial-20210429 localhost:5001/ubuntu:xenial-20210429
docker image push localhost:5001/ubuntu:xenial-20210429

Synchronize the replica to the primary's contents via:

curl http://localhost:5004/sync

Then push another image and synchronize again:

docker pull ubuntu:xenial-20210611
docker image tag ubuntu:xenial-20210611 localhost:5001/ubuntu:xenial-20210611
docker image push localhost:5001/ubuntu:xenial-20210611

curl http://localhost:5004/sync

Hacking

Building of release binaries, packages and Docker images is done via goreleaser.

For a snapshot build use:

goreleaser release --skip-publish --snapshot --rm-dist
Issues
Owner
Silvio Moioli
Remote worker at @SUSE, open source for a living!
Silvio Moioli
Explore Docker registries and manipulate Docker images!

L/S tags Utility and API to manipulate (analyze, synchronize and aggregate) images across different Docker registries. Example invocation $ lstags alp

Ivan Ilves 282 Jul 12, 2021
Container Registry Synchronization made easy and fast

?? booster - Makes synchronization of container images between registries faster.

Silvio Moioli 10 Jul 17, 2021
Build and deploy Go applications on Kubernetes

ko: Easy Go Containers ko is a simple, fast container image builder for Go applications. It's ideal for use cases where your image contains a single G

Google 3k Jul 20, 2021
Kubernetes Container Registry

k8scr A kubectl plugin for pushing OCI images through the Kubernetes API server. Quickstart Build kubectl-k8scr make build Move to location in PATH s

Daniel Mangum 78 Jul 25, 2021
The DataStax Kubernetes Operator for Apache Cassandra

Cass Operator The DataStax Kubernetes Operator for Apache Cassandraยฎ. This repository replaces the old datastax/cass-operator for use-cases in the k8s

K8ssandra 25 Jul 19, 2021
Learning about containers and how they work by creating them the hard way

Containers the hard way: Gocker: A mini Docker written in Go It is a set of Linux's operating system primitives that provide the illusion of a contain

Shuveb Hussain 1.2k Jul 23, 2021
A curated list of awesome Kubernetes tools and resources.

Awesome Kubernetes Resources A curated list of awesome Kubernetes tools and resources. Inspired by awesome list and donnemartin/awesome-aws. The Fiery

Tom Huang 806 Jul 22, 2021
Fast docker image distribution plugin for containerd, based on CRFS/stargz

[ โฌ‡๏ธ Download] [ ?? Browse images] [ โ˜ธ Quick Start (Kubernetes)] [ ?? Quick Start (nerdctl)] Stargz Snapshotter Read also introductory blog: Startup C

containerd 361 Jul 23, 2021
A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers

k8s-vault-webhook is a Kubernetes admission webhook which listen for the events related to Kubernetes resources for injecting secret directly from sec

Opstree Container Kit 31 Jul 23, 2021
A tool to dump and restore Prometheus data blocks.

promdump promdump dumps the head and persistent blocks of Prometheus. It supports filtering the persistent blocks by time range. Why This Tool When de

Ivan Sim 70 Jul 19, 2021
A toolbox for debugging docker container and kubernetes with web UI.

A toolbox for debugging Docker container and Kubernetes with visual web UI. You can start the debugging journey on any docker container host! You can

CloudNativer 7 May 18, 2021
k8s-image-swapper Mirror images into your own registry and swap image references automatically.

k8s-image-swapper Mirror images into your own registry and swap image references automatically. k8s-image-swapper is a mutating webhook for Kubernetes

Enrico Stahn 235 Jul 15, 2021
๐Ÿ‘€ A Kubernetes cluster resource sanitizer

Popeye - A Kubernetes Cluster Sanitizer Popeye is a utility that scans live Kubernetes cluster and reports potential issues with deployed resources an

Fernand Galiana 3k Jul 25, 2021
Chronos - A static race detector for the go language

Chronos Chronos is a static race detector for the Go language written in Go. Quick Start: Download the package go get -v github.com/amit-davidson/Chro

Amit Davidson 299 Jul 9, 2021