This is a follow-up for the meeting we had yesterday and which there are minutes from at:
One thing that we couldn't solve without any OpenShift representative was naming scheme for the centos images, that are based on SCL packages. Those were originally called (mysql chosen as example):
the new versions are located under rhscl (RH internal registry) and centos (docker hub) namespaces (variant A):
What we were thinking about yesterday was this scheme (variant B):
Reasoning for shorter/simpler naming (variant B):
* we want to hide the fact that image is using SCL, so there is no need to distinguish between SCL and non-SCL images
* there doesn't seem to be a reason to have more variants of one component in the image (if there will be in the future, the name itself should be different)
* image name should be simple for users
* it is a benefit to use the same scheme as on docker hub
* distribution version underneath is usually irrelevant (except some specific cases, like some base libraries; anyway it won't be good enough reason to provide two variants of images just for the sake of different libraries underneath), so the -centos7 suffix is not necessary
However, after talking to Ben from OpenShift there are actually some arguments for using distro version and also version in the name (variant A):
* Ben claimed the distribution underneath is actually important, because of kernel. Once there is centos8-based image, it might or might not run on centos7 machine. Whether this happens in reality or not, we should at least have a backdoor how to fix it.
* version in the image name instead of just tag is handy for the cases where we want to work with :latest tag (used quite a lot in docker world, default behaviour)
* no version in the image name also means that if users don't use tags, they will upgrade to newer version once new version is out (which e.g. in case of mysql 5.6 to 5.7 upgrade can cause troubles).
* since RH internal naming is not expected to be changed, the new suggested variant will be more confusing for users, since they won't understand that rhscl/mysql-56-rhel7 is the same image as centos/mysql:5.6.
* Ben also mentioned users haven't had problems with image naming so far
Since there is no ideal solution, we may consider also some compromise, like:
..and have tags for the distribution (centos7) same as centos base image has, which would be a solution for the case distribution would matter once in the future.
The general rule for the image name in the centos would be:
use <pkgname> for cases where version of the image doesn't care
use <pkgname>-<majorversion> for cases where version of the image matters, where it is expected that users will require a specific version of the image and upgrading to a newer version must be always under their control.
What do you think?