Project Description
UYUNI has the ability to synchronize packages from remote locations. But doesn't have a similar solution for container images. This project aims to add a option to synchronize content between to registries using UYUNI, in a similar way we do we packages today.
If a user already has a local registry, uyuni can be used to synchronize content and work in air-gaped environments.
The goal is not to provide a registry "inside" uyuni.
@MC has developed in the past a formula with forms that deploys and configures a container registry from uyuni.
Goal for this Hackweek
Goal: Recurrently synchronize selected content from one registry to another. Code will be committed to a branch in uyuni repository: https://github.com/uyuni-project/uyuni/
Resources
We also have a confluence page at: https://confluence.suse.com/display/~RDiasMateus/Hack+-+Registry
Status
We decided to create a definition of a registry synchronization project, with will have a source and target registry, and then a list of images to be synchronized. For each image we can define a list of tags and/or a regex to be applyed and select wich tags should be copied between the two registries.
With this information we can have a periodic task that will use this information and perform the synchronization using the skopeo tool
Day 1:
- We decided to use skope to perform the operations in the remote registries
- Add command to list all repositories in a registry: https://github.com/rjmateus/skopeo/tree/list_catalog
- Package the latest skopeo version with the patch for list-repos: https://build.opensuse.org/package/show/home:mcalmer/skopeo
- Definition of the database model to save registry synchronization data between remote registries
Day 2:
- Debase design and implementation
- Integration with skopeo. Front-end API to
- Get all images/repos from one registry
- Get all image tags from one registry
- Create a synchronization definition that can be used to synchronize content. Is the data definition of what should be synchronized
- Front-end work started
- XML-API and Json over HTTP API start
Day 3:
- XML-API and Json over HTTP API in place to create and configure a synchronization unit
- UI to manage syncronization units under development
- Task to run the synchronization unit is now generating the yaml file needed for skopeo
- Still missing the call to skopeo to perform the synchronization
Day 4:
- Taskomatic task synchronizing images between registry
- Keep working on front-end support
- Keep working on API support to configure the synchronization task
Day 5:
- Investigate how to deal with architectures.
- Keep working on front-end support
- XML-RPC and JSON over http API are finished, with full CRUD support to configure synchronization task
TODO
- Endpoint to provide the list of available architectures for: registry+image+tag
- Endpoint to provide image details for: registry+image+tag+architecture
- Support definition of the architecture to synchronize for sync project
Looking for hackers with the skills:
This project is part of:
Hack Week 22
Activity
Comments
-
8 months ago by RDiasMateus | Reply
We also have a confluence page at: https://confluence.suse.com/display/~RDiasMateus/Hack+-+Registry Day One status:
- We decided to use skope to perform the operations in the remote registries
- Add command to list all repositories in a registry: https://github.com/rjmateus/skopeo/tree/list_catalog
- Package the latest skopeo version with the patch for list-repos: https://build.opensuse.org/package/show/home:mcalmer/skopeo
- Definition of the database model to save registry synchronization data between remote registries
Similar Projects
Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil
Join the Gitter channel! [https://gitter.im/uy...
Create tool to analyze supportconfig to spot common SUSE Manager / Uyuni issues by cbosdonnat
[comment]: # (Please use the project descriptio...
Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil
Join the Gitter channel! [https://gitter.im/uy...
Create tool to analyze supportconfig to spot common SUSE Manager / Uyuni issues by cbosdonnat
[comment]: # (Please use the project descriptio...