[scl.org] Image naming for centos-based images

Honza Horak hhorak at redhat.com
Fri Oct 2 10:16:55 UTC 2015


This is a follow-up for the meeting we had yesterday and which there are 
minutes from at:
https://lists.fedoraproject.org/pipermail/env-and-stacks/2015-October/000946.html

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):
   openshift/mysql-55-rhel7
   openshift/mysql-55-centos7

the new versions are located under rhscl (RH internal registry) and 
centos (docker hub) namespaces (variant A):
   rhscl/mariadb-100-rhel7
   centos/mariadb-100-centos7

What we were thinking about yesterday was this scheme (variant B):
   rhscl/mariadb-100-rhel7
   centos/mariadb:10.0

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:
   centos/mysql-56

..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?

Honza




More information about the SCLorg mailing list