Commit Graph

1973 Commits

Author SHA1 Message Date
cdoern
d28e85741f InfraContainer Rework
InfraContainer should go through the same creation process as regular containers. This change was from the cmd level
down, involving new container CLI opts and specgen creating functions. What now happens is that both container and pod
cli options are populated in cmd and used to create a podSpecgen and a containerSpecgen. The process then goes as follows

FillOutSpecGen (infra) -> MapSpec (podOpts -> infraOpts) -> PodCreate -> MakePod -> createPodOptions -> NewPod -> CompleteSpec (infra) -> MakeContainer -> NewContainer -> newContainer -> AddInfra (to pod state)

Signed-off-by: cdoern <cdoern@redhat.com>
2021-08-26 16:05:16 -04:00
OpenShift Merge Robot
94c37d7d47 Merge pull request #11298 from baude/kubeupdown
teardown play kube
2021-08-26 13:58:44 -04:00
OpenShift Merge Robot
54e0afffe7 Merge pull request #11218 from cdoern/untilBug
logFile until flag issue, negative duration replaced with positive
2021-08-26 10:12:09 -04:00
OpenShift Merge Robot
cb23559270 Merge pull request #11307 from flouthoc/volume-import-external
volumes: Add support for `volume import` which allows importing contents of external tarballs into podman volumes.
2021-08-26 09:33:08 -04:00
flouthoc
d5507704e9 volumes: Add volume import to allow importing contents on tar into volume
Following feature makes sure that users can load contents of external
tarball into the podman volumes.

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-08-26 14:14:14 +05:30
OpenShift Merge Robot
49cfed756f Merge pull request #11103 from jwhonce/wip/bindings
Fix file descriptor leaks in bindings and add test
2021-08-25 14:42:12 -04:00
OpenShift Merge Robot
fefa0b32c7 Merge pull request #11314 from Luap99/expose-ports
podman inspect show exposed ports
2021-08-25 09:29:03 -04:00
Jhon Honce
1dc6d14735 Fix file descriptor leaks and add test
* Add response.Body.Close() where needed to release HTTP
  connections to API server.
* Add tests to ensure no general leaks occur. 100% coverage would be
  required to ensure no leaks on any call.
* Update code comments to be godoc correct

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-08-24 16:36:10 -07:00
Brent Baude
1e176923b1 teardown play kube
add the ability for play kube to tear down based on the yaml used to
play it.  it is indicated by --down in the play kube command.  volumes
are NOT deleted during the teardown.  pods and their containers are
stopped and removed.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-08-24 14:26:14 -05:00
Paul Holzinger
4b2dc48d0b podman inspect show exposed ports
Podman inspect has to show exposed ports to match docker. This requires
storing the exposed ports in the container config.
A exposed port is shown as `"80/tcp": null` while a forwarded port is
shown as `"80/tcp": [{"HostIp": "", "HostPort": "8080" }]`.

Also make sure to add the exposed ports to the new image when the
container is commited.

Fixes #10777

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-24 15:44:26 +02:00
OpenShift Merge Robot
90cf78b199 Merge pull request #11290 from flouthoc/volume-export
volumes: Add support for `volume export` which allows exporting content to  external path.
2021-08-23 14:01:20 -04:00
OpenShift Merge Robot
6a3741598c Merge pull request #11205 from Shivkumar13/shivkumar-tls-fix
Support for --tls-verify flag in podman-run & podman-create
2021-08-23 13:44:19 -04:00
cdoern
d06d285e66 logFile until flag issue
we were adding a negative duration in podman events, causing inputs like
-5s to be correct and 5s to be incorrect.

fixes #11158

Signed-off-by: cdoern <cdoern@redhat.com>
2021-08-23 12:51:56 -04:00
flouthoc
edddfe8c4f volumes: Add support for exporting volumes to external tar
Adds support for transferring data between systems and backing up systems.
Use cases: recover from disasters or move data between machines.

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-08-23 20:42:41 +05:30
OpenShift Merge Robot
d36510702b Merge pull request #11305 from Luap99/fix-11303
Use pod netns with --pod-id-file
2021-08-23 09:40:09 -04:00
OpenShift Merge Robot
1c4b085e54 Merge pull request #11202 from chuanchang/fix_issue_11201
e2e tests: fix overlay: Unknown option vfs.imagestore
2021-08-23 07:41:39 -04:00
Paul Holzinger
feff0d3c4b Use pod netns with --pod-id-file
When `--pod-id-file` is used do not parse the default network namespace
and let specgen handle it instead.
This regression was introduced in commit 7ef3981abe.

Fixes #11303

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-23 11:14:41 +02:00
Shivkumar13
319c85e89e Support for --tls-verify flag in podman run & podman create
Signed-off-by: Shivkumar13 <sople@redhat.com>
2021-08-21 00:54:13 +05:30
Paul Holzinger
7f3f792e28 Fix network aliases with network id
When a network id is used to create a container we translate it to use the
name internally for the db. The network aliases are also stored with the
network name as key so we have to also translate them for the db.

Also removed some outdated skips from the e2e tests.

Fixes #11285

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-20 10:49:33 +02:00
Alex Jia
745f6d949c e2e tests: fix overlay: Unknown option vfs.imagestore
Fixes: https://github.com/containers/podman/issues/11201

The STORAGE_FS is hard code in test/e2e/config_amd64.go, it will
hit error like this "overlay: Unknown option vfs.imagestore" when
setting STORAGE_OPTIONS="--storage-driver overlay". With this patch,
the STORAGE_FS is exported as environment variable, if STORAGE_FS is set,
then set storageOptions to --storage-driver $STORAGE_FS.

Signed-off-by: Alex Jia <chuanchang.jia@gmail.com>
2021-08-20 02:09:12 +08:00
Paul Holzinger
16dfce486b Podman info output plugin information
For docker compat include information about available volume, log and
network drivers which should be listed under the plugins key.

Fixes #11265

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-19 17:33:20 +02:00
OpenShift Merge Robot
fa206e11ca Merge pull request #11180 from baude/buildplaykube
Add ability to build images in play kube
2021-08-18 15:06:19 -04:00
Chris Evich
5c837fe5b0 Skip stats test in CGv1 container environments
These tests were originally enabled in a situation where CI provided
false-positive results.  Now that has been corrected, these tests all
fail under a CGv1 container environment with the error:

```
Error: unable to load cgroup at
/machine.slice/libpod-e4f...086.scope/libpod_parent/libpod-fbd...425:
cgroup deleted
```

This commit simply disables the tests under this specific environment.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-08-18 12:04:06 -04:00
Chris Evich
dc70382886 Fix AVC denials in tests of volume mounts
This becomes a problem on hosts with upgraded policies.  Ref:
https://github.com/containers/podman/issues/10522

Also, made a small change to compose-test setup to reduce runtime.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-08-18 12:04:06 -04:00
Brent Baude
cd40c875ac Add ability to build images in play kube
When playing a kube YAML file, it can be desirable to be able to build
an image on the fly.  This is good for development of an image and YAML
files and somewhat mocks what compose does.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-08-18 09:55:24 -05:00
Brent Baude
bef26f2582 rename oneshot initcontainers to once
after the init containers pr merged, it was suggested to use `once`
instead of `oneshot` containers as it is more aligned with other
terminiology used similarily.

[NO TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-08-12 12:57:15 -05:00
Chris Evich
73a755eecb Fix device tests using ls test files
The `ls` command is not intended for this purpose and may behave in
unexpected ways, leading to false positive or negative results.  Update
the tests to use the purpose built `test` command instead.

Also added several *TODO* comments for possible future testing
enhancements.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-08-11 13:07:00 -04:00
Chris Evich
d0e3b3c3a9 Enhance priv. dev. check
Update test to confirm the negative-case, proving the `--privileged`
"option is required" for this character device to be present in a
container (including rootless).

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-08-11 13:07:00 -04:00
Chris Evich
cfbbc38a5b Workaround host availability of /dev/kvm
This test has been failing for a long time but nobody noticed because CI
doesn't have the device node (nested-VM support was disabled).  After
having enabled nested VM support, tests fail due to some unknown
special-handling of this device.

Fix both problems by removing the `skip()` and switching to a more generic
device which is only present when `--privileged` is used.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-08-11 13:07:00 -04:00
openshift-ci[bot]
1968fdc874 Merge pull request #11173 from jmguzik/pod-ps-until-filter
Add until filter to podman pod ps
2021-08-11 08:38:20 +00:00
Jakub Guzik
ed30ae4a8a Add until filter to podman pod ps
This commit adds additional until filter to podman pod ps (ls/list).
Additionally, it also adds descriptions for podman pod ps filters available
via http api.

Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-08-10 22:10:40 +02:00
openshift-ci[bot]
e136ad485c Merge pull request #10589 from umohnani8/pod-userns
Add support for pod inside of user namespace.
2021-08-10 12:55:52 +00:00
Daniel J Walsh
221b1add74 Add support for pod inside of user namespace.
Add the --userns flag to podman pod create and keep
track of the userns setting that pod was created with
so that all containers created within the pod will inherit
that userns setting.

Specifically we need to be able to launch a pod with
--userns=keep-id

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2021-08-09 15:17:22 -04:00
Chris Evich
bb96da9f1d Skip cgroup-parent test due to frequent flakes
Ref: https://github.com/containers/podman/issues/11165

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-08-09 11:44:49 -04:00
flouthoc
541e83ffe2 personality: Add support for setting execution domain.
Execution domains tell Linux how to map signal numbers into signal actions.
The execution domain system allows Linux to provide limited support for binaries
compiled under other UNIX-like operating systems.

Reference: https://man7.org/linux/man-pages/man2/personality.2.html

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-08-06 15:04:47 +05:30
openshift-ci[bot]
1f0a24437d Merge pull request #11011 from baude/initcontainers
implement init containers in podman
2021-08-05 13:52:15 +00:00
Brent Baude
3c3fa6fac4 implement init containers in podman
this is the first pass at implementing init containers for podman pods.
init containersare made popular by k8s as a way to run setup for pods
before the pods standard containers run.

unlike k8s, we support two styles of init containers: always and
oneshot.  always means the container stays in the pod and starts
whenever a pod is started.  this does not apply to pods restarting.
oneshot means the container runs onetime when the pod starts and then is
removed.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-08-04 14:14:36 -05:00
openshift-ci[bot]
c887018571 Merge pull request #11128 from rhatdan/timezone
Handle timezone on server containers.conf
2021-08-04 18:47:18 +00:00
openshift-ci[bot]
6ff1964300 Merge pull request #11118 from mheon/use_host_resolveconf
Do not add an entry to /etc/hosts with `--net=host`
2021-08-04 15:34:58 +00:00
Matthew Heon
cfcd1e1863 Do not add an entry to /etc/hosts with --net=host
To match Docker's behavior, in the `--net=host` case, we need to
use the host's `/etc/hosts` file, unmodified (without adding an
entry for the container). We will still respect hosts from
`--add-host` but will not make any automatic changes.

Fortuntely, this is strictly a matter of removal and refactoring
as we already base our `/etc/hosts` on the host's version - just
need to remove the code that added entries when net=host was set.

Fixes #10319

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2021-08-04 09:54:23 -04:00
Daniel J Walsh
f40a0e7c81 Handle timezone on server containers.conf
Fixes: https://github.com/containers/podman/issues/11124

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@localhost.localdomain>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-08-04 08:59:19 -04:00
openshift-ci[bot]
3a922cbc99 Merge pull request #11003 from pascomnet/f_stats
stats: add a interval parameter to cli and api stats streaming
2021-08-04 09:56:57 +00:00
openshift-ci[bot]
7d53d88e8c Merge pull request #11068 from giuseppe/drop-dir-cgroup-test
test: move container process to a sub-cgroup
2021-08-03 18:36:00 +00:00
openshift-ci[bot]
bdbc21095a Merge pull request #10828 from cdoern/scp
Created image scp feature
2021-08-02 17:15:54 +00:00
Thomas Weber
34b28d9598 e2e tests: re-enable and fix podman stats tests
Renamed podman pod stats test specs to distinguish them from podman stats tests.
podman stats tests where disabled by a +build flag.
Fix podman stats format test, add negative test.
Fix podman stats cli command, exit non-zero on invalid format string.
Add tests for podman stats interval flag.

Signed-off-by: Thomas Weber <towe75@googlemail.com>
2021-08-02 17:30:53 +02:00
openshift-ci[bot]
4244288716 Merge pull request #11054 from saschagrunert/login-logout-path-tests
Add `--accept-repositories` integration tests
2021-08-01 11:25:17 +00:00
cdoern
1d10ca739f Created scp.go image_scp_test.go and podman-image-scp.1.md
added functionality for image secure copying from local to remote.
Also moved system connection add code around a bit so functions within that file
can be used by scp.

Signed-off-by: cdoern <cdoern@redhat.com>
2021-07-30 17:19:24 -04:00
flouthoc
2a484e782a ps: support the container notation for ps --filter network=...
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-07-30 19:31:05 +05:30
Sascha Grunert
732ece6ae2 Add --accept-repositories integration tests
This adds the integration tests for the repository or namespaced
registry feature introduced in c/common.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2021-07-30 14:53:55 +02:00
flouthoc
2b5d9cd7d0 Fix: healthcheck tests use .Should() instead of .To()
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-07-29 19:53:30 +05:30