opencontainers / umoci

umoci modifies Open Container images
https://umo.ci
Apache License 2.0
738 stars 98 forks source link

no variant is set on arm. #313

Open adrianschroeter opened 4 years ago

adrianschroeter commented 4 years ago

arm platform should have a govariant beside goarch and goos. Without that we "overwrite" armv6 and armv7 architecture containers in our registry, because goarch is always "arm".

adrianschroeter commented 4 years ago

kiwi from @schaefi is calling umoci this way to create a base container ... is there an option missing?

[  285s] [ DEBUG   ]: 15:06:35 | EXEC: [umoci repack --history.comment=openSUSE Tumbleweed 20200205 Base Container --history.created_by=KIWI 9.19.10 --history.author=Fabian Vogt <fvogt@suse.com> --history.created 2020-02-06T15:06:30+00:00 --image /tmp/kiwi_oci_dir.emheujo9/oci_layout:base_layer /tmp/kiwi_oci_root_dir.1mwlli35]
[  293s] [ DEBUG   ]: 15:06:43 | EXEC: [umoci config --author=Fabian Vogt <fvogt@suse.com> --config.cmd=/bin/bash --config.label=org.openbuildservice.disturl=obs://build.opensuse.org/home:adrianSuSE:branches:openSUSE:Factory:ARM/images/828d5d0c2443ca8e4074531064c09ce1-opensuse-tumbleweed-image:docker --config.label=org.opencontainers.image.created=2020-02-06T15:05:06.900947580Z --config.label=org.opencontainers.image.description=Image containing a minimal environment for containers based on openSUSE Tumbleweed. --config.label=org.opencontainers.image.title=openSUSE Tumbleweed Base Container --config.label=org.opencontainers.image.url=https://www.opensuse.org/ --config.label=org.opencontainers.image.vendor=openSUSE Project --config.label=org.opencontainers.image.version=20200205.10.2 --config.label=org.opensuse.base.created=2020-02-06T15:05:06.900947580Z --config.label=org.opensuse.base.description=Image containing a minimal environment for containers based on openSUSE Tumbleweed. --config.label=org.opensuse.base.disturl=obs://build.opensuse.org/home:adrianSuSE:branches:openSUSE:Factory:ARM/images/828d5d0c2443ca8e4074531064c09ce1-opensuse-tumbleweed-image:docker --config.label=org.opensuse.base.reference=registry.opensuse.org/opensuse/tumbleweed:20200205.10.2 --config.label=org.opensuse.base.title=openSUSE Tumbleweed Base Container --config.label=org.opensuse.base.url=https://www.opensuse.org/ --config.label=org.opensuse.base.vendor=openSUSE Project --config.label=org.opensuse.base.version=20200205.10.2 --config.label=org.opensuse.reference=registry.opensuse.org/opensuse/tumbleweed:20200205.10.2 --no-history --image /tmp/kiwi_oci_dir.emheujo9/oci_layout:base_layer --tag latest --created 2020-02-06T15:06:30+00:00]
schaefi commented 4 years ago

Hi,

please keep David in the loop. A lot of the container coding was done by him

Thanks

On Thu, Feb 06, Adrian Schröter wrote:

kiwi from [1]@schaefi is calling umoci this way to create a base container ... is there an option missing?

[ 285s] [ DEBUG ]: 15:06:35 | EXEC: [umoci repack --history.comment=openSUSE Tumbleweed 20200205 Base Container --history.created_by=KIWI 9.19.10 --history.author=Fabian Vogt [2]fvogt@suse.com --history.created 2020-02-06T15:06:30+00:00 --image /tmp/kiwi_oci_dir.emheujo9/oci_layout:base_layer /tmp/kiwi_oci_root_dir.1mwlli35] [ 293s] [ DEBUG ]: 15:06:43 | EXEC: [umoci config --author=Fabian Vogt [3]fvogt@suse.com --config.cmd=/bin/bash --config.label=org.openbuildservice.disturl=obs://build.opensuse.org/ho me:adrianSuSE:branches:openSUSE:Factory:ARM/images/828d5d0c2443ca8e4074 531064c09ce1-opensuse-tumbleweed-image:docker --config.label=org.opencontainers.image.created=2020-02-06T15:05:06.900 947580Z --config.label=org.opencontainers.image.description=Image containing a minimal environment for containers based on openSUSE Tumbleweed. --config.label=org.opencontainers.image.title=openSUSE Tumbleweed Base Container --config.label=org.opencontainers.image.url=https://www.opensuse.org/ --config.label=org.opencontainers.image.vendor=openSUSE Project --config.label=org.opencontainers.image.version=20200205.10.2 --config.label=org.opensuse.base.created=2020-02-06T15:05:06.900947580Z --config.label=org.opensuse.base.description=Image containing a minimal environment for containers based on openSUSE Tumbleweed. --config.label=org.opensuse.base.disturl=obs://build.opensuse.org/home: adrianSuSE:branches:openSUSE:Factory:ARM/images/828d5d0c2443ca8e4074531 064c09ce1-opensuse-tumbleweed-image:docker --config.label=org.opensuse.base.reference=registry.opensuse.org/opensu se/tumbleweed:20200205.10.2 --config.label=org.opensuse.base.title=openSUSE Tumbleweed Base Container --config.label=org.opensuse.base.url=https://www.opensuse.org/ --config.label=org.opensuse.base.vendor=openSUSE Project --config.label=org.opensuse.base.version=20200205.10.2 --config.label=org.opensuse.reference=registry.opensuse.org/opensuse/tu mbleweed:20200205.10.2 --no-history --image /tmp/kiwi_oci_dir.emheujo9/oci_layout:base_layer --tag latest --created 2020-02-06T15:06:30+00:00]

— You are receiving this because you were mentioned. Reply to this email directly, [4]view it on GitHub, or [5]unsubscribe.

References

  1. https://github.com/schaefi
  2. mailto:fvogt@suse.com
  3. mailto:fvogt@suse.com
  4. https://github.com/openSUSE/umoci/issues/313?email_source=notifications&email_token=AAG6W2WV5YMSBRIYM7HQCDLRBQWORA5CNFSM4KQ7G2JKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEK7WLSY#issuecomment-582968779
  5. https://github.com/notifications/unsubscribe-auth/AAG6W2VYCVUOQPOWTFM7GADRBQWORANCNFSM4KQ7G2JA

-- Public Key available via: https://keybase.io/marcus_schaefer/key.asc keybase search marcus_schaefer

Marcus Schäfer (Res. & Dev.) SUSE Software Solutions Germany GmbH Tel: 0911-740 53 0 Maxfeldstrasse 5 FAX: 0911-740 53 479 D-90409 Nürnberg HRB: 21284 (AG Nürnberg) Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton http://www.suse.de

cyphar commented 4 years ago

umoci has very ... limited ... support for architecture specification because the entire design of architecture handling in OCI was being redesigned when I first started working on umoci.

Taking a quick look, the main annoyance is that Go doesn't expose the ARM variant at runtime like it does runtime.GOARCH. We could inject the variant at build-time (runtime.GOARCH is also effectively a build-time value) because there's a GOARM environment variable defined during build (which we can get with go env GOARM), but I'm not sure if that's the right thing to do for ARM variants.

ggardet commented 4 years ago

Please note we would need to set v8 variant for aarch64/arm64. See: https://bugzilla.opensuse.org/show_bug.cgi?id=1170063 Skopeo now has --override-variant option https://github.com/containers/skopeo/pull/793

cyphar commented 4 years ago

While I'm not a huge fan of endless command-line options to specify things that should be done automatically, having a way to configure some of these things could be useful for solving some of the other open issues in umoci (such as not being able to add annotations to arbitrary descriptors...).