Project Description

Currently, the way to install Rancher in Air-Gap mode (with personal registry server) is using the rancher-save/load-images.sh script to save container images required by Rancher into tar.gz tarball and load it into the personal registry. These scripts work fine when saving and loading single-arch images.

However, if we need to install Rancher cluster in AMD64 and ARM64 architecture, we need a tool to mirror multi-arch images from public registry to personal registry or save images into tarball and load it into personal registry (when no network connection). So this project is mainly used to mirror/save and load multi-arch container images from the public registry to the personal registry (by using skopeo) and build manifest list (by using docker-buildx). I also implemented validating functions to ensure all container images were mirrored/loaded into the destination registry.


Currently, this project has already finished the mirror/load/save and validation functions, and I am developing the new functions to generate an upgrade image list from KDM JSON data and chart repos during this HackWeek.

This tool is written in Go and the compiled binary file can be found on the GitHub Release page. And this tool also provides container image for mirror images in CI pipeline automatically.

Goal for this Hackweek

Here are the things I'm going to do during HackWeek 22.

  1. Implement the functions of generating an image list from KDM JSON data and chart repos.
  2. Add English documents for this project.

Resources

  1. image-tools: https://github.com/cnrancher/image-tools
  2. skopeo: https://github.com/containers/skopeo
  3. KDM (kontainer-driver-metadata): https://github.com/rancher/kontainer-driver-metadata
  4. Collect and Publish Images to your Private Registry: https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/publish-images

Looking for hackers with the skills:

rancher containers skopeo kdm

This project is part of:

Hack Week 22

Activity

  • almost 2 years ago: danishprakash joined this project.
  • almost 2 years ago: paulgonin liked this project.
  • almost 2 years ago: danishprakash liked this project.
  • almost 2 years ago: StarryWang started this project.
  • almost 2 years ago: StarryWang liked this project.
  • almost 2 years ago: StarryWang added keyword "rancher" to this project.
  • almost 2 years ago: StarryWang added keyword "containers" to this project.
  • almost 2 years ago: StarryWang added keyword "skopeo" to this project.
  • almost 2 years ago: StarryWang added keyword "kdm" to this project.
  • almost 2 years ago: StarryWang originated this project.

  • Comments

    • StarryWang
      almost 2 years ago by StarryWang | Reply

      The generate-list sub-command is available in the v1.4.0-rc2

      I'll make a final release when it becomes stable after this hackweek.


      English docs have been supplemented by @danishprakash .

    • StarryWang
      almost 2 years ago by StarryWang | Reply

      Name needed: the name of this project image-tools is not good enough, can someone help me with a more interesting name of this project?

    • StarryWang
      almost 2 years ago by StarryWang | Reply

      Just released 1.4.0-rc3 and made some improvements on the generate-list sub-command, this HackWeek project can be marked as finished.

    Similar Projects

    Enabling Rancher as an OIDC Provider by rcabello

    Description

    Kubernetes supports OpenID Conn...


    CVE portal for SUSE Rancher products by gmacedo

    Description

    Currently it's a bit difficul...


    Cluster API Provider for Harvester by rcase

    [comment]: # (Please use the project descriptio...


    Rancher/k8s Trouble-Maker by tonyhansen

    [comment]: # (Please use the project descriptio...


    Integrate Backstage with Rancher Manager by nwmacd

    Description

    Backstage (backstage.io) is a...


    SUSE AI Meets the Game Board by moio

    Use [tabletopgames.ai](https://tabletopgames.ai...


    Technical talks at universities by agamez

    Description

    This project aims to empower ...


    Improve Development Environment on Uyuni by mbussolotto

    Description

    Currently create a dev environm...


    Enable the containerized Uyuni server to run on different host OS by j_renner

    Description

    The Uyuni server is provided ...


    ClusterOps - Easily install and manage your personal kubernetes cluster by andreabenini

    Description

    ClusterOps is a Kubernetes ...