spiegel_podman/pkg
Valentin Rothberg 5bdd571b1e compat API: allow enforcing short-names resolution to Docker Hub
The Docker-compatible REST API has historically behaved just as the rest
of Podman and Buildah (and the atomic Docker in older RHEL/Fedora) where
`containers-registries.conf` is centrally controlling which registries
a short name may resolve to during pull or local image lookups.  Please
refer to a blog for more details [1].

Docker, however, is only resolving short names to docker.io which has
been reported (see #12320) to break certain clients who rely on this
behavior.  In order to support this scenario, `containers.conf(5)`
received a new option to control whether Podman's compat API resolves
to docker.io only or behaves as before.

Most endpoints allow for directly normalizing parameters that represent
an image.  If set in containers.conf, Podman will then normalize the
references directly to docker.io.  The build endpoint is an outlier
since images are also referenced in Dockerfiles.  The Buildah API,
however, supports specifying a custom `types.SystemContext` in which
we can set a field that enforces short-name resolution to docker.io
in `c/image/pkg/shortnames`.

Notice that this a "hybrid" approach of doing the normalization directly
in the compat endpoints *and* in `pkg/shortnames` by passing a system
context.  Doing such a hybrid approach is neccessary since the compat
and the libpod endpoints share the same `libimage.Runtime` which makes
a global enforcement via the `libimage.Runtime.systemContext`
impossible.  Having two separate runtimes for the compat and the libpod
endpoints seems risky and not generally applicable to all endpoints.

[1] https://www.redhat.com/sysadmin/container-image-short-names

Fixes: #12320
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-11-30 14:22:52 +01:00
..
annotations Spelling 2020-12-22 13:34:31 -05:00
api compat API: allow enforcing short-names resolution to Docker Hub 2021-11-30 14:22:52 +01:00
auth standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
autoupdate vendor c/common@main 2021-09-20 15:07:41 +02:00
bindings e2e tests: enable golint 2021-11-29 08:30:00 -07:00
cgroups cgroups: use SessionBusPrivateNoAutoStartup 2021-10-26 21:05:45 +02:00
channel channel: simplify implementation 2021-05-06 11:51:15 +02:00
checkpoint Use same runtime to restore a container as during checkpointing 2021-11-19 17:46:06 +00:00
copy support container to container copy 2021-07-27 15:32:23 +02:00
criu Support checkpoint/restore with pods 2021-07-27 16:10:44 +02:00
ctime Re-add int64 casts for ctime 2019-07-23 15:43:40 -04:00
domain Only open save output file with WRONLY 2021-11-29 16:41:11 -05:00
env Generate kube should'd add podman default environment vars 2021-09-21 09:03:31 -04:00
errorhandling Handle HTTP 409 error messages properly for Pod actions 2021-11-02 12:28:52 +01:00
hooks [CI:DOCS] oci-hooks.5.md: fixup section in header 2021-10-10 08:16:42 -04:00
inspect bump go module to v3 2021-02-22 09:03:51 +01:00
kubeutils Globally replace http:// with https:// 2021-08-27 06:14:46 -04:00
lookup Enable whitespace linter 2021-02-11 23:01:56 +01:00
machine Merge pull request #12314 from Luap99/machine-wait-sshd 2021-11-18 22:00:18 +01:00
namespaces [NO TESTS NEEDED] Shrink the size of podman-remote 2021-03-29 09:49:45 -04:00
netns standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
network Split libpod/network package 2021-03-15 14:01:52 +01:00
parallel bump go module to v3 2021-02-22 09:03:51 +01:00
ps Ensure podman ps --sync functions 2021-10-06 11:19:32 -04:00
resolvconf bump go module to v3 2021-02-22 09:03:51 +01:00
rootless Merge pull request #12325 from giuseppe/rootless-use-auto-cleanup 2021-11-17 20:20:29 +01:00
rootlessport libpod: deduplicate ports in db 2021-10-27 18:59:56 +02:00
seccomp Spelling 2020-12-22 13:34:31 -05:00
selinux Fix SELinux functions names to not be repetitive 2020-04-23 15:57:34 -04:00
servicereaper standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
signal Fix build for mips architecture follow-up 2021-01-07 15:04:22 +01:00
specgen Support EXPOSE with port ranges 2021-11-20 19:24:21 -05:00
specgenutil Fix netavark error handling and teardown issue 2021-11-22 17:49:55 +01:00
systemd generate systemd: add --start-timeout flag 2021-11-23 09:38:51 +01:00
terminal Fix #11444: remote breaks with stdout redirection 2021-09-13 17:42:48 +03:00
timetype make lint: enable gocritic 2020-01-13 14:27:02 +01:00
trust standardize logrus messages to upper case 2021-09-22 15:29:34 -04:00
util filter: use filepath.Match to maintain consistency with other pattern 2021-11-19 22:07:47 +05:30