Hello everyone, We have had a few discussions previously and now have an approved spec [0] and a story [1] (many thanks to James Gu) which will help us to make Airship work with (on) various Linux distributives. One of the first steps towards implementation of the above mentioned specification is an in-progress effort to support OpenSUSE as a base image for Airship components containers. This has started as a set of patches under `airship_suse` Gerrit topic [2] (many thanks to Arun Kant). During the work on this patches, it has become clear that we would need to formalize the way we would build and publish images which are based on different distributives. To help with that I have created a PS [3] to set some rules on image builds & publishing, and left it for a discussion. Discussion [3] has shown, that we have controversial opinions on implementation details. On a latest IRC meeting we have had I've volunteered to move the discussion onto the Airship community discussions mailing list (this one). This has been done: - to reach wider audience, collect more opinions and reasoning both in ML and in PS, - to collectively come to the conclusion and agreement on implementation details, - to reflect decision in a PS [3] and get it merged to the specification [0], - and then use specification [0] as a guidance for implementation ([2] and others in the future) The topic and opinions are the following: Topic Statement: Non-Ubuntu container images repository naming convention is to add a dash separator, following with a distributive flavour, optionally specifying version after dash: ``airshipit/<airship component>-<distributive flavour>[-<version>]``; e.g. ``airshipit/armada-opensuse`` (based on recommendation from `quay.io` technical support). Opinion 1: I think this ended up with using tags because otherwise the overhead of supporting a new distribution base or version is high (create a new quay.io docker registry). So it would be 'airshipit/drydock:ubuntu-latest' or 'airshipit/drydock:ubuntu-<commit>'. I think to maintain that backwards compatibility we can say here that if no distribution base is in the tag, it refers to an Ubuntu based image. Opinion 2: I agree (to use tags), although the general naming scheme that I've seen in the majority of other docker repositories is: <project version #>-<distribution flavor>-<distribution flavor specifics>. So for our case that would end up being airshipit/armada:latest-ubuntu-1604 or airshipit/armada:latest-xenial Opinion 3: IMHO Ubuntu images should have the distro in its image name so it is clear and avoid any confusion when we start have suse, centos images etc. Opinion 4: Should we also mandate that Ubuntu includes it (distro in image name), even if it is default? Just for consistency and transparency (otherwise, looking at the Quay website, you cannot be sure which distro was used). Opinion 5: Creation of another image repository is a one time effort; usage of separate image repositories for different base images is a recommendation from Quay.io tech.support; usage of separate image repositories for different base images allows to easily distinguish between images when trying to `docker pull ...` image without specifying a tag (assuming :latest) Question: would we use ``airshipit/<airship component>-<distributive flavour>[-<version>]:<git tag>`` or ``airshipit/<airship component>:<distributive flavour>[-<version>]-<git tag>``? [0] https://airship-specs.readthedocs.io/en/latest/specs/approved/airship_multi_... [1] https://storyboard.openstack.org/#!/story/2003699 [2] https://review.openstack.org/#/q/topic:airship_suse [3] https://review.openstack.org/#/c/643106/ Thank you. Best regards, -- Roman Gorshunov