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

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

  • Comments

    • StarryWang
      about 1 year 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
      about 1 year 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
      about 1 year 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

    Hangar: tool for mirror container images & generate rancher image lists. by StarryWang

    Project Description

    Hangar is a tool for ...


    A CLI for Harvester by mohamed.belgaied

    [comment]: # Harvester does not officially come...


    HAKube UI plugin for Rancher by epenchev

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


    Rancher Upgrader - Upgrades your rancher install via helm, and communicates critical changes from release A to B. by rweir

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


    Predefined app security policy template for NeuVector by feih

    Project Description

    Idea is to predefin...


    Building a container bootloader by flonnegren

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


    Exploring DPDK within containers by paolodepa

    Project Description

    Containerization is h...


    Forklift - Text based GUI utility for dealing with containers by andreabenini

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


    Containerized home mirror by lkocman

    I'm running a simple home mirror, but I managed...