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

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

  • Comments

    • StarryWang
      4 months 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
      4 months 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
      4 months 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

    Generic Wrangler Controllers by kjoiner

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


    Rancher QA Blog Space by jamcghee

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


    K3S Control Planes as a service by ademicev0

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


    Deploy Uyuni proxy using Elemental and Fleet by cbosdonnat

    Project Description

    Now that Uyuni proxy ...


    Humidity sensors with dashboard by joachimwerner

    Build a network of ("edge") humidity sensors...


    Make iguana-workflow to support multiple container frontends by oholecek

    Project Description

    Iguana is an attempt ...


    Image generation AI in container using Radeon GPU by tjyrinki_suse

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


    Improve Docker registry listing tool by rbranco

    Project Description

    [regview](https://git...


    Containerfile / Dockerfile generator library by amanzini

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


    Container images for building the Uyuni docs by juliogonzalezgil

    Project Description

    The Uyuni doc require...