On 09/29/2016 03:03 PM, Adam Miller wrote:
> Hello all,
>     I was recently discussing some items around docker layered image
> release process in the future with Randy (bowlofeggs) and Patrick
> (puiterwijk). As a side effect of our discussion there were two
> questions I wanted to ask of the Cloud WG:
> 
> 1) Do we want to maintain docker images for every Fedora Release or do
> we want to focus only on latest? (i.e. - do we want to maintain them
> like we do rpms or take a different position)

By "images" do you mean "base image" or "layered images"?

Basically each layered image has a single application for which we are
about the version.  The version of Fedora underneath that is fairly
inconsequential, but major version of the application can be very important.

Take everyone's favorite destruction test case, PostgreSQL.  For
Postgres, replication doesn't necessarily work between major versions,
so once we put out a major version we need to keep it out.

If we have a PostgreSQL-9.5.3 image on Fedora 24 Base out there, then:

A. it's OK to replace it with a PostgreSQL-9.5.4 image on Fedora 24
B. it's OK to replace it with a PostgreSQL-9.5.4 image on Fedora 25
C. it's NOT OK to drop it any only have a PostgreSQL-9.6.1 image available

I have mixed feelings about whether or not we should do (B) as policy.
In cases like this, I usually come down to: what's easier? Freezing the
base image for the major version of the application, or advancing it?

> 
> 2) Do we want to keep around multiple versions of a container?
> 
> For example:
>     If we had the following images:
> 
>     registry.fedoraproject.org/cockpit:0.95-1.23
>     registry.fedoraproject.org/cockpit:0.95-1.24
>     registry.fedoraproject.org/cockpit:0.95-1.25
> 
>     One we release to stable 0.95-1.25, can we delete -1.24 and/or
> -1.23? What kind of retention do we want here? (Note that rpm content
> does not currently maintain a N and N-1 in the repositories)

Just so you know, cockpit has moved to integer version numbers.  Current
release is 119.

If I could have anything I wanted, my answer would be "no, let's not
keep any old versions around."  I certainly don't think that we should
keep any more old versions around than we absolutely have to.

However, there's a problem with that, which is existing Docker practice.
 Devs are taught to use specific versions of containers, and not
":latest", because for many images on Docker Hub "latest" is some
experimental version.  It's going to be hard for us to change that.  And
if they use specific versions in some build script, then they're going
to expect that version to be around when they use the same build script
6 months later.  If we break that regularly, we'll just lose.

One thing we can do to ameliorate that is make sure we name images after
the major version of the app and not after the patch release, i.e. the
PostgreSQL container will be

   registry.fedoraproject.org/postgresql:9.5

Not the way RPM files are named, like:

   registry.fedoraproject.org/postgresql:9.5.3-021

... which means that we don't need to keep older patch releases and
build versions around.

However, that doesn't help us *at all* with "continuous release"
projects like Cockpit which don't have separate major releases, just
incremental releases every week.  I'm not sure how to handle those; how
do we do it for RPMs right now?

-- 
--
Josh Berkus
Project Atomic
Red Hat OSAS
_______________________________________________
cloud mailing list -- cloud@lists.fedoraproject.org
To unsubscribe send an email to cloud-le...@lists.fedoraproject.org

Reply via email to