7284 Commits

Author SHA1 Message Date
77d19f847a If possible use the pod name when creating a network
When creating a network we pass down a name which end up in the
K8S_POD_NAME argument to cni plugins. Currently this name is always
filled with the container name, so for pods it is the name of the
infra container, not really what one would expect.

This mess up with the dnsname plugin as it doesn't receive the pod
name in K8S_POD_NAME. To fix this pass the pod name when the container
is part of a pod, otherwise use the container name like before.

Signed-off-by: Alban Bedel <albeu@free.fr>
---
v2: Only call GetPod() when a pod id is set
2020-04-03 02:47:30 +02:00
ccf0e0dd04 Merge pull request #5696 from rhatdan/cc
Fix environment handling from containers.conf
2020-04-03 01:02:57 +02:00
e39cf4cf59 test/e2e/run_volume_test: use unique mount point
For volume and bind mount tests, use the in-container mount point path
that has no common ancestor with any host path (except for root).

This might help to uncover bugs like [1]. Even if not, it seems
lile a good cleanup regardless.

[1] https://github.com/containers/libpod/pull/5676

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-04-02 10:19:40 -07:00
504f9082ee test/e2e/run_volume_test.go: mv dockerfile decl
Move declaration of a dockerfile closer to its use.
Since it is used only once, there's no sense in having it declared
globally.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-04-02 10:17:10 -07:00
ce38be7959 test/e2e/run_volume_test: only create dir once
Remove repeated mountPath directory creation.

 * For the first two hunks it is the same dir ("secrets") that was
   already created before.

 * For the last hunk ("scratchpad") it is not used at all.

Add an empty line after Mkdir for cases where dir is used more than once.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-04-02 10:17:10 -07:00
1f8569f7d7 Fix environment handling from containers.conf
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-02 13:10:08 -04:00
44a515015c podmanV2: implement push
* Implement `podman-push` and `podman-image-push` for the podmanV2
  client.

* Tests for `pkg/bindings` are not possible at the time of writing as we
  don't have a local registry running.

* Implement `/images/{name}/push` compat endpoint. Tests are not
  implemented for this v2 endpoint.  It has been tested manually.

General note: The auth config extraction from the http header is not
implement for push.  Since it's not yet supported for other endpoints
either, I deferred it to future work.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-02 17:01:32 +02:00
e0614367ca pkg/spec.InitFSMounts: optimize
Instead of getting mount options from /proc/self/mountinfo, which is
very costly to read/parse (and can even be unreliable), let's use
statfs(2) to figure out the flags we need.

[v2: move getting default options to pkg/util, make it linux-specific]

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-04-02 07:52:34 -07:00
c3c6a7c823 Merge pull request #5677 from giuseppe/avoid-lock-tty
exec: fix hang if control path is deleted
2020-04-02 16:43:11 +02:00
ffd2d78391 Merge pull request #5516 from cevich/remove_dupe_gate_cross
Cirrus: Remove darwin/windows builds in gate-job
2020-04-02 15:07:03 +02:00
82610d657d Merge pull request #5688 from baude/v2import
podmanv2 import
2020-04-02 14:20:57 +02:00
d172c98714 utils: delete dead code
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-02 09:15:58 +02:00
41fc891173 attach: skip shutdown on errors
skip doing a socket shutdown on an error, since we are not sure the
socket was already closed and we end up using the wrong fd.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-02 09:15:57 +02:00
4c02aa46c2 attach: fix hang if control path is deleted
if the control path file is deleted, libpod hangs waiting for a reader
to open it.  Attempt to open it as non blocking until it returns an
error different than EINTR or EAGAIN.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-02 09:15:56 +02:00
88455fe704 Merge pull request #5687 from TomSweeneyRedHat/dev/tsweeney/fixmaillist
Touch up mailing list address in README.md
2020-04-02 02:27:06 +02:00
a8cde905d5 Merge pull request #5699 from edsantiago/podmanv2-retry
podmanv2-retry - new helper for testing v2
2020-04-02 01:00:06 +02:00
f2c42a3958 pkg/spec.InitFSMounts: fix mount opts in place
... rather than create a new slice and then make the caller
replace the original with the new one.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-04-01 15:30:59 -07:00
79f191cb59 Merge pull request #5697 from baude/v2export
podmanv2 export
2020-04-02 00:13:21 +02:00
bb39051616 podmanv2 export
add ability to export a container to a tarball

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-01 16:02:53 -05:00
0433081983 podmanv2 import
add the ability to import a container image from a container export

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-01 15:56:26 -05:00
0f357be5ae Merge pull request #5686 from baude/v2load
podmanv2 load
2020-04-01 22:54:22 +02:00
108ab380f1 podmanv2-retry - new helper for testing v2
./hack/podmanv2-retry will first invoke $PODMAN_V2 with given
arguments. If that fails with any of the following errors:

    unrecognized command
    unknown flag
    unknown shorthand

...it will run $PODMAN_FALLBACK with the same arguments.
Output and exit code will be those of the final podman command,
although be aware that stderr and stdout are combined.

This is a quick-hack script intended for use in v2 testing, to
test implemented commands without noise from unimplemented ones.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-04-01 14:14:00 -06:00
8500ce6b9a podmanv2 load
enable podman load for v2

add reexec into main

add systemd build flag to v2 makefile

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-01 14:10:57 -05:00
7cbc09971a podmanv2 pod inspect
Add the ability to inspect pod in podmanv2

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-01 15:10:49 -04:00
0a16372035 Merge pull request #5678 from sshnaidm/buildrpm
Fix repos for CentOS 7 RPM build
2020-04-01 20:18:48 +02:00
d534e52427 Merge pull request #5645 from jwhonce/wip/inspect
V2 podman inspect
2020-04-01 19:08:08 +02:00
46e3b2efb8 V2 podman inspect
* Expose podman container inspect
* Expose podman image inspect

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-01 08:07:43 -07:00
82cbebcbea Merge pull request #5656 from baude/v2imagetag
podman v2 image tag and untag
2020-04-01 16:10:10 +02:00
394f1c26d6 Merge pull request #5684 from baude/v2podps
podmanv2 pod ps
2020-04-01 15:39:35 +02:00
19aa4b4c0b Fix repos for CentOS 7 RPM build
CBS repos are gone, so we need a new repos to configure for RPM.

Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
2020-04-01 14:01:46 +03:00
26644d7cb8 podman v2 image tag and untag
add the ability to tag and untag images in podmanv2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-31 19:36:26 -05:00
7def91910c podmanv2 pod ps
add the ability to list pods in podmanv2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-31 19:32:37 -05:00
6d36d05447 Merge pull request #5670 from cevich/new_images
Cirrus: Update VM Images
2020-04-01 00:01:10 +02:00
9f5fcc3565 Merge pull request #5655 from baude/v2hcrun
podmanv2 enable healthcheck run
2020-03-31 23:01:19 +02:00
4d66704211 Merge pull request #5683 from larsks/bug/rpm-systemd-tag
add systemd build tag to podman builds
2020-03-31 22:37:15 +02:00
6e8f6cab60 Merge pull request #5675 from vrothberg/v2-pull
podmanV2: implement pull
2020-03-31 21:12:49 +02:00
688e858740 Touch up mailing list address in README.md
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-03-31 15:02:39 -04:00
56ab9e4cc8 Merge pull request #5649 from jwhonce/wip/varlink
V2 Move varlink home
2020-03-31 20:34:36 +02:00
4e3010d4e7 Merge pull request #5681 from rhatdan/timeout
Switch to using --time as opposed to --timeout to better match Docker.
2020-03-31 16:32:59 +02:00
7d4ab3fd8f Merge pull request #5518 from containers/dependabot/go_modules/github.com/containers/conmon-2.0.12incompatible
Bump github.com/containers/conmon from 2.0.10+incompatible to 2.0.14
2020-03-31 16:30:34 +02:00
9b86835c39 Merge pull request #5674 from containers/dependabot/go_modules/github.com/rootless-containers/rootlesskit-0.9.3
Bump github.com/rootless-containers/rootlesskit from 0.9.2 to 0.9.3
2020-03-31 16:28:09 +02:00
2753df2973 add systemd build tag to podman builds
Without the systemd build tag, podman will fail with the error "No
support for journald logging".

This commit adds the `systemd` build tag explicitly, rather than
relying on `hack/systemd_tag.sh` (because we're building an rpm and
we've explicitly included systemd-devel as a dependency).

Signed-off-by: Lars Kellogg-Stedman <lars@redhat.com>
2020-03-31 09:42:42 -04:00
4841cd1630 Bump github.com/rootless-containers/rootlesskit from 0.9.2 to 0.9.3
Bumps [github.com/rootless-containers/rootlesskit](https://github.com/rootless-containers/rootlesskit) from 0.9.2 to 0.9.3.
- [Release notes](https://github.com/rootless-containers/rootlesskit/releases)
- [Commits](https://github.com/rootless-containers/rootlesskit/compare/v0.9.2...v0.9.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-31 09:05:15 -04:00
3449b27cd1 Switch to using --time as opposed to --timeout to better match Docker.
We need to consistently use --time rather then --timeout throughout the code.
Fix locations where timeout defaults are not set correctly as well.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-31 08:50:32 -04:00
3bdad6fa2a podmanV2: implement pull
Implement pulling images for the v2 client.  What I _really_ don't like
is the fact that we are now having a near identical code clone among
`pkg/domain/infra/abi` and `pkg/api/handlers/libpod`.  Partly because we
don't yet have a higher-level pull function and partly because we have
redudancy among `pkg/domain` and `pkg/api`.  Pull might be a high
outlier but I am concerned already by the potential of introducing more
redundancy.  I'd love to `infra/abi` and `pkg/abi` to really use the
same code in the future.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-31 13:01:27 +02:00
c11c5e180a pkg/spec/initFSMounts: fix
> $ ./bin/podman run -v /tmp:/tmp alpine true; echo $?
> 0
> $ ./bin/podman run -v /tmp:/tmp:ro alpine true; echo $?
> 0
> $ ./bin/podman run -v /tmp:/w0w:ro alpine true; echo $?
> Error: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/tmp\\\" to rootfs \\\"/home/kir/.local/share/containers/storage/overlay/7636ef3650fc91ee4996ccc026532bb3cff7182c0430db662fffb933e0bcadc9/merged\\\" at \\\"/home/kir/.local/share/containers/storage/overlay/7636ef3650fc91ee4996ccc026532bb3cff7182c0430db662fffb933e0bcadc9/merged/w0w\\\" caused \\\"operation not permitted\\\"\"": OCI runtime permission denied error
> 126

The last command is not working because in-container mount point
is used to search for a parent mount in /proc/self/mountinfo.

And yet the following

> $ ./bin/podman run -v /tmp:/run/test:ro alpine true; echo $?
> 0

still works fine! Here's why:

> $ mount | grep -E '/run |/tmp '
> tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
> tmpfs on /tmp type tmpfs (rw,nosuid,nodev,seclabel)

This is the reason why previous commit modified in-container mount
point.

Fixes: 0f5ae3c5af
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-03-31 01:56:10 -07:00
0dfa163a64 Cirrus: Remove darwin/windows builds in gate-job
It's advisable to have the initial gating job execute as quickly as
possible, weeding out simple mistakes early on, when possible.  However,
over time it has bloated to duplicate some more specific testing which
occurs in other tasks.  In this specific case the
`special_testing_cross` task.  Remove these duplicate items from the gate
job to speed things up for everyone.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-30 17:08:48 -04:00
5884225cb0 Cirrus: Update VM Images
Fedora release 31 (Thirty One)
```
Kernel:  5.5.11-200.fc31.x86_64
Cgroups:  cgroup2fs
conmon-2.0.14-1.fc31-x86_64
containernetworking-plugins-0.8.5-1.fc31-x86_64
containers-common-0.1.41-1.fc31-x86_64
container-selinux-2.129.0-1.fc31-noarch
criu-3.13-5.fc31-x86_64
crun-0.13-1.fc31-x86_64
golang-1.13.6-1.fc31-x86_64
libseccomp-2.4.2-2.fc31-x86_64
package runc is not installed
podman-1.8.2-2.fc31-x86_64
skopeo-0.1.41-1.fc31-x86_64
slirp4netns-0.4.0-20.1.dev.gitbbd6f25.fc31-x86_64
```

Ubuntu 18.04.4 LTS
```
Kernel:  5.0.0-1031-gcp
Cgroups:  tmpfs
conmon-2.0.14~1-amd64
containernetworking-plugins-0.8.5~1-amd64
containers-common-0.1.41~1-all
cri-o-runc-1.0.0-3~dev2-amd64
criu-3.13-2ppa1.18.04-amd64
golang-2:1.14-1longsleep1+bionic-all
libseccomp2-2.4.1-0ubuntu0.18.04.2-amd64
podman-1.8.2~1-amd64
skopeo-0.1.41~1-amd64
slirp4netns-0.4.3~1-amd64
```

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-30 17:07:33 -04:00
9c7410d331 Merge pull request #5669 from sshnaidm/cpushare
Revert "Default CPUShares in Inspect are 1024"
2020-03-30 22:01:16 +02:00
19c3b5462f Cirrus: Minor docs update
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-30 16:00:01 -04:00