aboutsummaryrefslogtreecommitdiff
path: root/test/system
Commit message (Collapse)AuthorAge
* fix hang with podman events file loggerPaul Holzinger2022-09-12
| | | | | | | | | | | | | podman --events-backend file events --stream=false should never hang. The problem is that our tail library will wait for the file to be created which makes sense when we do not run with --stream=false. To fix this we can just always create the file when the logger is initialized. This would also help to report errors early on in case the file is not accessible. Fixes part one from #15688 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
* Fix stuttersDaniel J Walsh2022-09-10
| | | | | | | | | | | | | | Podman adds an Error: to every error message. So starting an error message with "error" ends up being reported to the user as Error: error ... This patch removes the stutter. Also ioutil.ReadFile errors report the Path, so wrapping the err message with the path causes a stutter. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #15687 from vrothberg/RUN-1639OpenShift Merge Robot2022-09-09
|\ | | | | health check: add on-failure actions
| * health check: add on-failure actionsValentin Rothberg2022-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For systems that have extreme robustness requirements (edge devices, particularly those in difficult to access environments), it is important that applications continue running in all circumstances. When the application fails, Podman must restart it automatically to provide this robustness. Otherwise, these devices may require customer IT to physically gain access to restart, which can be prohibitively difficult. Add a new `--on-failure` flag that supports four actions: - **none**: Take no action. - **kill**: Kill the container. - **restart**: Restart the container. Do not combine the `restart` action with the `--restart` flag. When running inside of a systemd unit, consider using the `kill` or `stop` action instead to make use of systemd's restart policy. - **stop**: Stop the container. To remain backwards compatible, **none** is the default action. Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
* | Merge pull request #15462 from edsantiago/system_tests_for_updateOpenShift Merge Robot2022-09-09
|\ \ | | | | | | system tests for update
| * | System tests for podman-updateEd Santiago2022-09-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The e2e tests are incomplete, because they're just too hard for any human to read/maintain. This defines tests in a table, so they're easily reviewed and updated. This makes it very easy to see which options are actually tested and which are not, under root/rootless cgroups v1/v2. Signed-off-by: Ed Santiago <santiago@redhat.com>
* | | Merge pull request #15695 from Luap99/update-buildahOpenShift Merge Robot2022-09-09
|\ \ \ | | | | | | | | Update buildah and c/common to latest
| * | | Fixes for vendoring BuildahEd Santiago2022-09-09
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit was automatically cherry-picked by buildah-vendor-treadmill v0.3 from the buildah vendor treadmill PR, #13808 Changes since 2022-08-16: - buildah 4139: minor line-number changes to the diff file because helpers.bash got edited - buildah 4190: skip the new test if remote - buildah 4195: add --retry / --retry-delay - changes to deal with vendoring gomega, units - changes to the podman login error message in system test Signed-off-by: Paul Holzinger <pholzing@redhat.com>
* / | Add --config for Docker compatibilityDaniel J Walsh2022-09-08
|/ / | | | | | | | | | | Fixes: https://github.com/containers/podman/issues/14767 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | proper --debug/-D flag supportPaul Holzinger2022-09-07
| | | | | | | | | | | | | | | | | | | | | | --debug should not be a global flag, you can only use this as podman --debug never podman ps --debug. This matches docker and allows us to add the shorthand "D" since they now no longer conflict. Fixes changes from commit 2d30b4dee596 which claims to add -D but never did. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
* | Merge pull request #15663 from sstosh/fix-proxy-testOpenShift Merge Robot2022-09-07
|\ \ | | | | | | system tests: fix systemd tests in proxy environment
| * | system tests: fix systemd tests in proxy environmentToshiki Sonoda2022-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | Under proxy environment, we need to add proxy environment variables. Related to: #15639 Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
* | | Merge pull request #15633 from thediveo/eventsOpenShift Merge Robot2022-09-07
|\ \ \ | |/ / |/| | Closes #15617: emit container labels for container exited and exec died events
| * | emit container labels also for container exited and exec died eventsHarald Albrecht2022-09-06
| | | | | | | | | | | | | | | | | | | | | - adds unit test for container labels on container die event - implements #15617 Signed-off-by: Harald Albrecht <harald.albrecht@gmx.net>
* | | Merge pull request #15547 from vrothberg/RUN-1606OpenShift Merge Robot2022-09-06
|\ \ \ | |/ / |/| | Support auto updates for Kubernetes workloads
| * | kube play: support auto updates and rollbacksValentin Rothberg2022-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add auto-update support to `podman kube play`. Auto-update policies can be configured for: * the entire pod via the `io.containers.autoupdate` annotation * a specific container via the `io.containers.autoupdate/$name` annotation To make use of rollbacks, the `io.containers.sdnotify` policy should be set to `container` such that the workload running _inside_ the container can send the READY message via the NOTIFY_SOCKET once ready. For further details on auto updates and rollbacks, please refer to the specific article [1]. Since auto updates and rollbacks bases on Podman's systemd integration, the k8s YAML must be executed in the `podman-kube@` systemd template. For further details on how to run k8s YAML in systemd via Podman, please refer to the specific article [2]. An examplary k8s YAML may look as follows: ```YAML apiVersion: v1 kind: Pod metadata: annotations: io.containers.autoupdate: "local" io.containers.autoupdate/b: "registry" labels: app: test name: test_pod spec: containers: - command: - top image: alpine name: a - command: - top image: alpine name: b ``` [1] https://www.redhat.com/sysadmin/podman-auto-updates-rollbacks [2] https://www.redhat.com/sysadmin/kubernetes-workloads-podman-systemd Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
* | | system tests: fix some tests in proxy environmentTsubasa Watanabe2022-09-06
|/ / | | | | | | | | | | | | | | Some system tests in `255-auto-update.bats` and `500-networking.bats` fail under proxy environment. This PR fixes this problem. Signed-off-by: Tsubasa Watanabe <w.tsubasa@fujitsu.com>
* / CI: disable flaking test on ubuntuEd Santiago2022-09-01
|/ | | | | | | | | | | | | | | | | | | | | | See https://github.com/containers/conmon/pull/352 As of a few days ago, Ubuntu still hadn't built a fixed conmon. Just skip the test until we get a fixed Ubuntu or until we figure out a better solution to the test-something-RHEL8ish problem. UPDATE: WEIRD: this 'skip' triggered a baffling failure on Ubuntu: the "Kubernetes only allows 63 characters" warning message stopped appearing, on Ubuntu only, which then caused the kube-generate tests to fail because they actually checked for that. The message doesn't appear because generate-kube is no longer spitting out a line for org.opencontainers.image.base.digest/CONTAINER. (Why this line is gone, I don't know, and choose not to investigate). Solution: stop checking for the kube-63 warning. It's just not that important. Signed-off-by: Ed Santiago <santiago@redhat.com>
* podman rmi: emit untag eventsValentin Rothberg2022-08-27
| | | | | | | Emit untag events for each tag when removing an image. Fixes: #15485 Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
* System test cleanupEd Santiago2022-08-24
| | | | | | Misspellings, broken code, missing tests Signed-off-by: Ed Santiago <santiago@redhat.com>
* Fix documentation of use of tcp connectionsDaniel J Walsh2022-08-23
| | | | | | Fixes: https://github.com/containers/podman/issues/15430 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #15426 from nicrowe00/14955OpenShift Merge Robot2022-08-23
|\ | | | | podman kube play/down --read from URL
| * podman kube play/down --read from URLNiall Crowe2022-08-23
| | | | | | | | | | | | | | | | | | | | | | | | | | `podman kube play` can create pods and containers from YAML read from a URL poiniting to a YAML file. For example: `podman kube play https://example.com/demo.yml`. `podman kube down` can also teardown pods and containers created from that YAML file by also reading YAML from a URL, provided the YAML file the URL points to has not been changed or altered since it was used to create pods and containers Closes #14955 Signed-off-by: Niall Crowe <nicrowe@redhat.com>
* | Warning messages are printed and ignored if we use an unsupported optionToshiki Sonoda2022-08-23
|/ | | | | | | | | | | | | | | | | | | When an unsupported limit on cgroups V1 rootless systems is requested, podman prints an warning message and ignores the option/flag. ``` Target options/flags: --cpu-period, --cpu-quota, --cpu-rt-period, --cpu-rt-runtime, --cpus, --cpu-shares, --cpuset-cpus, --cpuset-mems, --memory, --memory-reservation, --memory-swap, --memory-swappiness, --blkio-weight, --device-read-bps, --device-write-bps, --device-read-iops, --device-write-iops, --blkio-weight-device ``` Related to https://github.com/containers/podman/discussions/10152 Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
* podman generate kube - add actual testsEd Santiago2022-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This exposed a nasty bug in our system-test setup: Ubuntu (runc) was writing a scratch containers.conf file, and setting CONTAINERS_CONF to point to it. This was well-intentionedly introduced in #10199 as part of our long sad history of not testing runc. What I did not understand at that time is that CONTAINERS_CONF is **dangerous**: it does not mean "I will read standard containers.conf and then override", it means "I will **IGNORE** standard containers.conf and use only the settings in this file"! So on Ubuntu we were losing all the default settings: capabilities, sysctls, all. Yes, this is documented in containers.conf(5) but it is such a huge violation of POLA that I need to repeat it. In #14972, as yet another attempt to fix our runc crisis, I introduced a new runc-override mechanism: create a custom /etc/containers/containers.conf when OCI_RUNTIME=runc. Unlike the CONTAINERS_CONF envariable, the /etc file actually means what you think it means: "read the default file first, then override with the /etc file contents". I.e., we get the desired defaults. But I didn't remember this helpers.bash workaround, so our runc testing has actually been flawed: we have not been testing with the system containers.conf. This commit removes the no-longer-needed and never-actually-wanted workaround, and by virtue of testing the cap-drops in kube generate, we add a regression test to make sure this never happens again. It's a little scary that we haven't been testing capabilities. Also scary: this PR requires python, for converting yaml to json. I think that should be safe: python3 'import yaml' and 'json' works fine on a RHEL8.7 VM from 1minutetip. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Merge pull request #15341 from rhatdan/kubeOpenShift Merge Robot2022-08-17
|\ | | | | Fix podman kube generate --help to show correct help message
| * Fix podman kube generate --help to show correct help messageDaniel J Walsh2022-08-16
| | | | | | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | Cirrus: add podman_machine_aarch64Lokesh Mandvekar2022-08-17
|/ | | | | | | | | Run machine tests on every PR as label-driven machine test triggering is currently hard to predict and debug. Co-authored-by: Ed Santiago <santiago@redhat.com> Co-authored-by: Miloslav Trmač <mitr@redhat.com> Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* system tests: fix broken runc testEd Santiago2022-08-16
| | | | | | | | | | | | | Followup to #14613, which was never actually tested until this week in RHEL8 gating tests (see issue #15337). * add missing backslash in '|' expression * allow extra text after error (e.g., "invalid argument") No way to test this until it makes its way into RHEL8, so, fingers crossed. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Merge pull request #15317 from rhatdan/debugOpenShift Merge Robot2022-08-16
|\ | | | | Add compatibility support for --debug flag from docker
| * Add compatibility support for --debug -D flag from dockerDaniel J Walsh2022-08-15
| | | | | | | | | | | | This is another fix for https://github.com/containers/podman/issues/14917 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | Add Docker compatibility for --dns-option to --dns-optDaniel J Walsh2022-08-15
|/ | | | | Fixes one of the issues found in https://github.com/containers/podman/issues/14917 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* kube play: sd-notify integrationValentin Rothberg2022-08-10
| | | | | | | | | | | | | | | | | Integrate sd-notify policies into `kube play`. The policies can be configured for all contianers via the `io.containers.sdnotify` annotation or for indidivual containers via the `io.containers.sdnotify/$name` annotation. The `kube play` process will wait for all containers to be ready by waiting for the individual `READY=1` messages which are received via the `pkg/systemd/notifyproxy` proxy mechanism. Also update the simple "container" sd-notify test as it did not fully test the expected behavior which became obvious when adding the new tests. Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
* libpod: allow the notify socket to be passed programaticallyValentin Rothberg2022-08-10
| | | | | | | | | The notify socket can now either be specified via an environment variable or programatically (where the env is ignored). The notify mode and the socket are now also displayed in `container inspect` which comes in handy for debugging and allows for propper testing. Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
* podman ssh work, using new c/common interfaceCharlie Doern2022-08-09
| | | | | | | | | | | | | | | | | | | implement new ssh interface into podman this completely redesigns the entire functionality of podman image scp, podman system connection add, and podman --remote. All references to golang.org/x/crypto/ssh have been moved to common as have native ssh/scp execs and the new usage of the sftp package. this PR adds a global flag, --ssh to podman which has two valid inputs `golang` and `native` where golang is the default. Users should not notice any difference in their everyday workflows if they continue using the golang option. UNLESS they have been using an improperly verified ssh key, this will now fail. This is because podman was incorrectly using the ssh callback method to IGNORE the ssh known hosts file which is very insecure and golang tells you not yo use this in production. The native paths allows for immense flexibility, with a new containers.conf field `SSH_CONFIG` that specifies a specific ssh config file to be used in all operations. Else the users ~/.ssh/config file will be used. podman --remote currently only uses the golang path, given its deep interconnection with dialing multiple clients and urls. My goal after this PR is to go back and abstract the idea of podman --remote from golang's dialed clients, as it should not be so intrinsically connected. Overall, this is a v1 of a long process of offering native ssh, and one that covers some good ground with podman system connection add and podman image scp. Signed-off-by: Charlie Doern <cdoern@redhat.com>
* Merge pull request #15225 from unknowndevQwQ/update_logoOpenShift Merge Robot2022-08-09
|\ | | | | [CI:DOCS]: update the podman logo
| * docs: update the podman logounknowndevQwQ2022-08-07
| | | | | | | | | | | | for podman/#15222 Signed-off-by: unknowndevQwQ <unknowndevQwQ@pm.me>
* | Merge pull request #15134 from sstosh/improve-outputOpenShift Merge Robot2022-08-09
|\ \ | |/ |/| Output messages display rawInput
| * Output messages display rawInputToshiki Sonoda2022-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `init`, `checkpint/restore` and `cleanup` command now display output messages which is rawInput instead of a container ID. Example: ``` $ podman init <container name> <container name> $ podman init <short container ID> <short container ID> ``` Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
* | Merge pull request #15197 from vrothberg/fix-15006openshift-ci[bot]2022-08-04
|\ \ | | | | | | podman rmi: improve error message for build containers
| * | podman rmi: improve error message for build containersValentin Rothberg2022-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | Improve the error message when attempting to remove an image that is in use by an external/build container. Prior, the error only indicated that the image was in use but did not aid in resolving the issue. Fixes: #15006 Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
* | | test/system/255-auto-update.bats: add an SELinux commentValentin Rothberg2022-08-04
|/ / | | | | | | | | | | | | | | Drop a comment on using `chcon` to let the local rollback test pass. It took me a while to understand why the test failed and future souls may appreciated the extra breadcrumb. Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
* | Merge pull request #15084 from sstosh/rm-filteropenshift-ci[bot]2022-08-03
|\ \ | | | | | | Add rm --filter option
| * | Add rm --filter optionToshiki Sonoda2022-07-30
| |/ | | | | | | | | | | --filter : remove the filtered container. Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
* | Merge pull request #15161 from lsm5/switch-to-dnfopenshift-ci[bot]2022-08-03
|\ \ | | | | | | Cirrus: use dnf instead of rpm to install packages
| * | skip pod resource limits test on aarch64Lokesh Mandvekar2022-08-03
| |/ | | | | | | Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* / add "podman kube down" commandNiall Crowe2022-08-02
|/ | | | | | | | | | The "podman kube down" reads in a structured file of Kubernetes YAML and removes pods based on the Kubernetes kind described in the YAML, similiar to "podman play kube --down". Users will still be able to use "podman play kube --down" and "podman kube play --down" to perform the same function. Signed-off-by: Niall Crowe <nicrowe@redhat.com>
* With --rm option remove container if podman run failsDaniel J Walsh2022-07-28
| | | | | | Fixes https://github.com/containers/podman/issues/15049 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Cirrus: enable Fedora 36 aarch64 tasks on EC2Lokesh Mandvekar2022-07-27
| | | | | | | | | | | new file: test/e2e/config_arm64.go Tests that fail on aarch64 have been skipped with `skip_if_aarch64`. Co-authored-by: Chris Evich <cevich@redhat.com> Co-authored-by: Ed Santiago <santiago@redhat.com> Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
* When removing objects specifying --force,podman should exit with 0Daniel J Walsh2022-07-26
| | | | | | | | | | | | This Patch will cause podman COMMAND rm --force bogus not fail This is how Docker works, so Podman should follow this to allow existing scripts to convert from Docker to Podman. Fixes: #14612 Oprignal version of this patch came from wufan 1991849113@qq.com Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>