Description of problem:
In 3.10, the ose-base image no longer installs git, which included rsync as a dependency. This means that rsync is no longer installed in almost Any container that uses the ose-base image (for example the docker-registry) during creation.
This means that `oc rsync` no longer appropriately uses rsync in the container and instead defaults to remote tar, assuming tar is available in the container.
Version-Release number of selected component (if applicable):
# docker run --user root -it --entrypoint=/bin/bash --rm registry.access.redhat.com/openshift3/ose-docker-registry:v3.10
$ cat /root/buildinfo/Dockerfile-openshift3-ose-base-v3.10.14-10
RUN INSTALL_PKGS=" \
which tar wget hostname sysvinit-tools util-linux \
socat tree findutils lsof bind-utils
# docker run --user root -it --entrypoint=/bin/bash --rm registry.access.redhat.com/openshift3/ose-docker-registry:v3.9
$ cat /root/buildinfo/Dockerfile-openshift3-ose-base-v3.9.33-3
RUN INSTALL_PKGS=" \
which git tar wget hostname sysvinit-tools util-linux bsdtar \
socat ethtool device-mapper iptables tree findutils nmap-ncat e2fsprogs \
xfsprogs lsof device-mapper-persistent-data ceph-common \
# yum deplist git | grep rsync
provider: rsync.x86_64 3.1.2-4.el7
Origin PR: https://github.com/openshift/origin/pull/21176
> I can expand on this more with a comment directly from the customer requesting this:
> * rsync is useful in the docker-registry container for migrating docker-registry's /registry/ folder from the default NFS to GlusterFS when performing migrations.
Registry is owned by Devexp and I'm going to move this bug to them.
> Only core images that need rsync are impacted.
> What images are these? Can Engineering provide a list?
These are all the images mentioned in OCP Container Images table, but each is owned by a different team
that should properly update their Dockerfiles.
> Why exactly don't we want to include one package in a base image?
We want to keep base image as the smallest possible unit that contains ONLY the necessary
common tooling for images. If you want support rsyncing into images (we rarely do in our
images, registry being one exception for now) we don't include it.
Verified with below v3.10.101-4 image:
[root@preserve-310-master-etcd-1 ~]# docker run --user root -it --entrypoint=/bin/bash --rm brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/openshift3/ose-docker-registry:v3.10.101-4
Unable to find image 'brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/openshift3/ose-docker-registry:v3.10.101-4' locally
Trying to pull repository brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/openshift3/ose-docker-registry ...
v3.10.101-4: Pulling from brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/openshift3/ose-docker-registry
c325120ebc8d: Pull complete
c9d123037991: Pull complete
0ba099fe0cc6: Pull complete
ae88a3c3731b: Pull complete
a215afd3f39b: Pull complete
Status: Downloaded newer image for brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/openshift3/ose-docker-registry:v3.10.101-4
[root@91d8ad340628 /]# rpm -qa | grep rsync
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.