Hi, Am Freitag, 16. August 2019, 15:01:25 CEST schrieb Thomas Bechtold:
Hi,
On 8/13/19 1:35 PM, Thorsten Kukuk wrote:
On Tue, Aug 13, Thomas Bechtold wrote:
- is there already some sort of idea/strategy if/how containers for specific packages (like mariadb, rabbitmq, ...) could be maintained for openSUSE:Factory ?
Currently, it works this way: - create a devel project for the container - create a correct *.kiwi file for the container with correct labels - submit to openSUSE:Factory - tell the team, that they should be released as official containers on registry.opensuse.org - everytime, we release a new openSUSE Tumbleweed snapshot, containers, which have changed (base containers, RPMs part of the container, ...), we will release a new version of this container into the registry.
Is it possible (like for RPM packages) to build a container for different distros (eg. SLE_15_SP1 and openSUSE_Leap_15.1) within the same OBS package? Maybe with kiwi profiles and multibuild? Or what's the recommended way to maintain containers for multiple distros? I saw that the CaaSP/kubic containers use a pre-checkin.sh script with sed to create .kiwi files for different distros and keep theses kiwi files in different OBS packages. SES is doing something similar (but with xsl instead of pre-checkin.sh/sed)
kiwi profiles and _multibuild won't help here, with those it's not possible to distinguish different OS versions. You can use obs-service-kiwi_metainfo_helper to get various placeholders for the .kiwi file. If that's not enough, you could roll your own obs service to apply more complex transformations. Keep in mind that OBS services can't change the build dependencies.
- should a container (eg mariadb) be in the devel project (server:database for mariadb) and submitted to openSUSE:Factory ?
For openSUSE Kubic we created devel:kubic:containers Since you need to setup building containers correct in the devel project, I would create a devel project only for building containers and not enable it in many different devel projects.
ok. I guess we create then something in the Cloud:OpenStack: namespace on OBS for the openstack specific containers. But what about a container like mariadb? Where should be the devel project for that container?
- do we have a naming schema for the container packages (eg. mariadb-container or mariadb-image)?
For Kubic we are using kubic-*-image For Tumbleweed we are using tumbleweed-*-image
You should think about the namespace on the registry. If this containers are generic useable, it should go into the registry.opensuse.org/opensuse namespace. If this containers are only useable for your Cloud product, we should maybe discuss a new namespace for this.
And if the containers are generic useable, please make sure, the containers build for x86-64, aarch64, power64le and s390x.
One more question about generic usable containers - do we try to be compatible (basically using the docker-entrypoint.sh scripts from github.com/docker-library) with the "official" dockerhub containers? That's something we might need because some helm charts rely on ENV vars that can be set and are then used in the docker-entrypoint.sh script.
IMO entirely up to the maintainer of the image and the targeted use cases. Cheers, Fabian
Best,
Tom
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org