Commit Graph

4575 Commits

Author SHA1 Message Date
Charlie Doern
2e4e1bb97c podman machine ssh handling
add the key used in newly initialized machines to the user's known_hosts file. This ensures that golang will be able to ssh into the machine using
podman-remote. Also, remove the /dev/null redirection for podman machine ssh's known_hosts file.

resolves #15347

Signed-off-by: Charlie Doern <cdoern@redhat.com>
Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2022-09-26 18:35:01 -04:00
OpenShift Merge Robot
a0c0971e63 Merge pull request #15933 from vrothberg/fix-15879
auto-update: validate container image
2022-09-26 20:45:30 +02:00
OpenShift Merge Robot
051eb43c69 Merge pull request #15907 from Luap99/compat-net-opts
compat API: network inspect do not show isolate option
2022-09-26 19:21:16 +02:00
Valentin Rothberg
7bc36602f6 auto-update: validate container image
Auto updates using the "registry" policy require container to be created
with a fully-qualified image reference.  Short names are not supported
due the ambiguity of their source registry.  Initially, container
creation errored out for non FQN images but it seems that Podman has
regressed.

Fixes: #15879
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-26 17:07:05 +02:00
OpenShift Merge Robot
a00376111e Merge pull request #15926 from eriksjolund/remove_redundant_log_output
Remove redundant log message
2022-09-26 14:32:34 +02:00
OpenShift Merge Robot
1d63d9f488 Merge pull request #15820 from vrothberg/fix-15800
kube: notifyproxy: fix lost READY message
2022-09-26 13:37:40 +02:00
Erik Sjölund
9261a54694 Remove redundant log message
[NO NEW TESTS NEEDED]

Fixes: https://github.com/containers/podman/issues/15925

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-09-26 06:45:49 +02:00
Paul Holzinger
52656887e1 compat API: network inspect do not show isolate option
We force the isolate option on new newtworks because that is the docker
behavior. However when we inspect them they should not be displayed to
the caller since they have no idea about it and docker-compose throws an
error because of that.

Fixes #15580

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-25 22:10:22 -04:00
OpenShift Merge Robot
40e8bcb848 Merge pull request #15900 from rhatdan/VENDOR
Update vendor of containers(image, common, buildah, storage)
2022-09-23 22:00:37 +02:00
Ed Santiago
f5e83f6849 Fixup Buildah merge
Changes since 2022-09-09:
 - man page: add --skip-unused-stages (buildah 4249)
 - man page: bring in new Note for --cache-ttl (4248)
 - system tests: de-stutter (4205)

 - (internal): in skip() applier: escape asterisk, otherwise
   the "bud with --dns* flags" sed expression never applies.

Signed-off-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-09-23 14:13:12 -04:00
Matthew Heon
6ee582315b Events for containers in pods now include the pod's ID
This allows tools like Cockpit to know that the pod in question
has also been updated, so they can refresh the list of containers
in the pod.

Fixes #15408

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2022-09-22 14:18:56 -04:00
OpenShift Merge Robot
08993516a9 Merge pull request #15895 from dcermak/don-expose-dev-for-privileged
Don't mount /dev/ inside privileged containers running systemd
2022-09-22 19:03:15 +02:00
OpenShift Merge Robot
8bf3535447 Merge pull request #15131 from boaz0/closes_14707
Add support to sig-proxy for podman-remote
2022-09-22 17:06:45 +02:00
Dan Čermák
5a2405ae1b Don't mount /dev/tty* inside privileged containers running systemd
According to https://systemd.io/CONTAINER_INTERFACE/, systemd will try take
control over /dev/ttyN if exported, which can cause conflicts with the host's tty
in privileged containers. Thus we will not expose these to privileged containers
in systemd mode, as this is a bad idea according to systemd's maintainers.

Additionally, this commit adds a bats regression test to check that no /dev/ttyN
are present in a privileged container in systemd mode

This fixes https://github.com/containers/podman/issues/15878

Signed-off-by: Dan Čermák <dcermak@suse.com>
2022-09-22 16:44:26 +02:00
OpenShift Merge Robot
828fae1297 Merge pull request #15870 from idleroamer/podman-save
podman-save: Add signature-policy flag
2022-09-22 15:18:41 +02:00
😎Mostafa Emami
33c31112fb cli: Add signature-policy flag to podman save
Allow overwrite of the signature-policy file
by passing signature-policy flag to podman save command

Closes: https://github.com/containers/podman/issues/15869
Signed-off-by: 😎Mostafa Emami <mustafaemami@gmail.com>
2022-09-21 20:30:23 +02:00
Chris Evich
ba6f84666b Fix a few missed io/ioutil -> os updates
Ref: https://github.com/containers/podman/pull/15871

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-09-21 14:14:55 -04:00
OpenShift Merge Robot
12655484e3 Merge pull request #15871 from cevich/replace_ioutil
Replace deprecated ioutil
2022-09-21 16:12:25 +02:00
OpenShift Merge Robot
a4399ef813 Merge pull request #15837 from rhatdan/format
Improve generate systemd format
2022-09-21 15:08:36 +02:00
OpenShift Merge Robot
ffa73c58a5 Merge pull request #15842 from ashley-cui/seclabels
Add labels to secrets
2022-09-21 13:15:28 +02:00
OpenShift Merge Robot
fea3253271 Merge pull request #15866 from boaz0/closes_15746
Fix podman-remote run --attach stdin to show container ID
2022-09-21 13:12:44 +02:00
Daniel J Walsh
fb3d55006f Improve generate systemd format
Fixes: https://github.com/containers/podman/issues/14897

Followup to #13814

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-09-21 05:10:55 -04:00
Ashley Cui
9bb51e8e96 Add labels to secrets
Add --label/-l label flag to secret create, and show labels when
inspecting secrets. Also allow labeling secrets via libpod/compat API.

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-09-20 16:28:00 -04:00
Boaz Shuster
7cfe0328f1 Add support to sig-proxy for podman-remote
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2022-09-20 22:52:45 +03:00
Boaz Shuster
377773ab5b Fix podman-remote run --attach stdin to show container ID
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2022-09-20 22:42:49 +03:00
Chris Evich
d968f3fe09 Replace deprecated ioutil
Package `io/ioutil` was deprecated in golang 1.16, preventing podman from
building under Fedora 37.  Fortunately, functionality identical
replacements are provided by the packages `io` and `os`.  Replace all
usage of all `io/ioutil` symbols with appropriate substitutions
according to the golang docs.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-09-20 15:34:27 -04:00
OpenShift Merge Robot
5f5d40084c Merge pull request #15072 from rhatdan/context
Add support for podman context as alias to podman system connection
2022-09-19 17:35:43 +02:00
Charlie Doern
049b108845 podman container clone env patch
podman container clone was failing when env variables had multiple `=` in them.
Switch split to splitn

resolves #15836

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-09-16 11:43:26 -04:00
Valentin Rothberg
4a053a821a notifyproxy: don't set a read deadline
The read deadline may yield the READY message to be lost in space.
Instead, use a more Go-idiomatic alternative by using two goroutines;
one reading from the connection, the other watching the container.

[NO NEW TESTS NEEDED] since existing tests are exercising this
functionality already.

Fixes: #15800
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-16 13:45:25 +02:00
Valentin Rothberg
1071098ee2 kube play: sdnotify proxy: use a wait group
Use a wait group to a) wait for all proxies in parallel
                    b) avoid the potential for ABBA deadlocks

[NO NEW TESTS NEEDED] as it is not changing functionality

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-16 13:43:23 +02:00
OpenShift Merge Robot
740223c441 Merge pull request #15812 from sstosh/checkpoint-export-rawinput
remote: checkpoint --export prints a rawInput or an error on remote
2022-09-16 12:26:07 +02:00
Toshiki Sonoda
d63e49a26a remote: checkpoint --export prints a rawInput or an error on remote
This commit fixes `container checkpoint --export`
to print a rawInput or an error.

Fixes: #15743

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-16 16:46:14 +09:00
Valentin Rothberg
884fd4575c Revert "generate systemd: drop ExecStop"
This reverts commit c20abf12c7. In the
absence of `ExecStop` step, systemd will send the stop/kill signals to
the main PID while I asummed that systemd would jump directly to an
ExecStopPost step instead.

Hence revert the commit to let Podman take care of stopping rather than
systemd.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-15 17:56:45 +02:00
Daniel J Walsh
3508bd22fe Add support for podman context as alias to podman system connection
Alias
podman --context -> podman --connection
podman context use -> podman system connection default
podman context rm -> podman system connection rm
podman context create -> podman system connection add
podman context ls ->podman system connection ls
podman context inspect ->podman system connection ls --json (For
specified connections)

Podman context is a hidden command, but can be used for existing scripts
that assume Docker under the covers.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-09-15 08:17:15 -04:00
Valentin Rothberg
c20abf12c7 generate systemd: drop ExecStop
Drop the ExecStop step to simplify the generated units a bit.

The extra ExecStopPost step was added by commit e5c3432944. If the
main PID (i.e., conmon) is killed, systemd will not execute ExecStop
(since the main PID is already down) but only execute the *Post steps.
Credits to the late Ulrich Obergfell for tracking this issue down; he is
missed.

The ExecStop step can safely be dropped since the Post step will take of
stopping (and removing) in any case.

Context: #15686
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-15 13:15:35 +02:00
Giuseppe Scrivano
60ef4ad1c8 stats: cap memory limit to the available memory
Docker compatibility: cap the memory limit reported by the cgroup to
the maximum available memory.

Closes: https://github.com/containers/podman/issues/15765

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-15 09:00:03 +02:00
Giuseppe Scrivano
cf2118eab3 stats: map MaxUsage to the correct value
and make sure it is not set for cgroup v2

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-15 00:51:56 +02:00
Ed Santiago
d4a62ff932 System tests: fix three races
Three tests were running 'container rm' on 'start'ed containers
that might not yet have exited. Fix. Also, tighten up the
tests themselves, to make even more sure that they test
what they're supposed to test.

Discovered, in CI, that 'podman-remote logs --timestamps'
was unimplemented. Thanks to @Luap99 for the fix to that.

Fixes: #15783
Fixes: #15795

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-14 10:49:18 -06:00
OpenShift Merge Robot
a3876c2f85 Merge pull request #15796 from vrothberg/fix-ci
fix ci: update systemd generate unit test
2022-09-14 16:15:09 +02:00
OpenShift Merge Robot
82651e5974 Merge pull request #15769 from dfr/freebsd-stats
Add support for 'podman stats' on FreeBSD
2022-09-14 14:21:30 +02:00
Valentin Rothberg
dd53ee5998 fix ci: update systemd generate unit test
Two PRs have been merged causing a failure in one unit test.
Fix the unit test to turn CI green again.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-14 14:13:33 +02:00
OpenShift Merge Robot
ae20f19351 Merge pull request #15777 from vrothberg/fix-14546
generate systemd: fix pod dependencies
2022-09-14 13:08:04 +02:00
Dan Čermák
0aedddd3b3 [systemd] Ensure that podCreateArgs appear last in ExecStartPre=
When creating a new pod without the `--name` flag, e.g.:
`podman pod create foobar`
it will get the name `foobar` implicitly and this will be recorded as the in the
`podCreateArgs`. Unfortunately, the implicit name only works if it appears as
the **last** argument of the startup command.
With 6e2e3a78ed we started appending the pod
security policy to the startCommand, resulting in the following `ExecStartPre=`
line:
```
/usr/bin/podman pod create --infra-conmon-pidfile %t/pod-foobar.pid --pod-id-file %t/pod-foobar.pod-id foobar --exit-policy=stop
```
This fails to launch, as the `pod create` command expects only a single
non-flag parameter, but it assumes that `exit-policy=stop` is a second and
terminates immediately instead.

This fixes https://github.com/containers/podman/issues/15592

Signed-off-by: Dan Čermák <dcermak@suse.com>
2022-09-14 09:37:02 +02:00
Doug Rabson
1e6da11155 pkg/rctl: Add a simple FreeBSD RCTL library
Initially just supporting just rctl_get_racct for
(*Container).GetContainerStats.

[NO NEW TESTS NEEDED] we are not running any FreeBSD tests in CI

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-09-14 08:29:26 +01:00
OpenShift Merge Robot
ad529f31d8 Merge pull request #15673 from Luap99/template
Fix go template parsing with "\n" in it
2022-09-13 20:26:24 +02:00
Valentin Rothberg
fe04c86a24 generate systemd: fix pod dependencies
Change the dependencies from a pod unit to its associated container
units from `Requires` to `Wants` to prevent the entire pod from
transitioning to a failed state.  Restart policies for individual
containers can be configured separately.

Also make sure that the pod's RunRoot is always set.

Fixes: #14546
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-13 17:25:48 +02:00
OpenShift Merge Robot
d88d74639f Merge pull request #15753 from mheon/fix_15720
Ensure that the DF endpoint updated volume refcount
2022-09-13 13:35:10 +02:00
Valentin Rothberg
0ea5080c91 generate systemd: warn on --restart without --new
Emit a warning to the user when generating a unit with --new on a
container that was created with a custom --restart policy. As shown
in #15284, a custom --restart policy in that case can lead to issues
on system shutdown where systemd attempts to nuke the unit but Podman
keeps on restarting the container.

Fixes: #15284
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-13 10:59:57 +02:00
Paul Holzinger
20eccfc9d0 podman machine inspect: use report.Formatter over Template
Currently the podman command --format output code uses a mix of
report.Formatter and report.Template.

I patched report.Formatter to correctly handle newlines[1]. Since we
cannot fix this with report.Template we have to migrate all users to
report.Formatter. This ensures consistent behavior for all commands.

This change does not change the output, we can add a new test for the
newline bug when the common PR is vendored in.

Also fix a bug where a invlaid template would not cause a exit code > 0,
see the added test case.

[1] https://github.com/containers/common/pull/1146

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-13 10:33:13 +02:00
Matthew Heon
07a8eb8295 Ensure that the DF endpoint updated volume refcount
The field was already exposed already in the `system df` output
so this just required a bit of plumbing and testing.

As part of this, fix `podman systemd df` volume in-use logic.
Previously, volumes were only considered to be in use if the
container using them was running. This does not match Docker's
behavior, where a volume is considered in use as long as a
container exists that uses the volume, even if said container is
not running.

Fixes #15720

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2022-09-12 16:43:24 -04:00