Commit Graph

943 Commits

Author SHA1 Message Date
OpenShift Merge Robot
2178875fa7 Merge pull request #4568 from openSUSE/history
Add support for image name history
2019-11-27 15:31:22 +01:00
Sascha Grunert
63e46cc85c Add support for image name history
We leverage the containers/storage image history tracking feature to
show the previously used image names when running:
`podman images --history`

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-11-27 13:42:06 +01:00
Qi Wang
d9400cced2 Remove containers when pruning a stopped pod.
This path allows pod prune & pod rm to remove stopped containers in the pod before deleting the pod.
PrunePods and RemovePod should be able to remove containers without force removal of stopped pods.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-11-26 13:19:31 -05:00
Valentin Rothberg
a3d13fb286 podman {pod,} rm/stop: add --ignore flag
Add an --ignore flag to podman rm and stop. When specified, Podman will
ignore "no such {container,pod}" errors that occur when a specified
container/pod is not present in the store (anymore).  The motivation
behind adding this flag is to write more robust systemd services using
Podman.  A user might have manually decided to remove a container/pod
which would lead to a failure during the `ExecStop` directive of a
systemd service referencing that container/pod.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-11-25 09:48:13 +01:00
OpenShift Merge Robot
ef240f4cd0 Merge pull request #4512 from kunalkushwaha/prune-filter
image prune command fixed as per docker image prune.
2019-11-22 21:56:12 +01:00
OpenShift Merge Robot
35605c02fd Merge pull request #4528 from haircommander/kube-seccomp
Handle seccomp annotations in play kube
2019-11-22 21:09:05 +01:00
Kunal Kushwaha
5082496cc0 filter added to image pruge command.
filter option accepts two filters.
- label
- until
label supports "label=value" or "label=key=value" format
until supports all golang compatible time/duration formats.

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2019-11-22 17:36:27 +09:00
OpenShift Merge Robot
f3f219a67c Merge pull request #4523 from vrothberg/systemd-improvements
podman rm/stop --cidfile
2019-11-19 13:13:51 +01:00
Peter Hunt
8d585ccfa8 play kube: handle seccomp labels
Add handling of seccomp annotations to play kube at both container and pod levels.
also add a test

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-11-18 10:11:35 -05:00
Valentin Rothberg
061bf77588 podman rm/stop --cidfile
Add a --cidfile flag to podman rm/stop to pass a container ID via a
file.  Podman run already provides the functionaly to store the ID
in a specified file which we now complete with rm/stop.  This allows
for a better life-cycle management in systemd services.  Note that
--cdifile can be specified multiple times to rm/stop.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-11-18 14:44:08 +01:00
OpenShift Merge Robot
51c08f3be6 Merge pull request #4368 from haircommander/pod-annotations
Add pod annotations to container
2019-11-15 19:41:39 +01:00
Kunal Kushwaha
c200583f31 timestamp related functions added
timetype package include functions for calculating
time input in string as one of golang duration format and
calculate as unix timestamp

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2019-11-14 17:16:22 +09:00
Dmitry Smirnov
8d928d525f codespell: spelling corrections
Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
2019-11-13 08:15:00 +11:00
Peter Hunt
f920f93232 Add annotations in play kube
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-11-08 13:53:39 -05:00
Peter Hunt
dcf3c742b1 Split up create config handling of namespaces and security
As it stands, createconfig is a huge struct. This works fine when the only caller is when we create a container with a fully created config. However, if we wish to share code for security and namespace configuration, a single large struct becomes unweildy, as well as difficult to configure with the single createConfigToOCISpec function.

This PR breaks up namespace and security configuration into their own structs, with the eventual goal of allowing the namespace/security fields to be configured by the pod create cli, and allow the infra container to share this with the pod's containers.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-11-07 21:23:23 -05:00
OpenShift Merge Robot
3ec9ee090e Merge pull request #4466 from giuseppe/notmpcopyup
mount: add new options nocopyup|copyup for tmpfs
2019-11-07 21:23:54 +01:00
OpenShift Merge Robot
d919961f62 Merge pull request #4451 from giuseppe/set-mac
podman: add support for specifying MAC
2019-11-07 20:26:14 +01:00
Giuseppe Scrivano
4e5e9dbec2 mount: add new options nocopyup|copyup for tmpfs
add a way to disable tmpcopyup for tmpfs.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-11-07 18:24:02 +01:00
OpenShift Merge Robot
b4a83bf9ae Merge pull request #4447 from rhatdan/runasuser
Add support for RunAsUser and RunAsGroup
2019-11-07 16:05:03 +01:00
OpenShift Merge Robot
a889fd397a Merge pull request #4441 from rhatdan/detach
Allow users to disable detach keys
2019-11-07 15:16:36 +01:00
Daniel J Walsh
a6108f1c19 Add support for RunAsUser and RunAsGroup
Currently podman generate kube does not generate the correct RunAsUser and RunAsGroup
options in the yaml file.  This patch fixes this.

This patch also make `podman play kube` use the RunAdUser and RunAsGroup options if
they are specified in the yaml file.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-11-06 10:35:37 -05:00
OpenShift Merge Robot
581a7ec298 Merge pull request #4459 from giuseppe/fix-renameat-definition
rootless: use SYS_renameat2 instead of __NR_renameat2
2019-11-06 16:28:46 +01:00
Jakub Filak
2497b6c77b podman: add support for specifying MAC
I basically copied and adapted the statements for setting IP.

Closes #1136

Signed-off-by: Jakub Filak <jakub.filak@sap.com>
2019-11-06 16:22:19 +01:00
Giuseppe Scrivano
0a8dcd7112 rootless: provide workaround for missing renameat2
on RHEL 7.7 renameat2 is not implemented for s390x, provide a
workaround.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1768519

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-11-06 15:27:46 +01:00
Giuseppe Scrivano
a114e9059a rootless: use SYS_renameat2 instead of __NR_renameat2
use the correct definition for the syscall number.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-11-06 13:41:15 +01:00
OpenShift Merge Robot
b4b727256c Merge pull request #4370 from rhatdan/seccomp
Set SELinux labels based on the security context in the kube.yaml
2019-11-05 21:52:22 +01:00
Daniel J Walsh
7c623bd41f Allow users to disable detach keys
If user specifies --detach-keys="", this will disable the feature.

Adding define.DefaultDetachKeys to help screen to help identify detach keys.

Updated man pages with additonal information.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-11-05 14:10:43 -05:00
Giuseppe Scrivano
b8514ca6f3 namespaces: by default create cgroupns on cgroups v2
change the default on cgroups v2 and create a new cgroup namespace.

When a cgroup namespace is used, processes inside the namespace are
only able to see cgroup paths relative to the cgroup namespace root
and not have full visibility on all the cgroups present on the
system.

The previous behaviour is maintained on a cgroups v1 host, where a
cgroup namespace is not created by default.

Closes: https://github.com/containers/libpod/issues/4363

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-11-05 17:29:01 +01:00
Daniel J Walsh
65ed819932 Set SELinux labels based on the security context in the kube.yaml
If the kube.yaml specifieds the SELinux type or Level, we need the container
to be launched with the correct label.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-11-05 04:09:01 -05:00
OpenShift Merge Robot
efc7f1557b Merge pull request #4423 from giuseppe/fix-cpu-stats
stats: report correctly CPU usage
2019-11-04 08:40:10 +01:00
Radostin Stoyanov
95bc917b49 runtime: Fix typo
Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2019-11-02 01:44:22 +00:00
Giuseppe Scrivano
2c9e907912 cgroups: read correctly the CPU stats
the two values were incorrectly switched.

Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-11-01 20:51:24 +01:00
OpenShift Merge Robot
69165fa04d Merge pull request #4400 from haircommander/exec-hang
Switch to bufio Reader for exec streams
2019-11-01 14:34:40 +01:00
Giuseppe Scrivano
11750df510 logs: support --tail 0
change the default to -1, so that we can change the semantic of
"--tail 0" to not print any existing log line.

Closes: https://github.com/containers/libpod/issues/4396

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-31 19:55:36 +01:00
OpenShift Merge Robot
3e2d9f8662 Merge pull request #4352 from vrothberg/config-package
refactor libpod config into libpod/config
2019-10-31 19:21:46 +01:00
Valentin Rothberg
11c282ab02 add libpod/config
Refactor the `RuntimeConfig` along with related code from libpod into
libpod/config.  Note that this is a first step of consolidating code
into more coherent packages to make the code more maintainable and less
prone to regressions on the long runs.

Some libpod definitions were moved to `libpod/define` to resolve
circular dependencies.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-10-31 17:42:37 +01:00
Peter Hunt
1df4dba0a0 Switch to bufio Reader for exec streams
There were many situations that made exec act funky with input. pipes didn't work as expected, as well as sending input before the shell opened.
Thinking about it, it seemed as though the issues were because of how os.Stdin buffers (it doesn't). Dropping this input had some weird consequences.
Instead, read from os.Stdin as bufio.Reader, allowing the input to buffer before passing it to the container.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-10-31 11:20:12 -04:00
Valentin Rothberg
dc3e3af256 container start: fix regression when using name
When starting a container by using its name as a reference, we should
print the name instead of the ID.  We regressed on this behaviour
with commit b4124485ae which made it into Podman v1.6.2.

Kudos to openSUSE testing for catching it.  To prevent future
regressions, extend the e2e tests to check the printed container
name/ID.

Reported-by: @sysrich
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-10-31 14:24:41 +01:00
OpenShift Merge Robot
7318b0e8c7 Merge pull request #4369 from baude/golandautocodecorrections
goland autocorrections
2019-10-30 14:29:46 +01:00
Valentin Rothberg
fb5367f295 seccomp: use github.com/seccomp/containers-golang
Use the github.com/seccomp/containers-golang library instead of the
docker package.  The docker package has changed and silently broke
on F31.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-10-30 11:43:29 +01:00
Daniel J Walsh
66c126d6de Set default seccomp.json file for podman play kube
Currently podman play kube is not using the system default seccomp.json file.
This PR will use the default or override location for podman play.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-10-29 13:43:45 -04:00
Nalin Dahyabhai
07195ff09f API: report multiple digests for images
Be prepared to report multiple image digests for images which contain
multiple manifests but, because they continue to have the same set of
layers and the same configuration, are considered to be the same image.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2019-10-29 13:35:19 -04:00
Nalin Dahyabhai
a4a70b4506 bump containers/image to v5.0.0, buildah to v1.11.4
Move to containers/image v5 and containers/buildah to v1.11.4.

Replace an equality check with a type assertion when checking for a
docker.ErrUnauthorizedForCredentials in `podman login`.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2019-10-29 13:35:18 -04:00
baude
91baaee9a8 goland autocorrections
just ran the autocorrect code corrections from goland and it found a few
nits.

Signed-off-by: baude <bbaude@redhat.com>
2019-10-29 12:18:50 -05:00
OpenShift Merge Robot
f17e152818 Merge pull request #4360 from rhatdan/spell
Fix spelling mistakes
2019-10-29 14:59:51 +01:00
OpenShift Merge Robot
815bd568b2 Merge pull request #4187 from baude/dnspluginenable
enable dnsplugin for network create
2019-10-29 14:46:38 +01:00
Daniel J Walsh
797288222b Fix spelling mistakes
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-10-29 03:47:32 -04:00
baude
2f6b8b94e8 enable dnsplugin for network create
when users create a new network and the dnsname plugin can be found by
podman, we will enable container name resolution on the new network.
there is an option to opt *out* as well.

tests cannot be added until we solve the packaging portion of the
dnsname plugin.

Signed-off-by: baude <bbaude@redhat.com>
2019-10-28 12:52:30 -05:00
Daniel J Walsh
94864adb28 Merge pull request #4347 from tylarb/Warn_NoSuchCtr
Log warn instead of error for removing nonexistant container
2019-10-28 13:06:56 -04:00
Daniel J Walsh
f438b2cc09 Merge pull request #4291 from baude/networkcreatecheckbridge
check existing bridge names when creating networks
2019-10-28 13:02:27 -04:00