# Move the promoter from docker to podman
# Goal
* Get rid of https://github.com/rdo-infra/ci-config/tree/master/ci-scripts/container-push/roles/containers-promote role and integrate it with copy-quay code
* it needs to be bundled with promoter code and no extra sets is needed
* New code should support
* Manifest creation
* Proper tagging should be done seperatly
* Pushing to multiple registeries
* The metadata from the promoter needs to be authoritive
* Get the list of containers from tripleo-common when runned from promoter
* on the promoter the list is generated in /tmp/.....
* If runned alone, the list of containers is obtained from the latest ubi-8-containers-push job
* Hash needs to be forced via promoter known hash
* on the promoter the hash is known and this tool should use force-hash and use the same var
* pushing all containers for a particular release via specific hash
* Keep the containers locally if push fails or hash was wrongly promoted
* option to delete the containers from local
* per container basis
* per release
* per all release
-> Verificaton of all delete operation
* All the actions can be handled via config
* After containers are pushed, loop through one more time
* check if each expected container is available in the pushed registries
* each registry docker.io and quay and $other
* the check for account for x86_64 or ppc/x86_64 manifest
* Validate the push for each registry
* Good logging :)
* Container Manifest push
* for each container
* check for x86 container in RDO registry
* check for PPC container in RDO registry
* if x86 exists but not ppc
* push x86
# Action Items
* take container-push role and add what is missing above : [Amol]
* Each member should learn go
* https://www.gopl.io/
* try copy-quay script with any set of containers on quay or docker
* Change name to copy-containers or containers-
* Job to build copy-quay in CI.
After 30th Mar, 2021
* Come up with the proposal and action items and review it
* Start working on that
# Difference
## Copy-quay
Pros:
- container push validation
- only container promotion, (container-push role: if dlrn is promoted it will skip the container promotion).
- No extra dependency needed. Passing some extra info from python.
- Multiple registry support
- Remote tagging
- No containers pulling
- Good logging
Cons:
- need to replace container-push
- Need to work still in development phase
## Container push
Pro:
- Promote containers (may be multiple registries)
- Manifest push x86_64, ppc etc.
Cons:
- Download containers (took too much time)
- manually remove each container for each release.
- Bad logging
- Can't promote only containers
- No container validation
- No remote tagging