Commit Graph

5133 Commits

Author SHA1 Message Date
karta0807913 d19e1526d3 add friendly comment
Signed-off-by: karta0807913 <karta0807913@gmail.com>
2022-12-01 11:35:51 +08:00
karta0807913 1d84f0adb9 fix an overriding logic and load config problem
Fix an overriding logic in Inhearit function.
Alos, ToSpecGen function doesn't load the cgroup/image volume config from containers.conf.

Signed-off-by: karta0807913 <karta0807913@gmail.com>
2022-12-01 08:01:02 +08:00
OpenShift Merge Robot c00d8a27d9
Merge pull request #13909 from mheon/startup_probe
Add support for startup healthchecks
2022-11-30 15:23:15 -05:00
Valentin Rothberg 71f92d263c container create: add inspect data to event
When the new `events_container_create_inspect_data` option is enabled in
containers.conf set the `ContainersInspectData` event field for each
container-create event.

The data was requested for the purpose of auditing (e.g., intrusion
detection).

Jira: https://issues.redhat.com/browse/RUN-1702
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-11-29 10:40:24 +01:00
Daniel J Walsh f17479c711
Run codespell on code
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-28 15:13:43 -05:00
Matthew Heon d16129330d Add support for startup healthchecks
Startup healthchecks are similar to K8S startup probes, in that
they are a separate check from the regular healthcheck that runs
before it. If the startup healthcheck fails repeatedly, the
associated container is restarted.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2022-11-28 13:30:29 -05:00
OpenShift Merge Robot 37563b9f12
Merge pull request #16637 from ygalblum/secret_volume
Kube Play: fix the handling of the optional field of SecretVolumeSource
2022-11-28 11:49:27 -05:00
Evan Lezar 3eeb50d48b Bump golang version to 1.18
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2022-11-28 13:17:54 +01:00
Ygal Blum 9a6b701558 Kube Play: fix the handling of the optional field of SecretVolumeSource
If the secret exists, set optional in the KubeVolume to false to always use it
If the secret does not exist, if optional, set the same in the KubeVolume to skip it, otherwise fail

Add e2e tests

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2022-11-28 13:42:09 +02:00
OpenShift Merge Robot ab7f6095a1
Merge pull request #16580 from giuseppe/specgen-support-cdi-devices
specgen: support CDI devices from containers.conf
2022-11-28 06:36:33 -05:00
OpenShift Merge Robot c1db4f85ae
Merge pull request #16329 from gupttaru/encryption-decryption-feature
Add encryption decryption feature
2022-11-28 06:33:59 -05:00
OpenShift Merge Robot d5f806eb05
Merge pull request #16607 from vrothberg/BZ-2144754
container restart: clean up healthcheck state
2022-11-28 06:20:50 -05:00
Paul Holzinger 64a450c51a
test/tools: rebuild when files are changed
Add all go files as source to make sure we rebuild the tools when
required.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-11-25 14:42:26 +01:00
Paul Holzinger 2ddf1c5cbd
ginkgo tests: apply ginkgolinter fixes
I found the ginkgolinter[1] by accident, this looks for not optimal
matching and suggest how to do it better.

Overall these fixes seem to be all correct and they will give much
better error messages when something fails.
Check out the repo to see what the linter reports.

[1] https://github.com/nunnatsa/ginkgolinter

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-11-25 14:41:43 +01:00
Paul Holzinger c7827957a4
ginkgo: restructure install work flow
- move the ginkgo deps into test/tools which is more consitent with the
  other tools there, listing in dependencies always causes errors with
  linters
- do not install it globally on the system, instead we use it in a
  subdir of this project

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-11-25 14:41:43 +01:00
Giuseppe Scrivano 5d26628df6
specgen: support CDI devices from containers.conf
Closes: https://github.com/containers/podman/issues/16232

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-11-25 11:44:38 +01:00
gupttaru 3bb9ed4f09 Adding encryption decryption feature
Signed-off-by: Tarun1 Gupta <gupttaru@deshaw.com>
2022-11-24 04:53:59 -05:00
Valentin Rothberg e2fa94e8ac container restart: clean up healthcheck state
When restarting a container, clean up the healthcheck state by removing
the old log on disk.  Carrying over the old state can lead to various
issues, for instance, in a wrong failing streak and hence wrong
behaviour after the restart.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2144754
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-11-24 10:22:22 +01:00
Toshiki Sonoda a4ba5f449f Add support for podman-remote manifest annotate
Now that podman manifest annotate is supported
in the remote environment.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-11-24 14:11:08 +09:00
OpenShift Merge Robot 1b583a709b
Merge pull request #16563 from ygalblum/quadlet_k8s
Quadlet: Add support for running podman kube play via .kube files
2022-11-22 14:52:32 -05:00
OpenShift Merge Robot 1aa28b18c2
Merge pull request #16570 from edsantiago/systemtest_cleanup
ssh system test: skip until it becomes a test
2022-11-22 10:17:48 -05:00
Ygal Blum 3084ed4686 Quadlet: Add support for .kube files
Get the path to the yaml file and call podman kube play
Add tests

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2022-11-22 16:58:01 +02:00
OpenShift Merge Robot d202416302
Merge pull request #16571 from giuseppe/honor-userns-size
specgen: honor user namespace value
2022-11-22 05:43:46 -05:00
OpenShift Merge Robot b570b9d66f
Merge pull request #16574 from alexlarsson/quadlet-usermap
quadlet: Rework uid/gid remapping
2022-11-22 04:13:22 -05:00
Giuseppe Scrivano a891199b9a
specgen: honor user namespace value
honor eventual options set in the containers.userns setting in the
containers.conf file, e.g.:

[containers]
userns = "auto:size=8192"

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-11-21 21:27:22 +01:00
Alexander Larsson 285d6c9ba0 quadlet: Rework uid/gid remapping
Quadlet was doing some custom handling of uid/gid remapping, originating
from pre --userns=auto support, including its own user for getting subuids
which kinda conflicts with the "container" user used for that.

This drops all the old support for id remapping in favour of a new set
of keys that more directly map to the podman run options.

We have essentially 3 modes now:

```
RemapUsers=manual
RemapUid=0:10000:10
RemapUid=10:20000:10
RemapGid=0:10000:10
RemapGid=10:20000:10
```

This maps to --uidmap and --gidmap options.

```
RemapUsers=auto
```

This maps to --userns=auto. But you can additionally specify RemapUid,
RemapGid and RemapUidSize which gets applied as options to the
--userns podman option.

```
RemapUsers=keep-id
```
This maps to --userns=keep-id and only works for user units.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-11-21 18:02:19 +01:00
Ed Santiago 50d72bc639 ssh system test: skip until it becomes a test
The 900-ssh test is not an actual test, and I'm unable to
figure out how to make it one. Skip it for now, but add a
bunch of FIXMEs some someone can come in later and actually
implement it.

Also removed lots of dead code and misleading comments.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-21 08:02:00 -07:00
Ygal Blum dd4d212b0a E2E Tests: change the registry for the search test to avoid authentication
The current test uses registry.redhat.io which does not support unauthenticated access
Replace the registry with registry.access.redhat.com which does

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2022-11-21 10:34:52 +02:00
Erik Sjölund a1b32866cc Fix language. Mostly spelling a -> an
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-11-20 19:41:06 +01:00
OpenShift Merge Robot cea9340242
Merge pull request #16299 from alexlarsson/quadlet-shortname-warning
quadlet: Warn in generator if using short names
2022-11-18 20:01:39 +00:00
OpenShift Merge Robot d8fed62c96
Merge pull request #16439 from sstosh/proxy-tests
system tests: fix a system test in proxy environment
2022-11-18 00:51:30 +00:00
OpenShift Merge Robot 44a9014641
Merge pull request #16526 from cdoern/containerHost
fix port issues for CONTAINER_HOST
2022-11-17 17:47:12 +00:00
Charlie Doern 14ef6a91bd fix port issues for CONTAINER_HOST
if no port is specified for an ssh style url, default to 22

resolves #16509

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-11-16 11:01:30 -05:00
OpenShift Merge Robot 54b1fd35bd
Merge pull request #16518 from ashley-cui/noout
Fix podman --noout to suppress all output
2022-11-15 21:57:33 +00:00
OpenShift Merge Robot d1ac0dcd49
Merge pull request #16513 from vrothberg/fix-16502
remove pod if creation has failed
2022-11-15 21:54:57 +00:00
OpenShift Merge Robot 5502ddb3c5
Merge pull request #16506 from edsantiago/healthcheck_flake
healthcheck system tests: try to fix flake
2022-11-15 16:28:15 +00:00
Ed Santiago 58869dcc30 e2e tests: fix restart race
It's so easy to forget that "podman start" is nonblocking.
So podman create, start, restart has a race where "restart"
can run before the container actually starts.

Solution: start --attach. Thanks to @vrothberg for noticing that.

There are still a handful of other suspicious-looking restarts
in this test, but all involve "top" which of course has to be
detached. Since those don't have any flakes that I know of, I
choose to ignore them.

Fixes: #16505

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-15 07:44:52 -07:00
Ashley Cui 7c1ad8a582 Fix podman --noout to suppress all output
Podman --noout was not suppressing output from commands that do not
create the podman engine. Now, podman --noout properly suppresses output
from every command.

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

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-11-15 08:16:46 -05:00
OpenShift Merge Robot 6c37cf3324
Merge pull request #16380 from flouthoc/compat-build-fix
compat,build: handle `docker's` preconfigured `cacheTo`,`cacheFrom`
2022-11-15 12:44:50 +00:00
Valentin Rothberg 9610d4c7b4 remove pod if creation has failed
Make sure to remove the pod if its creation has failed.

Fixes: #16502
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-11-15 13:36:57 +01:00
Ed Santiago 21f6902ec3 Fix more podman-logs flakes
No issue filed, because I thought these were related to 16132.
They're not: they're actual test bugs, running "play kube"
without actually waiting for the container to run. Fix that.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-14 13:09:45 -07:00
Ed Santiago 1a839a96dc healthcheck system tests: try to fix flake
Weird one-off flake seen:

   # ... healthcheck run <containername>
   Error: container SHA is not running

The only way I can see this happening is if the healthcheck
auto-timer triggered, which seems impossible because that
should be 30s and the log timestamps show this test taking
18s. But, shrug, let's see if disabling the timer works. I
don't have high hopes that this will fix anything, but it's
probably a good idea regardless.

Also, since this test loops over different policies, include
policy name in error messages as a courtesy. (It's obtainable
anyway by scrolling up)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-14 12:33:34 -07:00
Aditya R c7073b5fc5
compat,build: handle docker's preconfigured cacheTo,cacheFrom
Docker's newer clients popuates `cacheFrom` and `cacheTo` parameter
by default as empty array for all commands but buildah's design of
distributed cache expects this to be a repo not image hence parse
only the first populated repo and igore if empty array.

Signed-off-by: Aditya R <arajan@redhat.com>
2022-11-14 22:08:09 +05:30
OpenShift Merge Robot 94e34cc795
Merge pull request #16498 from vrothberg/fix-16421
podman cp: fix copying with "." suffix
2022-11-14 13:46:44 +00:00
OpenShift Merge Robot e656cf43fe
Merge pull request #16328 from cdoern/config
fix connection usage with containers.conf
2022-11-14 12:46:03 +00:00
Valentin Rothberg 3371c9d25e podman cp: fix copying with "." suffix
Fix a bug for special-casing "." where Podman has mistakenly been
looking for a "." suffix instead of interpreting it as a path.

Add regression tests for the host-to-container, container-to-host and
container-to-container use cases.  Have separate tests for each to
verify that previous Podman versions fail each case.

Fixes: #16421
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-11-14 09:38:02 +01:00
OpenShift Merge Robot 25c67d6b9b
Merge pull request #16462 from rhatdan/manifest
Add hidden podman manifest inspect -v option
2022-11-12 10:51:53 +00:00
Charlie Doern 69d737ef15 fix connection usage with containers.conf
--connection was failing due to the servicedestinations array being empty on runtime.
Fix by making sure the cached config is used

resolves #16282

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-11-11 16:15:02 -05:00
Daniel J Walsh 00b2bc9b65
Add hidden podman manifest inspect -v option
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-11 15:22:31 -05:00
Daniel J Walsh 836ca6c008
Add podman volume create -d short option for driver
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-11 14:43:07 -05:00
OpenShift Merge Robot c75b05996d
Merge pull request #16464 from rhatdan/events
Add podman system events alias to podman events
2022-11-11 19:23:27 +00:00
OpenShift Merge Robot 21122631e1
Merge pull request #16474 from containers/dependabot/go_modules/test/tools/golang.org/x/tools-0.3.0
Bump golang.org/x/tools from 0.1.12 to 0.3.0 in /test/tools
2022-11-11 18:05:15 +00:00
Daniel J Walsh bc77c034f8
Add podman system events alias to podman events
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-11 12:57:49 -05:00
Daniel J Walsh ae9a2d26df
Fix search_test to return correct version of alpine
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-11 12:57:49 -05:00
dependabot[bot] 75fdbea63d
Bump golang.org/x/tools from 0.1.12 to 0.3.0 in /test/tools
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.1.12 to 0.3.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.1.12...v0.3.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-11 15:50:28 +00:00
Chris Evich 653ac775c7
Merge pull request #16466 from rhatdan/manifest1
Allow podman manifest push --purge|-p as alias for --rm
2022-11-11 10:50:06 -05:00
OpenShift Merge Robot 6555e69354
Merge pull request #16446 from Luap99/format-json
fix --format {{json .}} output to match docker
2022-11-11 15:48:58 +00:00
OpenShift Merge Robot 3bc236dca0
Merge pull request #16475 from Darth-Mera/restartsec-fix
Add restart-sec for container service files
2022-11-10 20:23:06 +00:00
OpenShift Merge Robot aaa88f4554
Merge pull request #16141 from sbrivio-rh/pasta
Add pasta networking mode
2022-11-10 17:44:38 +00:00
Veronika Fuxova a2c43d4340
Add restart-sec for container service files
Attempts to fix #16419

podman generate systemd --restart-sec pod
^now generates RestartSec= both in pod service file and in container service file.

podman generate systemd --restart-sec container
^now generates RestartSec= in container service file.

Signed-off-by: Veronika Fuxova <vfuxova@redhat.com>
2022-11-10 13:12:10 +01:00
Valentin Rothberg 4513fde805 test/tools: bump module to go 1.17
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-11-10 11:02:40 +01:00
dependabot[bot] 69ed903b20 build(deps): bump golang.org/x/tools from 0.1.12 to 0.2.0 in /test/tools
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.1.12 to 0.2.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.1.12...v0.2.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-10 10:24:59 +01:00
OpenShift Merge Robot e86cef13a1
Merge pull request #16004 from sstosh/remote-manifest-annotate
remote: fix manifest add --annotation
2022-11-10 09:02:10 +00:00
Daniel J Walsh d9aceadeaa
Allow podman manigest push --purge|-p as alias for --rm
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-09 16:17:38 -05:00
Paul Holzinger 3e08f85353
fix --format {{json .}} output to match docker
`--format json` should not be the same as `--format {{json .}}`, the
later should actually run through the go template and thus create one
json object per entry instead of an json array.

Includes a vendor of c/common@main since it requires a fix from there as
well.

This matches docker compat.
Fixes #16436

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-11-09 17:59:05 +01:00
Toshiki Sonoda f807b6784f remote: fix manifest add --annotation
* `manifest add --annotation option` adds annotations
  field on remote environment.
* `manifest inspect` prints annotations field
  on remote environment.

Fixes: #15952

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-11-09 13:24:09 +09:00
Hironori Shiina 314cba2590 Skip test if `--events-backend` is necessary with podman-remote
`podman-remote` does not support `--events-backend`, which overrides a
log driver. When `--events-backend` is necessary in a test for
`podman-remote`, the test should be skipped.

We don't need to fix the other cases with
`_additional_events_backend()` because `_log_test_follow()` already has
the same skipping logic and `_log_test_multi()` always skips a test when
testing `podman-remote`.

Signed-off-by: Hironori Shiina <shiina.hironori@fujitsu.com>
2022-11-08 16:10:30 -05:00
OpenShift Merge Robot d720440d78
Merge pull request #16420 from ygalblum/kube_volume_down
kube play: update the handling of PersistentVolumeClaim
2022-11-08 09:37:01 -05:00
Ygal Blum 1c8196a9ac kube play: update the handling of PersistentVolumeClaim
Up - do not fail if volume already exists, use the existing one
Down - allow the user to remove the volume by passing --force
Add tests
Update the documentation

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2022-11-08 11:08:50 +02:00
Toshiki Sonoda 616fca9ffd system tests: fix a system test in proxy environment
When we are using a proxy, 'podman build - basic test'
will be failed on remote.
This test needs to add the '--http-proxy' option.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-11-08 15:13:43 +09:00
Stefano Brivio cb8c9af5d3 test/system: Add, use tcp_port_probe() to check for listeners rather than binds
_test_skopeo_credential_sharing() used port_is_free() to check if a
port has no active listeners. With the new implementation, this is
not equivalent anymore: a port might be in TIME_WAIT, so it's not
free, but the listener might be long gone.

Add tcp_port_probe() to check if there's an active listener on a
given port, and use it in _test_skopeo_credential_sharing().

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2022-11-08 00:16:36 +01:00
Stefano Brivio 348c3f2833 test/system: Add tests for pasta(1) connectivity
These tests should cover all the basic networking functionality with
pasta(1). Namely, they check:

- IPv4 and IPv6 addressing and routing settings

- TCP and UDP port forwarding over IPv4 and IPv6

- data transfers and ICMP/ICMPv6 echo requests

- the (exceedingly simple) lifecycle handling

These tests need some new helpers, to obtain IPv4 and IPv4 addresses
and routes, as well as MTU and interface names. Those use jq(1) for
parsing.

Some availability checks are implemented as well, to skip tests if
pasta(1) is not available, or if IPv4 and IPv6 are not usable.

To get consistent outcomes across distributions, and to enable
uncomplicated termination for UDP tests based on zero-sized packets,
use socat(1), which, unlike netcat, doesn't suffer from option
inconsistencies depending on flavours (traditional, BSD, NMAP) and
versions.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2022-11-08 00:16:36 +01:00
Stefano Brivio b3cf836841 test/system: Move network-related helpers to helpers.network.bash
The main helpers.bash file is rather bloated and it's difficult to
find stuff there. Move networking functions to their own helper
file.

While at it, apply a consistent style, and rearrange logically
related functions into sections.

Suggested-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2022-11-08 00:16:36 +01:00
Stefano Brivio ea4f168b3a test/system: Use procfs to find bound ports, with optional address and protocol
Using bash /dev/tcp/ pseudo-device files to probe for bound ports has
indeed the advantage of simplicity, but comes with a few drawbacks:

- it will actually send data to unsuspecting services that might be
  running in the same network namespace as the tests, possibly
  causing unwanted interactions

- it doesn't allow for UDP probing

- it makes it impossible to clearly distinguish between different
  address bindings

Replace that approach with a new helper, port_is_bound(), that uses
procfs entries at /proc/net to detect bound ports, without the need
for active probing.

We can now implement optional parameters in callers, to check if a
port if free for binding to a given address, including any IPv4
(0.0.0.0) or any IPv6 (::0) address, and for a given protocol, TCP
or UDP.

Extend random_free_port() and random_free_port_range() to support
that.

The implementation of one function in the file
test/system/helpers.bash, namely ipv6_to_procfs(), and the
implementation of the corresponding own test, delimited by the
markers "# BEGIN ipv6_to_procfs" and "# END   ipv6_to_procfs" in the
file test/system/helpers.c was provided, on the public forum at:

  https://github.com/containers/podman/pull/16141

by Ed Santiago <santiago@redhat.com>, who expressly invited me to
include them in this code submission.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2022-11-08 00:16:35 +01:00
Stefano Brivio 7e3d04fbc6 test/system: Use port_is_free() from wait_for_port()
Currently, wait_for_port() duplicates the check logic implemented by
port_is_free().

Add an optional argument to port_is_free(), representing the bound
address to check, and call it, dropping the direct check in
wait_for_port().

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2022-11-08 00:16:35 +01:00
Ed Santiago 6dd508b8e0 More log-flake work
It looks like #16132 was my fault: a missing 'wait' for a container
to exit. Let's see if this fixes the flake.

And, while poking through flake logs, I found another missing wait.

And... in wait_for_output(), address a potential race.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-07 14:35:24 -07:00
OpenShift Merge Robot ec03579aa2
Merge pull request #16435 from edsantiago/fix_static_race
Fix test flakes caused by improper podman-logs
2022-11-07 14:39:50 -05:00
OpenShift Merge Robot 781ecec469
Merge pull request #16386 from bjorndown/feature/pod-create-with-netns
Allow namespace path network option for pods.
2022-11-07 14:29:24 -05:00
Ed Santiago 3ebcfdbbc6 Fix test flakes caused by improper podman-logs
This one has been a thorn in my side: it's a podman-log issue,
but not remote, so I _almost_ retitled #16132 (removing "remote").

Nope, it's a bug in the tests themselves. One solution would be to
podman-wait, but I see no reason for logs to be involved, so I
went with podman start -a instead. This removes the k8s-log stuff
which is no longer necessary. Cleanup all around.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-07 11:29:06 -07:00
OpenShift Merge Robot 9e04bab722
Merge pull request #16418 from jakegt1/main
Fix compat build API returning two JSON objects at once
2022-11-07 09:49:57 -05:00
Jake Torrance 85f4d37173 Make sure we can build and read each line of docker py's api client
Signed-off-by: Jake Torrance <jaket1234@hotmail.com>
2022-11-06 10:30:18 +00:00
OpenShift Merge Robot afc84151fc
Merge pull request #15591 from snprajwal/go-criu/v6
Upgrade go-criu to v6
2022-11-04 15:48:52 -04:00
OpenShift Merge Robot 5aa32e45ad
Merge pull request #16377 from giuseppe/add-check-for-valid-pod-systemd-cgroup
runtime: add check for valid pod systemd cgroup
2022-11-04 07:59:22 -04:00
Daniel J Walsh 017521c283
Merge pull request #16399 from Luap99/no-apk
test/e2e: do not use apk in builds
2022-11-04 06:50:19 -04:00
Björn Mosler 049a5d82f1 Allow namespace path network option for pods.
Closes #16208.

Signed-off-by: Björn Mosler <dev@bjoern.mosler.ch>
2022-11-04 11:26:06 +01:00
OpenShift Merge Robot 013bd81417
Merge pull request #16394 from vrothberg/fix-16387
remove container/pod id file along with container/pod
2022-11-04 05:22:57 -04:00
OpenShift Merge Robot 0702b4cf4c
Merge pull request #15359 from rhatdan/manifest
Add --insecure flag to podman manifest inspect for Docker compatibility
2022-11-04 05:14:46 -04:00
Paul Holzinger 4174901283
test/e2e: do not use apk in builds
As far as I can tell there is no reason to use apk in these tests. They
just build an image and check for it and never use the installed binary.
Network calls are always unstable and therefore should be avoided when
possible, this ensures no/less flakes.

Fixes #16391

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-11-03 17:32:49 +01:00
Valentin Rothberg 3fee351c35 remove container/pod id file along with container/pod
Remove the container/pod ID file along with the container/pod.  It's
primarily used in the context of systemd and are not useful nor needed
once a container/pod has ceased to exist.

Fixes: #16387
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-11-03 17:07:09 +01:00
Daniel J Walsh 274d0f4956
Add --insecure,--tls-verify,--verbose flags to podman manifest inspect
--insecure and --verbose flags for docker compatibility

--tls-verify for syntax compatibility and allow users to inspect
manifests at remote Container Registiries without requiring tls.

Helps fix: https://github.com/containers/podman/issues/14917

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-03 08:00:15 -04:00
Giuseppe Scrivano cac4919bf6
runtime: add check for valid pod systemd cgroup
there is already the same check when using cgroupfs, but not when
using the systemd cgroup backend.  The check is needed to avoid a
confusing error from the OCI runtime.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-11-03 12:23:44 +01:00
Ed Santiago d7e70c7489 CI: set and verify DESIRED_NETWORK (netavark, cni)
We have CI tests running in netavark mode when CNI is desired.
Add a new .cirrus.yml envariable, CI_DESIRED_NETWORK, which
we then force-check in e2e and system tests. Simple copy/paste
of #14912 (the RUNTIME check) with manual s/RUNTIME/NETWORK/
and other minor changes.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-03 04:40:42 -06:00
OpenShift Merge Robot c35ed35081
Merge pull request #15091 from umohnani8/lift
Add podman kube apply command
2022-11-02 14:38:13 -04:00
OpenShift Merge Robot c772c00f6f
Merge pull request #16384 from edsantiago/budtests_remote
buildah bud tests: better handling of remote
2022-11-02 10:48:24 -04:00
Ed Santiago 56fae7dd0e buildah bud tests: better handling of remote
When I first enabled buildah-bud tests under podman-remote (#9887),
I got one aspect all wrong: I added a podman-remote() helper function
to match the podman() one. Turns out it's never actually called,
even when $PODMAN_BINARY=podman-remote, because functions/aliases
don't work that way.

The way it works is, those few cases in which bud.bats runs
podman are not magically remapped to podman-remote, they use
the podman() function. That's where we need to check if
we're using podman-remote, and that's where we need to
remove the registry-and-rootdir options.

With this fix, we can reenable two previously-skipped bud tests.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-02 05:59:40 -06:00
Alexander Larsson 7ec743fe74 quadlet: Warn in generator if using short names
These are both slow (trigger loading alias files) and risky (its not
clear which image you mean).

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-11-02 11:55:08 +01:00
Urvashi Mohnani f6c74324bc Add podman kube apply command
Add the abilitiy to deploy the generated kube yaml to a
kubernetes cluster with the podman kube apply command.
Add support to directly apply containers, pods, or volumes
by passing in their names or ids to the command.
Use the kubernetes API endpoints and http requests to connect
to the cluster and deploy the various kubernetes object kinds.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-11-01 15:30:17 -04:00
Ed Santiago d1f3dd9e5b docs: offer advice on installing test dependencies
Basically, acknowledge the need for dependencies and link
to Fedora specfile which is the only sane place to find
such a list.

Closes: #16365

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-01 12:46:14 -06:00
Prajwal S N b8e03ab44d
deps: bump go-criu to v6
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2022-11-01 13:57:24 +05:30
OpenShift Merge Robot aca9807d59
Merge pull request #16336 from rhatdan/VENDOR
Do not report that /usr/share/containers/storage.conf has been edited.
2022-10-31 09:42:08 -04:00
Daniel J Walsh 9003cdbf62
Do not report that /usr/share/containers/storage.conf has been edited.
Only want to report if user created local customized storage in
/etc/containers/storage.conf or in
$HOME/.config/containers/storage.conf, when resetting storage.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-10-29 11:24:56 -04:00
Daniel J Walsh 71f0c9f33a
Eval symlinks on XDG_RUNTIME_DIR
Partial Fix for https://github.com/containers/podman/issues/14606

[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-10-28 14:32:39 -04:00
Daniel J Walsh 6fe64591d6
Update vendor containers/(common,storage,buildah,image)
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-10-28 06:16:22 -04:00
OpenShift Merge Robot b057a6ade8
Merge pull request #16309 from edsantiago/remove_usr_bin_podman_in_tests
Test runners: nuke podman from $PATH before tests
2022-10-28 05:44:12 -04:00
OpenShift Merge Robot 0c38fc826d
Merge pull request #16322 from Luap99/remote-ginkgo
ginkgo testing: fix podman usernamespace join
2022-10-27 13:47:23 -04:00
Paul Holzinger d50a55233a
ginkgo testing: fix podman usernamespace join
When there is a podman pause process running the local podman ginkgo
tests will join the usernamespace. This because pkg/rootless will
automatically join the ns on startup when possible. To fix this we
need to use the remote build tag which disables that behavior.

However since the remote tag is also used in the e2e test itself we
would always run remote tests which is wrong, this is fixed by using a
new `remote_testing` tag for the test.

see discussion here: https://github.com/containers/podman/pull/16309#discussion_r1006166930

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-10-27 15:16:19 +02:00
Ed Santiago f0f12658de Test runners: nuke podman from $PATH before tests
We've had some oopsies in system tests:

    podman foo bar
    run podman foo bar

...all of which should be run_podman with underscore. Those
have been passing because /usr/bin/podman is the fallback
from $PATH. In those (few) cases, we haven't actually been
testing the podman we should be testing.

Solution: nuke /usr/bin/podman and podman-remote before
invoking system and unit tests. As an extra level of
paranoia, check for other podmans in $PATH - if any
exist, bail out with a fatal error.

Also: in a few cases where runner.sh invokes podman for
containerized something-something, run bin/podman instead
of podman from $PATH.

Also: fix existing dependencies on /usr/bin/podman

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-26 19:07:20 -06:00
Kristian Klausen 3e6637a3b0
volumes: Fix idmap not working for volumes
idmap is documented as supported for volumes, but it was not added to
the getNamedVolume() function.

Fixes: e83d36665 ("volumes: add new option idmap")
Signed-off-by: Kristian Klausen <kristian@klausen.dk>
2022-10-27 01:23:16 +02:00
OpenShift Merge Robot 47bcd10f61
Merge pull request #16243 from alexlarsson/volume-create-ignore
Add podman volume create --ignore
2022-10-26 15:00:51 -04:00
OpenShift Merge Robot 6dd0c83c6d
Merge pull request #16308 from edsantiago/fix_ubi8_b0rkage
FIXME: Temporary workaround for ubi8 CI breakage
2022-10-26 14:43:45 -04:00
Ed Santiago 237d41f3fb FIXME: Temporary workaround for ubi8 CI breakage
Emergency import of https://github.com/containers/buildah/pull/4377
required because the ubi8 image changed behind our backs.

On podman main, this commit will be reverted by Ed's
treadmill as soon as a new buildah is vendored into podman.

On side branches, the human doing the vendoring will need to
perform manual surgery. I hope the instructions are good enough.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-26 10:54:56 -06:00
Ed Santiago 11e4c04038 System tests: teardown: clean up volumes
One of the system tests was creating a volume and not cleaning up
after itself. Fix that: do cleanup in the test itself. And, add
a 'volume rm -af' to global teardown() to leave things clean for
the next tests.

Also, OOPS! Correct some instances of 'podman' in two system
tests to 'run_podman'. And remove an unused (misleading) variable.

And, one more: in auto-update test, unit file, use $PODMAN,
not /usr/bin/podman

UGH! Yet one more: found/fixed a 'run<space>podman'

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-26 09:56:58 -06:00
Ed Santiago fdc9ca076b system tests: runlabel: use podman-under-test
I have no idea what this usage means, but the test fails
on a system with no /usr/bin/podman ... and that suggests
to me that the test is broken, in that it's been using
/usr/bin/podman instead of the $PODMAN we're testing.

Solution: 'podman', not '/usr/bin/podman'. Per @Luap99,
podman will replace the string 'podman' with /proc/self/exe

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-26 05:35:10 -06:00
OpenShift Merge Robot 9062dede65
Merge pull request #16293 from edsantiago/random_port_in_network_create
system tests: podman network create: use random port
2022-10-26 07:18:59 -04:00
OpenShift Merge Robot ac8b401c48
Merge pull request #16237 from alexlarsson/quadlet-updates
Various quadlet updates
2022-10-26 04:05:40 -04:00
Ed Santiago 05bdc72941 system tests: podman network create: use random port
One test was using a hardcoded fixed port, with a comment
referring to #10806. That issue seems fixed, so let's
try switching to a pseudorandom open port.

Does not actually fix #16289 but I'm going to close that
anyway, will reopen if it recurs.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-25 12:38:35 -06:00
OpenShift Merge Robot 589ff20aa3
Merge pull request #16287 from vrothberg/fix-16091
sig-proxy test: bump timeout
2022-10-25 10:18:43 -04:00
OpenShift Merge Robot 1c9c321d3c
Merge pull request #15979 from ygalblum/play_kube_volume_import
play kube: Allow the user to import the contents of a tar file into a volume
2022-10-25 10:05:45 -04:00
Valentin Rothberg f0ba2d89e8 sig-proxy test: bump timeout
Bump the timeout waiting for the container to process the signal.
The comparatively short timeout is most likely responsible for
flakes in gating tests.

Fixes: #16091
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-25 15:12:56 +02:00
Ygal Blum 0ce234425a play kube: Allow the user to import the contents of a tar file into a volume
Add a new annotation to allow the user to point to a local tar file
If the annotation is present, import the file's content into the volume
Add a flag to PlayKubeOptions to note remote requests
Fail when trying to import volume content in remote requests
Add the annotation to the documentation
Add an E2E test to the new annotation

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2022-10-25 15:11:25 +03:00
OpenShift Merge Robot 86f7b99924
Merge pull request #16273 from vrothberg/cidfile
container/pod id file: truncate instead of throwing an error
2022-10-25 07:32:55 -04:00
Alexander Larsson bac907abf8 Clarify the docs on DropCapability
It was a bit unclear what setting it to empty means.

Also, add to the tests verification that this works.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:10:18 +02:00
Alexander Larsson 33eb45c475 quadlet tests: Disable kmsg logging while testing
Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:51 +02:00
Alexander Larsson 8716de2ac3 quadlet: Add support for Network=...
This just gets translated to --network=...

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:51 +02:00
Alexander Larsson 6042ca7fd0 quadlet: Add support for AddDevice=
This lets you add custom device nodes into the container

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:51 +02:00
Alexander Larsson f6f65f49db quadlet: Add support for setting seccomp profile
Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:48 +02:00
Alexander Larsson a9f0957c24 quadlet: Allow multiple elements on each Add/DropCaps line
You can still use multiple lines, but this is not necessary.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:22 +02:00
Alexander Larsson 2b0d9cd94b quadlet: Drop the SocketActivated key
This was added in the old quadlet to work around issues with podman
not passing on notify fds and pids. However, these are now fixed with:

https://github.com/containers/podman/pull/11316
https://github.com/openSUSE/catatonit/pull/15

So, remove this key (which was never in a podman release anyway)

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:08:55 +02:00
Alexander Larsson d7e248dcff quadlet: Switch log-driver to passthrough
This is much better for the systemd case becase we pass the journal
socket fds directly to the container. This means less copying of the
logs, but it also means the journal will correctly get the peer
process id when it tries to extract things like the name of what
is logging something.

With this we correctly name the logging process rather than claim
everything comes from conmon.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:08:24 +02:00
Alexander Larsson 998f834b04 quadlet: Change ReadOnly to default to enabled
This makees much more sense for typical service loads, and can
easily be reverted by `ReadOnly=no`.

Also updates and adds various tests for this.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:08:21 +02:00
Alexander Larsson 0de98b1b6c quadlet tests: Run the tests even for (exected) failed tests
Otherwise the noimage test doesn't look at the stderr assertion.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:01:36 +02:00
Alexander Larsson 8d41c7d2eb quadlet tests: Fix handling of stderr checks
We were looking at stdout, not stderr, and one of the testcases were
wrong.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:01:36 +02:00
Valentin Rothberg 221cfc6872 container/pod id file: truncate instead of throwing an error
Truncate the container and pod ID files instead of throwing an error.
The main motivation is to prevent redundant work when starting systemd
units.  Throwing an error when the file already exists is not preventing
races or file corruptions, so let's leave that to the user which in
almost all cases are generated (and tested) systemd units.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-25 09:37:35 +02:00
OpenShift Merge Robot 51a9bc8205
Merge pull request #16191 from odra/fix-16180_ancestor-filter-regex
adding regex support to the ancestor ps filter function
2022-10-24 18:55:56 -04:00
OpenShift Merge Robot 63a8f9aeaa
Merge pull request #16234 from jakecorrenti/system-df-verbose-format-usability
Fix `system df` issues with `-f` and `-v`
2022-10-24 11:44:09 -04:00
Alexander Larsson b7f05cef0b quadlet: Use the new podman create volume --ignore
This way we don't have to use the `ExecCondition=podman volume exist`,
which saves one process start.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-24 17:30:36 +02:00
Alexander Larsson 734c435e01 Add podman volume create --ignore
This ignores the create request if the named volume already exists.
It is very useful when scripting stuff.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-24 17:30:31 +02:00
Valentin Rothberg 7a9c14d626 fix search flake
There's no guarantee that the searched image will be returned, so only
make sure that "alpine" is mentioned somewhere.

Fixes: #16248
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-21 14:52:43 +02:00
Leonardo Rossetti 6c7ae378c3
adding regex support to the ancestor ps filter function
Signed-off-by: Leonardo Rossetti <lrossett@redhat.com>
2022-10-21 08:33:51 -03:00
Jake Correnti e5032a8dea Fix `system df` issues with `-f` and `-v`
Fixed the issue of `--format` and `--verbose` flags being allowed in
combination with one another.

Implemented functionality for `--format json` or `--format '{{ json }}' `.

Implemented command-completion help for `--format`.

Fixes: #16204

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-10-20 23:12:09 -04:00
OpenShift Merge Robot 5af1c42119
Merge pull request #16211 from vrothberg/fix-16135
system df: fix image-size calculations
2022-10-19 10:46:01 -04:00
OpenShift Merge Robot a301ec164c
Merge pull request #16223 from vrothberg/quadlet
move quadlet packages into pkg/systemd
2022-10-19 09:58:43 -04:00
OpenShift Merge Robot 2936e60210
Merge pull request #16220 from edsantiago/testimage_iproute_socat
testimage: add iproute2 & socat, for pasta networking
2022-10-19 08:45:55 -04:00
Valentin Rothberg b4374f2bd9 move quadlet packages into pkg/systemd
Reduce the number of top-level packages in ./pkg by moving quadlet
packages under ./pkg/systemd.

[NO NEW TESTS NEEDED] - no functional change.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-19 13:38:27 +02:00
Valentin Rothberg 34235b2726 system df: fix image-size calculations
Fix two bugs in `system df`:

1.  The total size was calculated incorrectly as it was creating the sum
    of all image sizes but did not consider that a) the same image may
    be listed more than once (i.e., for each repo-tag pair), and that
    b) images share layers.

    The total size is now calculated directly in `libimage` by taking
    multi-layer use into account.

2.  The reclaimable size was calculated incorrectly.  This number
    indicates which data we can actually remove which means the total
    size minus what containers use (i.e., the "unique" size of the image
    in use by containers).

NOTE: The c/storage version is pinned back to the previous commit as it
      is buggy.  c/common already requires the buggy version, so use a
      `replace` to force/pin.

Fixes: #16135
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-19 11:20:41 +02:00
Ed Santiago 120a77e394 testimage: add iproute2 & socat, for pasta networking
PR #16141 introduces a new network type, "pasta". Its tests
rely on running 'ip -j' and socat in the container. Add them.

Also: bump to alpine 3.16.2 (from 3.16.0)
Also: clean up apk cache, this saves us 2MB+ in the image

Also (unrelated): clean up two broken uses of '$(< ...)' that
are causing tests to blow up under bats 1.8 on my laptop

New testimage is 20221018 and, sigh, is 12.7MB (up 4MB).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-18 11:50:48 -06:00
Urvashi Mohnani 30e66d6003 Set up minikube for k8s testing
Install and set up minikube so that we can
create a k8s cluster for testing.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-10-18 10:51:27 -04:00
OpenShift Merge Robot 1a60b30e51
Merge pull request #16035 from alexlarsson/quadlet
Initial quadlet version integrated in golang
2022-10-17 15:13:39 -04:00
Alexander Larsson 62bb59d3b0 Initial quadlet version integrated in golang
Based on the initial port in https://github.com/containers/quadlet/pull/41

This contains the unit tests and the testcases from the C code as well
as modification to the podman spec file based on what the quadlet
spec file looks like, producing a podman-quadlet subpackage.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-17 15:56:03 +02:00
Daniel J Walsh 75222add5a
Allow volume mount dups, iff source and dest dirs
Also create one constant for ErrDuplicateDest, rather then have the same
value set three times.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-10-15 07:38:08 -04:00
OpenShift Merge Robot c5c57f0c50
Merge pull request #16144 from presztak/vendor_psgo
vendor containers/psgo@v1.8.0
2022-10-15 07:07:19 -04:00
OpenShift Merge Robot 8656ffa563
Merge pull request #15662 from mtrmac/c-image-errors
Update for https://github.com/containers/image/pull/1299 + update tests
2022-10-14 17:56:16 -04:00
Piotr Resztak 04c126a3b4 vendor containers/psgo@v1.8.0
Signed-off-by: Piotr Resztak <piotr.resztak@gmail.com>
2022-10-14 17:28:15 +02:00
Valentin Rothberg b35fab6f1c kill: wait for the container
Make sure to wait for the container to exit after kill. While the
cleanup process will take care eventually of transitioning the state, we
need to give a guarantee to the user to leave the container in the
expected state once the (kill) command has finished.

The issue could be observed in a flaking test (#16142) where
`podman rm -f -t0` failed because the preceding `podman kill`
left the container in "running" state which ultimately confused
the "stop" backend.

Note that we should only wait for the container to exit when SIGKILL is
being used.  Other signals have different semantics.

[NO NEW TESTS NEEDED] as I do not know how to reliably reproduce the
issue.  If #16142 stops flaking, we are good.

Fixes: #16142
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-14 13:21:52 +02:00
Miloslav Trmač 33858c1cf8 Update tests for changed error messages
Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2022-10-13 22:33:18 +02:00
Daniel J Walsh 8356621249
Merge pull request #16125 from containers/dependabot/go_modules/github.com/spf13/cobra-1.6.0
build(deps): bump github.com/spf13/cobra from 1.5.0 to 1.6.0
2022-10-12 16:13:56 -04:00
Paul Holzinger 5da54e1834
docs: add missing options
The new cobra update fixed a bug which caused some options to not be
included in --help when there was already a option with the same name
on a parent command.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-10-12 17:00:27 +02:00
OpenShift Merge Robot 695a848968
Merge pull request #16078 from rhatdan/main
Revert "cmd/podman: add support for checkpoint images"
2022-10-12 10:12:41 -04:00
Ed Santiago f16e9acc64 system tests: health-on-failure: fix broken logic
Basically, in the timeout loop where we checked for new CID
on the restarted container, we were running 'podman inspect'
(not 'inspect --format ID'), and comparing full hundred-line
output against single-line CID string.

While I'm in here, add 'c_' prefix to container to make it
easier for my old eyes to recognize "oh, that's a container name"
vs "is that a name? a SHA? a woozle?"

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-12 06:29:59 -06:00
Daniel J Walsh b47b48fd03
Revert "Add checkpoint image tests"
This reverts commit bbe1063a5a.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-10-11 10:04:55 -04:00
Valentin Rothberg 4dd67272ed healthcheck: fix --on-failure=stop
Fix the "stop" on-failure action by not removing the transient systemd
timer and service during container stop.  Removing the service will
in turn cause systemd to terminate the Podman process attempting to
stop the container and hence leave it in the "stopping" state.

Instead move the removal into the restart sequence.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-11 13:01:07 +02:00
Valentin Rothberg 02040089a6 health checks: make on-failure action retry aware
Make sure that the on-failure actions only kick in once the health check
has passed its retries.  Also fix race conditions on reading/writing the
log.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-07 15:43:48 +02:00
OpenShift Merge Robot ab3d3f818d
Merge pull request #16067 from tyler92/fix-directory-or-create
Create a full path to a directory when DirectoryOrCreate is used
2022-10-06 19:43:47 +02:00
Mikhail Khachayants 8b189c0a06
Create full path to a directory when DirectoryOrCreate is used with play kube
Signed-off-by: Mikhail Khachayants <tyler92@inbox.ru>
2022-10-06 15:37:36 +03:00
Boaz Shuster d4f622da7d Return error in podman system service if URI scheme is not unix/tcp
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2022-10-06 14:47:03 +03:00
Andrei Natanael Cosma f250560a80
Add pods created by kube play to a default network
In order to allow pods to reach other pods (as in Kubernetes) they all
need to be added to the same network. A network is created (if it
doesn't exist) and pods created by play-kube are added to that network.
When network options are passed to kube command the pods are not
attached to the default kube network.

Signed-off-by: Andrei Natanael Cosma <andrei@intersect.ro>
2022-10-04 21:59:57 +02:00
OpenShift Merge Robot 5da3e1187e
Merge pull request #15846 from jakecorrenti/pod-logs-latest
`podman pod logs -l` no longer panics
2022-10-03 12:44:39 +02:00
Valentin Rothberg 02b0f9fc39 container inspect: include image digest
Include the digest of the image in `podman container inspect`. The image
digest is a key information for auditing as it defines the identify of
an image.  This way, it can be determined whether a container used an
image with a given CVE etc.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-30 14:10:21 +02:00
OpenShift Merge Robot d88acd83a1
Merge pull request #16005 from sstosh/fix-typo
Fix typo about e2e tests name
2022-09-30 12:20:56 +02:00
OpenShift Merge Robot 5aa194b1ed
Merge pull request #15868 from rst0git/podman-run-checkpoint-img
cmd/podman: add support for checkpoint images
2022-09-30 12:18:24 +02:00
Toshiki Sonoda f304a1757c Fix typo about e2e tests name
* podman stop --all -> podman kill --all
* podman pause --filter -> podman restart --filter

[NO NEW TESTS NEEDED]
[NO TESTS NEEDED]

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-30 13:28:16 +09:00
OpenShift Merge Robot 61068649fa
Merge pull request #15909 from cdoern/restore
fix restore API endpoint
2022-09-29 23:02:00 +02:00
OpenShift Merge Robot 0513349355
Merge pull request #15998 from Luap99/play-kube-hostnet
podman kube play allow --network host
2022-09-29 20:26:03 +02:00
OpenShift Merge Robot 472e8243e5
Merge pull request #15994 from Luap99/flake-15990
fix "podman system prune networks" flake
2022-09-29 18:30:27 +02:00
Paul Holzinger fe2b4df382
podman kube play allow --network host
I see no reason to block --network host with kube play and force users
to have to set it in the yaml file.

This is just confusing when compared to the other podman create/run
--network options, see discussion in #15945.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-29 18:07:41 +02:00
Jake Correnti 6f821f03d9 `podman pod logs -l` no longer panics
Fixed issue where executing the command `podman pod logs -l` would panic
because it was indexing into an empty arguments array.

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-09-29 08:56:02 -04:00
Paul Holzinger 3b5171d0ee
fix "podman system prune networks" flake
Since by default the network config dir is shared in the e2e tests any
other parallel running test could remove a network and cause this test to
fail.

Fixes #15990

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-29 14:39:25 +02:00
Radostin Stoyanov ebff193f8b Add test for podman run with checkpoint image
The `podman run` command has been extended with support for checkpoint
images. A checkpoint image contains image files generated by criu that
allow to restore the runtime state of containerized applications. This
patch adds a test case for this functionality.

Signed-off-by: Radostin Stoyanov <radostin@redhat.com>
2022-09-29 13:33:09 +01:00
Paul Holzinger e2fe9eabac
Revert "remote: fix manifest add --annotation"
This reverts commit 32f54a81ed.

`pkg/bindings` is supported outside of podman and we have to keep it
stable.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-29 14:16:42 +02:00
OpenShift Merge Robot f52feded3c
Merge pull request #15988 from sstosh/manifest-annotate-remote
remote: fix manifest add --annotation
2022-09-29 13:22:22 +02:00
Toshiki Sonoda 32f54a81ed remote: fix manifest add --annotation
* `manifest add --annotation option` adds annotations
  field on remote environment.
* `manifest inspect` prints annotations field
  on remote environment.

Fixes: #15952

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-29 18:14:41 +09:00
Ed Santiago 496d4c7533 System tests: stop deep-checking log-level
I was testing --log-level by --storage-opt=mount_program=/bin/false

Stop doing that. It's just constantly breaking everything (#15698
and #15977).

I am violently of the opinion that a command-line option must
not destroy a user's system (except for --set-something, --config,
something that makes it very very clear that it is a lasting
change). I seem to be in the minority on this opinion. So, I
give up.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-28 09:30:23 -06:00
OpenShift Merge Robot dca5ead2d7
Merge pull request #15946 from rhatdan/kube
Default missing hostPort to containerPort is defined in kube.yaml
2022-09-27 22:21:54 +02:00
Daniel J Walsh f5fc0960e5
Default missing hostPort to containerPort is defined in kube.yaml
If user does not specify hostPort in a kube.yml file but does specify
a containerPort, then the hostPort should default to the containerPort.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-09-27 14:04:24 -04:00
Ed Santiago 3e80931529 System tests: light cleanup
Followup to #15895:
 - add a normal-case test, to ensure that --privileged without
   systemd continues to pass through /dev/ttyN devices
 - explain why we die() if host has no ttyN devices
 - I find grep -vx slightly easier to read than sed backslash-slash
 - run cleanup with '-t 0', to shave ten seconds from CI run

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-27 05:53:18 -06: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
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
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
OpenShift Merge Robot 4d475ae87b
Merge pull request #15873 from ashley-cui/prettysecrets
Add --pretty to podman secret inspect
2022-09-23 20:57:51 +02:00
OpenShift Merge Robot f658bbd230
Merge pull request #15463 from mheon/fix_15408
Events for containers in pods now include the pod's ID
2022-09-23 20:39:56 +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
cdoern 2478e32ca3 fix restore API endpoint
restore endpoint was totally ignoring --pod, it was missing from the schema and from query handling
on the api handlers side. add support for it here.

resolves #15018

Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2022-09-22 15:11:19 -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
Ashley Cui dc05d1212c Add --pretty to podman secret inspect
Pretty-print podman secret inspect output in a human-readable format

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-09-22 14:07:11 -04:00
Matthew Heon fc6dcd12b3 Add support for 'image' volume driver
We added the concept of image volumes in 2.2.0, to support
inspecting an image from within a container. However, this is a
strictly read-only mount, with no modification allowed.

By contrast, the new `image` volume driver creates a c/storage
container as its underlying storage, so we have a read/write
layer. This, in and of itself, is not especially interesting, but
what it will enable in the future is. If we add a new command to
allow these image volumes to be committed, we can now distribute
volumes - and changes to them - via a standard OCI image registry
(which is rather new and quite exciting).

Future work in this area:
- Add support for `podman volume push` (commit volume changes and
  push resulting image to OCI registry).
- Add support for `podman volume pull` (currently, we require
  that the image a volume is created from be already pulled; it
  would be simpler if we had a dedicated command that did the
  pull and made a volume from it)
- Add support for scratch images (make an empty image on demand
  to use as the base of the volume)
- Add UOR support to `podman volume push` and
  `podman volume pull` to enable both with non-image volume
  drivers

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2022-09-22 13:07:40 -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
Ed Santiago d5f044ee7a System tests: reenable some skipped aarch64 tests
Background: in order to add aarch64 tests, we had to add
emergency skips to a lot of failing tests. No attempt was
ever made to understand why they were failing.

Fast forward to today, I filed #15888 just to see if tests
are still failing. Looks like a number of them are fixed.
(Yes, magically). Remove those skips.

See: #15074, #15277

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-21 14:07:22 -06: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
OpenShift Merge Robot a9a1345cb0
Merge pull request #15823 from rhatdan/dns-opt
Default to --dns-option to match Docker and Buildah
2022-09-16 17:24:34 +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
Daniel J Walsh 21841dc381
Default to --dns-option to match Docker and Buildah
[NO NEW TESTS NEEDED] Existing tests cover this.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-09-16 06:14:35 -04: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
Ed Santiago cfbc4aaeb5 Cleanup: fix problems reported by shell lint
Followup to #15616, which is not usable as it is (way, way, way
too much noise) but actually found a few real nits that should
be fixed.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-15 20:10:34 -06:00
OpenShift Merge Robot 750726e62c
Merge pull request #15821 from vrothberg/revert-c20abf12c714f359c7bbb291c444530f70cb1185
Revert "generate systemd: drop ExecStop"
2022-09-15 21:32:39 +02:00
OpenShift Merge Robot df73f606ef
Merge pull request #15757 from mheon/fix_15526
Introduce graph-based pod container removal
2022-09-15 21:01:23 +02: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
OpenShift Merge Robot a73b150e70
Merge pull request #15786 from edsantiago/format_test_fixes
System tests: cleanup in --format test
2022-09-14 22:31:21 +02:00
OpenShift Merge Robot 9b6cb7e80f
Merge pull request #15794 from edsantiago/bats_races
System tests: fix three races
2022-09-14 21:33:40 +02:00
Matthew Heon e19e0de5fa Introduce graph-based pod container removal
Originally, during pod removal, we locked every container in the
pod at once, did a number of validity checks to ensure everything
was safe, and then removed all the containers in the pod.

A deadlock was recently discovered with this approach. In brief,
we cannot lock the entire pod (or much more than a single
container at a time) without causing a deadlock. As such, we
converted to an approach where we just looped over each container
in the pod, removing them individually. Unfortunately, this
removed a lot of the validity checking of the earlier approach,
allowing for a lot of unintended bad things. Infra containers
could be removed while containers in the pod still depended on
them, for example.

There's no easy way to do validity checks while in a simple loop,
so I implemented a version of our graph-traversal logic that
currently handles pod start. This version acts in the reverse
order of startup: startup starts from containers which depend on
nothing and moves outwards, while removal acts on containers which
have nothing depend on them and moves inwards. By doing graph
traversal, we can guarantee that nothing is removed while
something that depends on it still exists - so the infra
container should be the last thing in a pod that is removed, for
example.

In the (unlikely) case that a graph of the pod's containers
cannot be built (most likely impossible without database editing)
the old method of pod removal has been retained to ensure that
even misbehaving pods can be forcibly evicted from the state.

I'm fairly confident that this resolves the problem, but there
are a lot of assumptions around dependency structure built into
the original pod removal code and I am not 100% sure I have
captured all of them.

Fixes #15526

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2022-09-14 13:44:48 -04:00
Ed Santiago 88879d588c System tests: cleanup in --format test
Followup to #15673 (--format with newlines). I cobbled up a test
for it, but I was sloppy, so the test had issues that I kept
having to band-aid. This is a cleaner way to handle podman-machine.

...and, another unexpected surprise with podman stats. It
fails under rootless cgroupsv1. We can't sweep it under the
rug via skip_if_ubuntu because tests will then fail on RHEL8.
So, add a similar mechanism for testing podman stats.

...plus a non-surprise, the 'search' test flakes. Try minimizing
that by searching only $IMAGE. If quay.io is down, other tests
will certainly fail.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-14 10:59:27 -06: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
Giuseppe Scrivano 14e5d1c15d
libpod: fix lookup for subpath in volumes
a subdirectory that is below a mount destination is detected as a
subpath.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-14 17:09:04 +02:00
OpenShift Merge Robot 017d81ddd0
Merge pull request #15788 from kolyshkin/non-crypto-id
all: stop using deprecated GenerateNonCryptoID
2022-09-14 16:17:37 +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
Kir Kolyshkin 75740be395 all: stop using deprecated GenerateNonCryptoID
In view of https://github.com/containers/storage/pull/1337, do this:

	for f in $(git grep -l stringid.GenerateNonCryptoID | grep -v '^vendor/'); do
		sed -i 's/stringid.GenerateNonCryptoID/stringid.GenerateRandomID/g' $f;
	done

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2022-09-13 16:26:26 -07: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
Paul Holzinger 9d41b95d72
rework --format system test
This version does a much better job of error reporting and also catches
more commands.

Changes from edsantiago.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-13 17:02:15 +02:00
OpenShift Merge Robot 51b5d30b10
Merge pull request #15721 from edsantiago/instrument_metacopy_flake
TEMPORARY: instrumenting for 15488
2022-09-13 15:14:47 +02:00
OpenShift Merge Robot 351b303119
Merge pull request #15752 from vrothberg/fix-15691
health checks: restart timers
2022-09-13 14:22:34 +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
Valentin Rothberg c8c2aab50d health checks: restart timers
Restart the health-check timers instead of starting them.  This will
surpress annoying errors stating that an already running timer cannot be
started anymore.

Also make sure that the transient units/timers are stopped and removed
when stopping a container.

Fixes: #15691
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-13 10:56:44 +02:00
Paul Holzinger 908458d063
enable podman pod inspect --format test
Now that commit d10e77e1bc is merged, it will reuse the same template
logic as inspect and therefore should just work.

Also remove the FIXME from eds test.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-13 10:33:15 +02:00
Paul Holzinger 7f8e99ded4
podman version: 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.

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

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-13 10:33:15 +02:00
Paul Holzinger 0c21dcf70c
podman machine info: 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.

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

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-13 10:33:14 +02:00
Paul Holzinger e5389e98f7
podman info: 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.

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

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-13 10:33:14 +02:00
Ed Santiago 1acebdda37
tests for 15673
Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-13 10:33:14 +02:00
Paul Holzinger 90634d5ee2
podman volume ls: 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 fixa bug since the table format is expected to print headers as
well.

[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
Ed Santiago e24c2f0099 system tests: periodic cleanup and fixes
- basic       : add actual log-level tests
- events      : clean up, add --format tests
- systemd     : reorder proxy args for legibility
- auto-update : fix missing timeout that could lead to hang

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-12 12:17:51 -06:00
Paul Holzinger 2ae4ce7999
fix race where podman events exits to early
In order to display all events we have to read until the event channel
is closed.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-12 18:05:18 +02:00
Paul Holzinger 138b09c7e2
event backend none: return an error when reading events
podman --events-backend none events should return with an error since it
will never be able to actually list events.

Fixes part three of #15688

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-12 18:05:17 +02:00
Paul Holzinger c5bdb6afe7
fix hang with podman events file logger
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>
2022-09-12 18:05:11 +02:00
OpenShift Merge Robot 5abc08df25
Merge pull request #15511 from rhatdan/codespell
Fix stutters
2022-09-12 16:52:08 +02:00
Eng Zer Jun 118546c6a7
refactor: use `os.ReadDir` for lightweight directory reading
`os.ReadDir` was added in Go 1.16 as part of the deprecation of `ioutil`
package. It is a more efficient implementation than `ioutil.ReadDir`.

Reference: https://pkg.go.dev/io/ioutil#ReadDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-09-11 15:58:31 +08:00
Daniel J Walsh 2c63b8439b
Fix stutters
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>
2022-09-10 07:52:00 -04:00
Ed Santiago 6210c6723d TEMPORARY: instrumenting for 15488
Trying to catch the wiley metacopy flake: add a debug
condition to run_podman, in system tests, to log all
instances in which output includes the metacopy warning.
The idea is to detect the very first time it happens,
and see what is triggering it.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-09 08:28:34 -06:00
OpenShift Merge Robot 7e7db23dbf
Merge pull request #15687 from vrothberg/RUN-1639
health check: add on-failure actions
2022-09-09 15:17:19 +02:00
OpenShift Merge Robot b239966d11
Merge pull request #15462 from edsantiago/system_tests_for_update
system tests for update
2022-09-09 15:11:52 +02:00
OpenShift Merge Robot 04270a080d
Merge pull request #15695 from Luap99/update-buildah
Update buildah and c/common to latest
2022-09-09 15:08:46 +02:00
OpenShift Merge Robot 8a2ab7c387
Merge pull request #15692 from giuseppe/pod-spec-userns
kube: plug HostUsers in the pod spec
2022-09-09 15:06:01 +02:00
OpenShift Merge Robot e37dd95b7a
Merge pull request #15658 from rhatdan/config
Add --config for Docker compatibility
2022-09-09 13:17:14 +02:00
Valentin Rothberg aad29e759c health check: add on-failure actions
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>
2022-09-09 13:02:05 +02:00
Ed Santiago 8e1aa7af3a
Fixes for vendoring Buildah
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>
2022-09-09 11:59:27 +02:00
Toshiki Sonoda c7411af9e2 Ignore cpu realtime options on cgroups V2 systems
`--cpu-rt-period` and `--cpu-rt-runtime` options are only
supported on cgroups V1 rootful systems.

Therefore, podman prints an warning message and ignores these
options when we use cgroups V2 systems.

Related to: #15666

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-09 17:33:43 +09:00
Giuseppe Scrivano 9a286f7126
generate, kube: plug HostUsers
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-08 22:55:52 +02:00
Daniel J Walsh 1994f38232
Add --config for Docker compatibility
Fixes: https://github.com/containers/podman/issues/14767

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-09-08 16:20:30 -04:00
Giuseppe Scrivano ad63aa20db
kube: plug HostUsers in the pod spec
map HostUsers=false to userns=auto.

One difference with the current implementation in the Kubelet is that
the podman default size is 1024 while the Kubelet uses 65536.

This is done on purpose, because 65536 is a problem for rootless as
the entire IDs space would be allocated to a single pod.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-08 22:08:50 +02:00
OpenShift Merge Robot 6d8bafe57a
Merge pull request #15607 from fpoirotte/main
Fix #15243 Set AutomountServiceAccountToken to false
2022-09-08 19:38:56 +02:00
OpenShift Merge Robot 7e2f002b07
Merge pull request #15593 from containers/dependabot/go_modules/github.com/docker/go-units-0.5.0
Bump github.com/docker/go-units from 0.4.0 to 0.5.0
2022-09-08 16:54:02 +02:00
OpenShift Merge Robot eb758c5f58
Merge pull request #15675 from Luap99/pod-inspect
fix podman pod inspect to support multiple pods
2022-09-08 16:36:08 +02:00
OpenShift Merge Robot 051f8b0a62
Merge pull request #15681 from sstosh/fix-e2e-sameip-proxy
e2e: fix run_staticip_test in proxy environment
2022-09-08 12:35:09 +02:00
Toshiki Sonoda 626ee118c8 e2e: fix run_staticip_test in proxy environment
`Podman run two containers with the same IP [It]`
This test will be failed in proxy environment.
We need to set the static ip to no_proxy.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-08 17:56:42 +09:00
Paul Holzinger d10e77e1bc
fix podman pod inspect to support multiple pods
Just like the other inspect commands `podman pod inspect p1 p2` should
return the json for both.

To correctly implement this we follow the container inspect logic, this
allows use to reuse the global inspect command.
Note: To not break the existing single pod output format for podman pod
inspect I added a pod-legacy inspect type. This is only used to make
sure we will print the pod as single json and not an array like for the
other commands. We cannot use the pod type since podman inspect --type
pod did return an array and we should not break that as well.

Fixes #15674

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-08 10:28:42 +02:00
Paul Holzinger 8d40bf3f14
proper --debug/-D flag support
--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 2d30b4dee5 which claims to add -D but never
did.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-07 14:50:23 +02:00
OpenShift Merge Robot 22fdb8e1fa
Merge pull request #15663 from sstosh/fix-proxy-test
system tests: fix systemd tests in proxy environment
2022-09-07 13:19:41 +02:00
OpenShift Merge Robot b231e73c20
Merge pull request #15633 from thediveo/events
Closes #15617: emit container labels for container exited and exec died events
2022-09-07 10:39:38 +02:00
Toshiki Sonoda f6e3cfa538 system tests: fix systemd tests in proxy environment
Under proxy environment, we need to add
proxy environment variables.

Related to: #15639

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-07 09:46:31 +09:00
OpenShift Merge Robot db5ec4dcdc
Merge pull request #15547 from vrothberg/RUN-1606
Support auto updates for Kubernetes workloads
2022-09-06 21:38:54 +02:00
Harald Albrecht d759576ab3 emit container labels also for container exited and exec died events
- adds unit test for container labels on container die event
- implements #15617

Signed-off-by: Harald Albrecht <harald.albrecht@gmx.net>
2022-09-06 20:29:44 +02:00
dependabot[bot] eb39d56dfc Bump github.com/docker/go-units from 0.4.0 to 0.5.0
Bumps [github.com/docker/go-units](https://github.com/docker/go-units) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/docker/go-units/releases)
- [Commits](https://github.com/docker/go-units/compare/v0.4.0...v0.5.0)

---
updated-dependencies:
- dependency-name: github.com/docker/go-units
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-06 16:59:24 +02:00
OpenShift Merge Robot cd09e3b6d0
Merge pull request #15644 from Luap99/event-format
fix podman events with custom format
2022-09-06 15:56:20 +02:00
OpenShift Merge Robot 46e9178ef6
Merge pull request #15639 from fj-tsubasa/system-test-proxy
system tests: fix some tests in proxy environment
2022-09-06 15:53:45 +02:00
OpenShift Merge Robot 4e06aa3771
Merge pull request #15584 from sstosh/generate-systemd-env
Add generate systemd -e/--env option
2022-09-06 15:40:55 +02:00
Paul Holzinger 77ab6125f2
remove SkipIfNotFedora() from events test
They should work on all distros.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-06 13:57:06 +02:00
Paul Holzinger d22aeeec28
fix podman events with custom format
podman events --format {{.ID}} was not working since the template was
converted to a range but we only render each event individually.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-06 13:56:26 +02:00
Toshiki Sonoda a9a411f8a8 Add generate systemd -e/--env option
-e/--env option sets environment variables to the systemd unit files.

Fixes: #15523

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-06 20:17:11 +09:00
Valentin Rothberg 274d34a25a kube play: support auto updates and rollbacks
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>
2022-09-06 08:56:55 +02:00
Tsubasa Watanabe 04f0ac2aab system tests: fix some tests in proxy environment
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>
2022-09-06 14:22:31 +09:00
OpenShift Merge Robot 5c7f283361
Merge pull request #15618 from mheon/add_group_to_addtlgroups
Add container GID to additional groups
2022-09-05 00:16:51 +02:00
François Poirotte 71978b0a0c
Fix #15243 Set AutomountServiceAccountToken to false
podman does not use any service account token, so we set the automount flag
to false in podman generate kube.

Signed-off-by: François Poirotte <clicky@erebot.net>
2022-09-04 22:51:56 +02:00
OpenShift Merge Robot 7cc2543433
Merge pull request #15605 from TomSweeneyRedHat/dev/tsweeney/adjusttest
Update test per comment in #15555
2022-09-04 14:24:00 +02:00
Matthew Heon d82a41687e Add container GID to additional groups
Mitigates a potential permissions issue. Mirrors Buildah PR #4200
and CRI-O PR #6159.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-09-02 15:51:36 -04:00
OpenShift Merge Robot c5da5e459a
Merge pull request #15599 from umohnani8/gen-kube
Fix bind-mount-option annotation in gen/play kube
2022-09-02 20:12:25 +02:00
OpenShift Merge Robot 9ab6449e36
Merge pull request #15587 from edsantiago/skip_ubuntu_flake
CI: disable flaking test on ubuntu
2022-09-02 00:05:07 +02:00
Ed Santiago 3e744e52b5 System tests for podman-update
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>
2022-09-01 15:42:35 -06:00
tomsweeneyredhat c05b6e5d3b Update test per comment in #15555
While backporting a test from main, @edsantiago asked that
the test be adjusted as noted here:
https://github.com/containers/podman/pull/15555#issuecomment-1232791752.

This PR brings those same changes to main for posterity sake.

Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
2022-09-01 15:55:42 -04:00
Charlie Doern 050f3291b9 implement podman update
podman update allows users to change the cgroup configuration of an existing container using the already defined resource limits flags
from podman create/run. The supported flags in crun are:

this command is also now supported in the libpod api via the /libpod/containers/<CID>/update endpoint where
the resource limits are passed inthe request body and follow the OCI resource spec format

–memory
–cpus
–cpuset-cpus
–cpuset-mems
–memory-swap
–memory-reservation
–cpu-shares
–cpu-quota
–cpu-period
–blkio-weight
–cpu-rt-period
–cpu-rt-runtime
-device-read-bps
-device-write-bps
-device-read-iops
-device-write-iops
-memory-swappiness
-blkio-weight-device

resolves #15067

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-09-01 13:02:01 -04:00
Urvashi Mohnani 4a1acccf96 Fix bind-mount-option annotation in gen/play kube
The format used for setting the bind-mount-options annotations
in the kube yaml was incorrect and caused k8s to throw an error
when trying to play the generated kube yaml.
Fix the annotation format to match the rules of k8s.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-09-01 11:51:46 -04:00
Ed Santiago 64eb079415 CI: disable flaking test on ubuntu
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>
2022-09-01 09:27:21 -06:00
OpenShift Merge Robot 0085fbb488
Merge pull request #15571 from umohnani8/gen-kube
Set enableServiceLinks to false in generated yaml
2022-09-01 15:17:39 +02:00
OpenShift Merge Robot 72f4c77139
Merge pull request #15360 from m0duspwnens/api_compat_containers
api: return imageID instead of imageName, for "Image" when Podman api is queried
2022-09-01 10:58:33 +02:00
Urvashi Mohnani 84352a81c9 Set enableServiceLinks to false in generated yaml
Since podman doesn't set/use the needed service env
variable, always set enableServiceLinks to false in
the generated kube yaml.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-08-31 14:02:13 -04:00
OpenShift Merge Robot 8266dbe7a9
Merge pull request #15473 from umohnani8/empty-dir
Add emptyDir volume support to kube play
2022-08-31 09:36:04 -04:00
OpenShift Merge Robot 6bda96ab18
Merge pull request #15510 from vrothberg/fix-15485
podman rmi: emit untag events
2022-08-31 09:19:10 -04:00
Jason Ertel 368fa6074d
Merge branch 'containers:main' into api_compat_containers 2022-08-30 14:12:01 -04:00
Urvashi Mohnani 98169c20dd Add emptyDir volume support to kube play
When a kube yaml has a volume set as empty dir, podman
will create an anonymous volume with the empty dir name and
attach it to the containers running in the pod. When the pod
is removed, the empy dir volume created is also removed.

Add tests and docs for this as well.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-08-30 10:34:45 -04:00
Giuseppe Scrivano e015c9e3f7
podman: add uid and gid options to keep-id
add two new options to the keep-id user namespace option:

- uid: allow to override the UID used inside the container.
- gid: allow to override the GID used inside the container.

For example, the following command will map the rootless user (that
has UID=0 inside the rootless user namespace) to the UID=11 inside the
container user namespace:

$ podman run --userns=keep-id:uid=11 --rm -ti  fedora cat /proc/self/uid_map
         0          1         11
        11          0          1
        12         12      65525

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-08-30 14:39:27 +02:00
Ed Santiago a240146a2d e2e tests: try to deflake 5000
We keep getting flakes in tests that use port 5000. Try to
find and fix, by switching ports where possible, and locking
5000 when not possible (or not easy) to switch.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-08-29 14:11:46 -06:00
Josh Patterson 0e53c8c735 Merge remote-tracking branch 'upstream/main' into api_compat_containers 2022-08-29 15:48:02 -04:00
Jason Ertel 08af95f635
updated apiv2 tests to reflect hash compat fix
Signed-off-by: Jason Ertel <jason.ertel@securityonionsolutions.com>
2022-08-29 14:10:33 -04:00
OpenShift Merge Robot cf20e6ed39
Merge pull request #15481 from edsantiago/test_cleanup_apiv2
APIv2 test cleanup, part 2 of 2
2022-08-29 07:08:51 -04:00
OpenShift Merge Robot e78363d24c
Merge pull request #15516 from kubealex/handle-connected-network
Handle an already connected network in libpod API
2022-08-29 06:56:15 -04:00
Alessandro Rossi 78aec21302 Fix #15499 already connected network
Compat: Treat already attached networks as a no-op
Applies only to containers in created state. Maintain error in running state.

Co-authored-by: Alessandro Rossi <al.rossi87@gmail.com>
Co-authored-by: Brent Baude <bbaude@redhat.com>
Co-authored-by: Jason T. Greene <jason.greene@redhat.com>
Signed-off-by: Alessandro Rossi <al.rossi87@gmail.com>
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2022-08-27 20:03:40 -05:00
Valentin Rothberg 0ee9a3129b podman rmi: emit untag events
Emit untag events for each tag when removing an image.

Fixes: #15485
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-08-27 13:40:50 +02:00
Aditya R e00272cd99
remote: fix implementation of build with --userns=auto for API
`podman-remote` and Libpod API does not supports build with
`--userns=auto` since `IDMappingOptions` were not implemented for API
and bindings, following PR implements passing `IDMappingOptions` via
bindings to API.

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-08-26 16:53:40 +05:30
OpenShift Merge Robot 339797c016
Merge pull request #15490 from rhatdan/codespell
Run codespell
2022-08-26 05:20:40 -04:00
Matthew Heon c7fda06f66 Compat API image remove events now have 'delete' status
Change only the compat API, so we don't force a breaking change
on Libpod API users.

Partial fix for #15485

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2022-08-25 16:59:26 -04:00
Daniel J Walsh 9553f3bafa
Run codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-25 16:32:31 -04:00
Ed Santiago e634470fae APIv2 test cleanup, part 2 of 2
This finishes the removal of curls and exits.

Please please please, everyone, if you see a 'curl' or 'exit'
in any new PR, reject the PR and tell me immediately so I can
help the developer do it the proper way.

Also, removed some very-very-wrong USER/UID code. Both are
reserved variables in bash. You cannot override them.

Also, added a cleanup to a system-connection test. I wasted
a lot of time because my podman-remote stopped working, all
because I had run this test as part of something unrelated.

Also, found and fixed dangerously-broken timeout code.
Implemented a new mechanism for requiring a timeout.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-08-25 11:07:11 -06:00
OpenShift Merge Robot e652eec438
Merge pull request #15468 from edsantiago/test_cleanup_bats
System test cleanup
2022-08-25 10:29:33 -04:00
Valentin Rothberg d122aa4935
Merge pull request #15469 from edsantiago/test_cleanup_apiv2
APIv2 test cleanup
2022-08-25 10:23:33 +02:00
Ed Santiago 010d495a34 APIv2 test cleanup
Whole slew of bugs that got introduced while I wasn't paying
attention. Most of them are of the form "let's use hand-crafted
curl commands and do our own error checking and exit uncleanly
on error and leave the system in an unstable state". To be
fair, those were done because there was no existing mechanism
for uploading JSON files or somesuch. So, add one.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-08-24 15:15:00 -06:00
Ed Santiago a933269ba5 System test cleanup
Misspellings, broken code, missing tests

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-08-24 14:48:13 -06:00
Giuseppe Scrivano 35b4f26c70
test: use private instead of slave for the mount
using "slave" means that every mount operation on the host that
happens between the mount creation for `/host` and running `findmnt`
will be propagated to the container mount.  To prevent new mounts on
the host to appear in the container thus invalidating the test we
have, just create the mount as private and use `/sys` as source as it
has multiple mounts on the top but less likely to get new mounts once
it is configured.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-08-24 22:24:09 +02:00
Daniel J Walsh 46bfd3d0cf
Merge pull request #15454 from vrothberg/bump-psgo
vendor containers/psgo@v1.7.3
2022-08-24 14:27:37 -04:00
OpenShift Merge Robot 361eb42619
Merge pull request #15434 from rhatdan/manifest1
Allow podman to run in an environment with keys containing spaces
2022-08-24 13:29:20 -04:00
Giuseppe Scrivano ea67d84f5a
test: fix comment
it is not a kernel bug.

Rootless users are not allowed to use non recursive bind mounts,
otherwise they would be able to uncover mounts that were not visible
before to them.

[CI:DOCS] it is just a comment fix.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-08-24 17:39:15 +02:00
Valentin Rothberg 88e4e4c82e vendor containers/psgo@v1.7.3
Add three new capabilities that would otherwise be reported as unknown.

Also add an e2e test making sure that `podman top` knows all
capabilities of the current kernel.  I refrained from adding a system
test since this may blow up in gating tests.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-08-24 17:13:58 +02:00
OpenShift Merge Robot 082388a159
Merge pull request #15439 from rhatdan/service
Fix documentation of use of tcp connections
2022-08-24 09:59:31 -04:00
OpenShift Merge Robot 0f92cf22a6
Merge pull request #15437 from mheon/default_volume_timeout
Add support for containers.conf volume timeouts
2022-08-24 09:35:57 -04:00
OpenShift Merge Robot 67c4068bb3
Merge pull request #15443 from flouthoc/env-merge-support
run,create: add support for `--env-merge` for preprocessing default environment variables
2022-08-24 09:14:42 -04:00
OpenShift Merge Robot e4cbbe7862
Merge pull request #15447 from sstosh/e2e-memswap
e2e: Add run --memory-swap test
2022-08-24 08:48:57 -04:00
OpenShift Merge Robot d4e54fa999
Merge pull request #15351 from marshall-lee/images-pull-simple
Simplify ImagesPull for when Quiet flag is on
2022-08-24 06:00:03 -04:00
Toshiki Sonoda e1c206d982 e2e: Add run --memory-swap test
There is not e2e/system test of --memory-swap option.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-08-24 18:15:21 +09:00
Aditya R b4584ea854
run,create: add support for --env-merge for preprocessing vars
Allow end users to preprocess default environment variables before
injecting them into container using `--env-merge`

Usage
```
podman run -it --rm --env-merge some=${some}-edit --env-merge
some2=${some2}-edit2 myimage sh
```

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-08-24 14:06:25 +05:30
Daniel J Walsh 8b1e88bf80
Fix documentation of use of tcp connections
Fixes: https://github.com/containers/podman/issues/15430

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-23 16:12:08 -04:00
Matthew Heon 0f73935563 Add support for containers.conf volume timeouts
Also, do a general cleanup of all the timeout code. Changes
include:
- Convert from int to *uint where possible. Timeouts cannot be
  negative, hence the uint change; and a timeout of 0 is valid,
  so we need a new way to detect that the user set a timeout
  (hence, pointer).
- Change name in the database to avoid conflicts between new data
  type and old one. This will cause timeouts set with 4.2.0 to be
  lost, but considering nobody is using the feature at present
  (and the lack of validation means we could have invalid,
  negative timeouts in the DB) this feels safe.
- Ensure volume plugin timeouts can only be used with volumes
  created using a plugin. Timeouts on the local driver are
  nonsensical.
- Remove the existing test, as it did not use a volume plugin.
  Write a new test that does.

The actual plumbing of the containers.conf timeout in is one line
in volume_api.go; the remainder are the above-described cleanups.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-08-23 15:42:00 -04:00
Daniel J Walsh 65efcdf709
Allow podman to run in an environment with keys containing spaces
Fixes: https://github.com/containers/podman/issues/15251

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-23 14:44:23 -04:00
OpenShift Merge Robot 5dea1218a0
Merge pull request #15426 from nicrowe00/14955
podman kube play/down --read from URL
2022-08-23 11:12:50 -04:00
OpenShift Merge Robot 8a32e516f7
Merge pull request #15415 from cdoern/clone
pass environment variables to container clone
2022-08-23 11:04:31 -04:00
OpenShift Merge Robot 5948320951
Merge pull request #15384 from sstosh/options-cgroupsv1-rootless
Warning messages are printed and ignored if we use an unsupported option on cgroups V1 rootless systems
2022-08-23 09:42:47 -04:00
Niall Crowe 5f719b533e podman kube play/down --read from URL
`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>
2022-08-23 12:55:53 +01:00
Aditya R 70e103c04c
inspect, image: alias .Config.HealthCheck to .HealthCheck for compatibility
Support inspecting image healthcheck using docker supported
`.Config.HealthCheck` by aliasing field to `.HealthCheck`

Now supports

```Console
podman image inspect -f "{{.Config.Healthcheck}}" imagename
```

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-08-23 13:39:01 +05:30
Toshiki Sonoda 64339d47c1 Warning messages are printed and ignored if we use an unsupported option
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>
2022-08-23 11:54:31 +09:00
OpenShift Merge Robot 51d4b88ce9
Merge pull request #15392 from ashley-cui/quiet
Add quiet/q flag to podman secret ls
2022-08-22 15:46:47 -04:00
Charlie Doern 53369aaa15 pass environment variables to container clone
the env vars are held in the spec rather than the config, so they need to be mapped manually. They are also of a different format so special handling needed to be added. All env from the parent container will now be passed to the clone.

resolves #15242

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-08-22 14:27:42 -04:00
OpenShift Merge Robot e9fe85d53a
Merge pull request #15363 from rhatdan/secret
podman secret create -d alias --driver, inspect -f alias --format: Docker compatibity
2022-08-22 13:36:05 -04:00
Ashley Cui eee0ec97e8 Add quiet/q flag to podman secret ls
Add quiet/q flag to podman secret ls, which will print only the secret
ID.

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-08-22 09:13:00 -04:00
Valentin Rothberg 1f76ad40a9 fix CI: remove hardcodeded alpine version
The apiv2 test hardcoded the tag of the alpine image.
Remove it to unblock CI.

Fixes: #15388
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-08-22 10:12:25 +02:00
Vladimir Kochnev 3bf52aa338
Add ProgressWriter to PullOptions
Signed-off-by: Vladimir Kochnev <hashtable@yandex.ru>
2022-08-19 00:41:22 +03:00
Ed Santiago 09ef6fc66c podman generate kube - add actual tests
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>
2022-08-18 09:43:55 -06:00
OpenShift Merge Robot f63da351f2
Merge pull request #15364 from rhatdan/stats
Add podman stats --no-trunc option
2022-08-17 21:46:21 +00:00
Daniel J Walsh 0dd2fcf715
Add podman manifest create -a. Alias for --amend:Docker compatibility
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-17 15:02:53 -04:00
Daniel J Walsh 546bb3548c
Add podman stats --no-trunc option
This is for compatibility with Docker.

Partial fix for https://github.com/containers/podman/issues/14917

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-17 13:16:01 -04:00
Daniel J Walsh f6e7b0b59d
Add podman secret inspect -f alias for --format: Docker compatibility
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-17 12:49:30 -04:00
Daniel J Walsh d50ff4f512
Add podman secret create -d as alias for --driver for Docker compatibility
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-17 12:44:42 -04:00
OpenShift Merge Robot 5de215e144
Merge pull request #15341 from rhatdan/kube
Fix podman kube generate --help to show correct help message
2022-08-17 16:35:34 +00:00
Lokesh Mandvekar 2a6daa1e31
Cirrus: add podman_machine_aarch64
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>
2022-08-17 09:11:06 -04:00
OpenShift Merge Robot c90eec2700
Merge pull request #14999 from sstosh/restart-option
Add restart --cidfile, --filter
2022-08-17 09:41:54 +00:00
Nalin Dahyabhai 7e7a79b075 podman manifest create: accept --amend and --insecure flags
Accept a --amend flag in `podman manifest create`, and treat
`--insecure` as we would `--tls-verify=false` in `podman manifest`'s
"add", "create", and "push" subcommands.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2022-08-16 19:45:36 -04:00
Daniel J Walsh 5f09d9b60d
Fix podman kube generate --help to show correct help message
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-16 16:03:48 -04:00
Ed Santiago 06b3a4c1cf system tests: fix broken runc test
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>
2022-08-16 10:53:05 -06:00
OpenShift Merge Robot 3dace12777
Merge pull request #15317 from rhatdan/debug
Add compatibility support for --debug flag from docker
2022-08-16 15:09:12 +00:00
OpenShift Merge Robot d0567dd078
Merge pull request #15270 from nicrowe00/kubegenerate
Add "podman kube generate" command
2022-08-16 13:04:41 +00:00
Daniel J Walsh 2d30b4dee5
Add compatibility support for --debug -D flag from docker
This is another fix for https://github.com/containers/podman/issues/14917

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-15 08:21:15 -04:00
Daniel J Walsh b9c094a5d4
Add Docker compatibility for --dns-option to --dns-opt
Fixes one of the issues found in https://github.com/containers/podman/issues/14917
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-15 07:38:08 -04:00
Toshiki Sonoda 0dbbb1cb3f Add restart --cidfile, --filter
--cidfile : Read container ID from the specified file and restart the container.
--filter : restart the filtered container.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-08-12 09:22:53 +09:00
OpenShift Merge Robot 57387da27e
Merge pull request #15285 from YoitoFes/fix-15210
remote manifest push: show copy progress
2022-08-11 19:53:17 +00:00
Niall Crowe d856fb43e1 Add "podman kube generate" command
"podman kube generate" creates Kubernetes YAML from Podman containers,
pods or volumes. Users will still be able to use "podman generate
kube" as an alias of "kube generate".

Signed-off-by: Niall Crowe <nicrowe@redhat.com>
2022-08-11 16:58:24 +01:00
Naoto Kobayashi a4efd401cd remote manifest push: show copy progress
`podman-remote manifest push` has shown absolutely no progress at all.
Fix that by doing the same as the remote-push code does.

Like remote-push, `quiet` parameter is true by default for backwards
compatibility.

Signed-off-by: Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
2022-08-11 20:35:13 +09:00
Valentin Rothberg 79e21b5b16 kube play: sd-notify integration
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>
2022-08-10 21:12:39 +02:00
Valentin Rothberg 3fc126e152 libpod: allow the notify socket to be passed programatically
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>
2022-08-10 21:10:17 +02:00
OpenShift Merge Robot 89ab5c9fab
Merge pull request #12865 from rhatdan/crun
I believe that these tests will now run with crun.
2022-08-10 10:38:46 +00:00
OpenShift Merge Robot aa13c73f71
Merge pull request #14926 from cdoern/generateSpec
podman generate spec
2022-08-10 10:23:18 +00:00
Daniel J Walsh 25f6fc9c6a
I believe that these tests will now run with crun.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-09 15:41:33 -04:00
Charlie Doern 280f5d8cb0 podman ssh work, using new c/common interface
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>
2022-08-09 14:00:58 -04:00
OpenShift Merge Robot 097cc6eb6d
Merge pull request #15225 from unknowndevQwQ/update_logo
[CI:DOCS]: update the podman logo
2022-08-09 14:28:59 +00:00
OpenShift Merge Robot a7af6ef632
Merge pull request #15246 from TomSweeneyRedHat/dev/tsweeney/buildah1.27.0
Bump to Buildah v1.27.0
2022-08-09 13:32:07 +00:00
OpenShift Merge Robot 7992d86ab3
Merge pull request #15134 from sstosh/improve-output
Output messages display rawInput
2022-08-09 06:13:10 +00:00
Aditya R 3738221c52
test: update apply-podman-deltas for new tests
Skip some newly added test for remote and modify error output of a test
case which is reporter early in case of podman.

[NO NEW TESTS NEEDED]
[NO TESTS NEEDED]

Signed-off-by: Aditya R <arajan@redhat.com>
2022-08-09 09:13:14 +05:30
Giuseppe Scrivano 2e3a192bb0
cmd: refuse --userns if a mapping is specified
if an explicit mapping is specified, do not accept `--userns` since it
overriden to "private".

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-08-08 14:57:23 +02:00
unknowndevQwQ f4c53a41cf docs: update the podman logo
for podman/#15222

Signed-off-by: unknowndevQwQ <unknowndevQwQ@pm.me>
2022-08-07 09:11:53 +08:00
openshift-ci[bot] 2477a68b43
Merge pull request #15205 from sstosh/ci-run-cleanup-rootless
e2e: Add rootless mount cleanup test
2022-08-06 18:56:57 +00:00
openshift-ci[bot] 66c246d2c1
Merge pull request #15093 from karthikelango137/rmiNoPrune1
remove image podman no prune
2022-08-05 14:48:18 +00:00
openshift-ci[bot] 49ee311950
Merge pull request #15092 from karthikelango137/startFilter
start --filter flag changes
2022-08-05 06:43:56 +00:00
Toshiki Sonoda 83bd7a5c28 e2e: Add rootless mount cleanup test
`podman run -d mount cleanup test` adapt to rootless environment.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-08-05 12:01:51 +09:00
Karthik Elango cc8e4d5fec remove image podman no prune
Signed-off-by: Karthik Elango <kelango@redhat.com>
2022-08-04 14:55:03 -04:00
Charlie Doern 842c6c7c67 podman generate spec
implement a new command `podman generate spec` which can formulate a json specgen to be consumed by both the pod
and container creation API.

supported flags are

--verbose (default true) print output to the terminal
--compact print the json output in a single line format to be piped to the API
--filename put the output in a file
--clone rename the pod/ctr in the spec so it won't conflict w/ an existing entity

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-08-04 13:59:58 -04:00
openshift-ci[bot] e9f1eb28c4
Merge pull request #15197 from vrothberg/fix-15006
podman rmi: improve error message for build containers
2022-08-04 17:47:03 +00:00
Valentin Rothberg 3102194f03 podman rmi: improve error message for build containers
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>
2022-08-04 16:42:02 +02:00
Karthik Elango 9964366f69 start filter flag changes
Tying filtering logic for podman stop and start to same place in getContainersAndInputByContext() to reduce code redundancy

Signed-off-by: Karthik Elango <kelango@redhat.com>
2022-08-04 09:08:14 -04:00
Valentin Rothberg f8b6a81ae4 test/system/255-auto-update.bats: add an SELinux comment
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>
2022-08-04 13:07:58 +02:00
Charlie Doern 7df8d80508 add omitempty to Secret in k8s VolumeSource
Secret was populating a generated kube as `null`. Add omitempty
so that when the volume source is not a secret, we do not print unnecessary info

resolves #15156

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-08-03 16:42:28 -04:00
openshift-ci[bot] 5fc7339aa1
Merge pull request #15084 from sstosh/rm-filter
Add rm --filter option
2022-08-03 17:23:07 +00:00
openshift-ci[bot] c1a38eb773
Merge pull request #15161 from lsm5/switch-to-dnf
Cirrus: use dnf instead of rpm to install packages
2022-08-03 15:14:22 +00:00
openshift-ci[bot] e54dac4dc6
Merge pull request #15166 from sstosh/ci-mount-rootless
Cirrus: Fix e2e tests for "mount_rootless_test"
2022-08-03 13:55:25 +00:00
Lokesh Mandvekar 50981cb846
skip pod resource limits test on aarch64
Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2022-08-03 08:29:59 -04:00
Toshiki Sonoda 1dbd61653d Cirrus: Fix e2e tests for "mount_rootless_test"
e2e `mount_rootless_test` did not load `podman binary path` successfully.
This PR fix this problem.

[It] podman unshare podman mount:
```
[+1596s] Running: ... unshare  mount <cid>
[+1596s] Error: exec: no command
[+1596s] output:
```

[It] podman unshare image podman mount:
```
[+1599s] Running: ... unshare  image mount quay.io/libpod/alpine:latest
[+1599s] Error: exec: no command
[+1599s] output:
```

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-08-03 17:01:18 +09:00
Niall Crowe 1249cbb75f add "podman kube down" command
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>
2022-08-02 16:27:01 +01:00
Toshiki Sonoda 2685c8dc43 Output messages display rawInput
`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>
2022-08-02 18:28:37 +09:00
Aditya R 5ab98f2c07 test: verify manifest inspect must contain OCI annotations
Signed-off-by: Aditya R <arajan@redhat.com>
2022-08-01 21:47:04 +05:30
Valentin Rothberg 3a05ddfb73 fix e2e sign tests
The key used in the tests has expired.  Remove the expiration date to
turn CI happy and green.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-08-01 16:21:55 +02:00
OpenShift Merge Robot 82137dc64e
Merge pull request #15108 from mtrmac/sigstore-sign
Sigstore sign
2022-08-01 13:35:43 +02:00
Miloslav Trmač d462da676c Add support for creating sigstore signatures, and providing passphrases
- Allow creating sigstore signatures via --sign-by-sigstore-private-key .
  Like existing --sign-by, it does not work remote (in this case
  because we would have to copy the private key to the server).
- Allow passing a passphrase (which is mandatory for sigstore private keys)
  via --sign-passphrase-file; if it is not provided, prompt interactively.
- Also, use that passphrase for --sign-by as well, allowing non-interactive
  GPG use. (But --sign-passphrase-file can only be used with _one of_
  --sign-by and --sign-by-sigstore-private-key.)

Note that unlike the existing code, (podman build) does not yet
implement sigstore (I'm not sure why it needs to, it seems not to
push images?) because Buildah does not expose the feature yet.

Also, (podman image sign) was not extended to support sigstore.

The test for this follows existing (podman image sign) tests
and doesn't work rootless; that could be improved by exposing
a registries.d override option.

The test for push is getting large; I didn't want to
start yet another registry container, but that would be an
alternative.  In the future, Ginkgo's Ordered/BeforeAll
would allow starting a registry once and using it for two
tests.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2022-07-30 17:26:08 +02:00
Miloslav Trmač 5a5624f818 Update the registry server we test against from 2.6 to 2.8
... primarily so that it can support OCI artifacts.

2.8 already seems to exist in the repo.

This requires changing WaitContainerReady to also check
stderr (ultimately because docker/distribution was
updated to a more recent sirupsen/logrus, which logs
by default to stderr instead of stdout).

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2022-07-30 17:24:31 +02:00
Miloslav Trmač 7599fde73e Use existing REGISTRY_IMAGE variables in more places
... instead of hard-coding a copy of the value.

Notably this makes hack/podman_registry actually
support the documented -i option.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2022-07-30 17:23:38 +02:00
Romain Geissler 24a599fe1d Add flag "--compression-format" to "podman manifest push" both in local/remote mode.
Also Fix usage of flag "--compression-format" for remote "podman image push". Fix usage of flags "--format", "--remove-signatures" in remote "podman manifest push".
Closes #15109.

Signed-off-by: Romain Geissler <romain.geissler@amadeus.com>
2022-07-30 15:10:41 +00:00
Toshiki Sonoda 53ec479685 Add rm --filter option
--filter : remove the filtered container.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-07-30 10:59:59 +09:00
Miloslav Trmač 68463278e3 Use httpasswd from the surrouding OS instead of the registry image
htpasswd is no longer included in docker.io/library/distribution
after 2.7.0, per https://github.com/docker/distribution-library-image/issues/107 ,
and we want to upgrade to a recent version.

At least system tests currently execute htpasswd from the OS,
so it seems that it is likely to be available.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2022-07-30 01:54:22 +02:00
OpenShift Merge Robot a43cfc1b1a
Merge pull request #15060 from rhatdan/rm1
With --rm option remove container if podman run fails
2022-07-28 21:31:34 +02:00
dependabot[bot] 17e3680fbe
Bump golang.org/x/tools from 0.1.11 to 0.1.12 in /test/tools
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.1.11 to 0.1.12.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.1.11...v0.1.12)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-28 12:55:26 +00:00
Daniel J Walsh de13dea863
With --rm option remove container if podman run fails
Fixes https://github.com/containers/podman/issues/15049

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-07-28 05:54:58 -04:00
OpenShift Merge Robot e1238ceb89
Merge pull request #14801 from lsm5/ec2-aarch64
Cirrus: enable Fedora 36 aarch64 tasks on EC2
2022-07-28 11:33:31 +02:00
OpenShift Merge Robot b933b8a1c1
Merge pull request #15034 from sstosh/manifest-push-rm
Fix: manifest push --rm removes a correct manifest list
2022-07-27 16:54:55 -04:00
OpenShift Merge Robot f7a0a24d20
Merge pull request #15066 from sstosh/checkpoint-samename
Fix: Restore a container which name is equal to a image name
2022-07-27 16:49:46 -04:00
Lokesh Mandvekar da98c88778
Cirrus: enable Fedora 36 aarch64 tasks on EC2
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>
2022-07-27 15:27:52 -04:00
OpenShift Merge Robot 432348e8e4
Merge pull request #14959 from rhatdan/rm
When removing objects specifying --force,podman should exit with 0
2022-07-27 14:10:19 -04:00
OpenShift Merge Robot eea8e570f2
Merge pull request #14997 from cdoern/prune
prune filter handling
2022-07-27 09:38:12 -04:00
Toshiki Sonoda 8628c01f5e Fix: manifest push --rm removes a correct manifest list
This bug is reproduced when we execute the following command:

1. podman manifest add <manifest list> <images exist on local storage>
2. podman manifest push --rm <manifest list> dir:<directory>

If pushing succeeds, it is expected to remove only a manifest list.
However, manifest list remains on local storage and images are removed.

This commit fixes `podman manifest push --rm` to remove only a manifest list.

And, supports `manifest push --rm option` in remote environment,
like host environment.

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

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-07-27 10:33:15 +09:00
Toshiki Sonoda e4992fb818 Fix: Restore a container which name is equal to a image name
If there is a match for both container and image, we restore the container.

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

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-07-27 09:44:48 +09:00
Daniel J Walsh 75419c5d88
When removing objects specifying --force,podman should exit with 0
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>
2022-07-26 16:00:42 -04:00
OpenShift Merge Robot 7f0fab10d1
Merge pull request #15059 from cdoern/infra
pod create --share none should not create infra
2022-07-26 16:21:40 +02:00
OpenShift Merge Robot 43d6f89d12
Merge pull request #15057 from marshall-lee/tls-verify-default-true
Set TLSVerify=true by default for API endpoints
2022-07-26 11:52:17 +02:00
Vladimir Kochnev 52a4642edd
Set TLSVerify=true by default for API endpoints
Option defaults in API must be the same as in CLI.

```
% podman image push --help
% podman image pull --help
% podman manifest push --help
% podman image search --help
```

All of these CLI commands them have --tls-verify=true by default:
```
--tls-verify  require HTTPS and verify certificates when accessing the registry (default true)
```

As for `podman image build`, it doesn't have any means to control
`tlsVerify` parameter but it must be true by default.

Signed-off-by: Vladimir Kochnev <hashtable@yandex.ru>
2022-07-26 02:07:56 +03:00
Ed Santiago 94e0a364a8 Semiperiodoc cleanup of obsolete FIXMEs
Some refer to issues that are closed. Remove them.

Some are runc bugs that will never be fixed. Say so, and remove
the FIXME.

One (bps/iops) should probably be fixed. File an issue for it, and
update comment to include the issue# so my find-obsolete-skips script
can track it.

And one (rootless mount with a "kernel bug?" comment) is still
not fixed. Leave the skip, but add a comment documenting the symptom.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-07-25 13:08:35 -06:00
Charlie Doern 27679d80b8 pod create --share none should not create infra
for podman pod create, when we are not sharing any namespaces there is no point for the infra container.
This is especially true since resources have also been decoupled from the container recently.

handle this on the cmd level so that we can still create infra if set explicitly

resolves #15048

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-25 13:11:06 -04:00
Valentin Rothberg 4d18a98ec2 benchmarks: fix create test
And a new one for `run --detach`.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-25 17:44:13 +02:00
Charlie Doern 4724a0000d prune filter handling
network and container prune could not handle the label!=... filter. vendor in c/common to fix this and
add some podman level handling to make everything run smoothly

resolves #14182

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-25 09:28:26 -04:00
OpenShift Merge Robot da1f479216
Merge pull request #15035 from cdoern/cgroup
fix container create/run throttle devices
2022-07-23 01:35:58 +02:00
OpenShift Merge Robot 935c150ee2
Merge pull request #15042 from Luap99/int-remote-netbackend
integration test: fix network backend option with remote
2022-07-22 19:32:58 +02:00
OpenShift Merge Robot 9b4df69830
Merge pull request #14967 from sstosh/pause-option
Add pause/unpause --latest, --cidfile, --filter
2022-07-22 18:12:50 +02:00
Charlie Doern ad8940cecf fix container create/run throttle devices
pod resource limits introduced a regression where `FinishThrottleDevices` was not called for create/run

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-22 11:42:51 -04:00
OpenShift Merge Robot f53234a67e
Merge pull request #15040 from Luap99/api-umask
API: libpod/create use correct default umask
2022-07-22 17:34:22 +02:00
OpenShift Merge Robot d1f432dd56
Merge pull request #14567 from cdoern/secrets
Implement kubernetes secret handling for podman play kube
2022-07-22 16:07:45 +02:00
Paul Holzinger 290116bf81
integration test: fix network backend option with remote
I honestly do not understand all this extra option parsing here but
there is really no reason to exclude  the option for remote, all the
other global options are also set there.

This fixes a problem with mixed cni/netavark use because the option was
unset.

Fixes #15017

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-07-22 15:29:18 +02:00
OpenShift Merge Robot 5e43fb15cc
Merge pull request #15016 from Luap99/compat-netname
compat api: allow default bridge name for networks
2022-07-22 14:27:41 +02:00
Paul Holzinger 5a80770e8e
API: libpod/create use correct default umask
Make sure containers created via API have the correct umask from
containers.conf set.

Fixes #15036

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-07-22 14:20:29 +02:00
OpenShift Merge Robot 99bf6f96cd
Merge pull request #14972 from edsantiago/ubuntu_cgroups_v1
Bump VMs, to Ubuntu 2204 with cgroups v1
2022-07-22 14:04:52 +02:00
OpenShift Merge Robot 1f35789252
Merge pull request #15022 from vrothberg/fix-14971
remote push: show copy progress
2022-07-22 11:31:50 +02:00
Ed Santiago 0a160fed77 Bump VMs, to Ubuntu 2204 with cgroups v1
...and enable the at-test-time confirmation, the one that
double-checks that if CI requests runc we actually use runc.
This exposed a nasty surprise in our setup: there are steps to
define $OCI_RUNTIME, but that's actually a total fakeout!
OCI_RUNTIME is used only in e2e tests, it has no effect
whatsoever on actual podman itself as invoked via command
line such as in system tests. Solution: use containers.conf

Given how fragile all this runtime stuff is, I've also added
new tests (e2e and system) that will check $CI_DESIRED_RUNTIME.

Image source: https://github.com/containers/automation_images/pull/146

Since we haven't actually been testing with runc, we need
to fix a few tests:

  - handle an error-message change (make it work in both crun and runc)
  - skip one system test, "survive service stop", that doesn't
    work with runc and I don't think we care.

...and skip a bunch, filing issues for each:

  - #15013 pod create --share-parent
  - #15014 timeout in dd
  - #15015 checkpoint tests time out under $CONTAINER
  - #15017 networking timeout with registry
  - #15018 restore --pod gripes about missing --pod
  - #15025 run --uidmap broken
  - #15027 pod inspect cgrouppath broken
  - ...and a bunch more ("podman pause") that probably don't
    even merit filing an issue.

Also, use /dev/urandom in one test (was: /dev/random) because
the test is timing out and /dev/urandom does not block. (But
the test is still timing out anyway, even with this change)

Also, as part of the VM switch we are now using go 1.18 (up
from 1.17) and this broke the gitlab tests. Thanks to @Luap99
for a quick fix.

Also, slight tweak to #15021: include the timeout value, and
reword message so command string is at end.

Also, fixed a misspelling in a test name.

Fixes: #14833

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-07-21 20:08:32 -06:00
Charlie Doern c00ea686fe resource limits for pods
added the following flags and handling for podman pod create

--memory-swap
--cpuset-mems
--device-read-bps
--device-write-bps
--blkio-weight
--blkio-weight-device
--cpu-shares

given the new backend for systemd in c/common, all of these can now be exposed to pod create.
most of the heavy lifting (nearly all) is done within c/common. However, some rewiring needed to be done here
as well!

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-21 14:50:01 -04:00
OpenShift Merge Robot 5f53a67742
Merge pull request #15003 from giuseppe/create-etc-passwd
libpod: create /etc/passwd if missing
2022-07-21 19:45:56 +02:00
Giuseppe Scrivano dd2b794061
libpod: create /etc/passwd if missing
create the /etc/passwd and /etc/group files if they are missing in the
image.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-21 17:58:16 +02:00
Valentin Rothberg b79ac0aca2 remote push: show copy progress
`podman-remote push` has shown absolutely no progress at all. Fix that
by doing essentially the same as the remote-pull code does.

The get-free-out-of-jail-card for backwards compatibility is to let the
`quiet` parameter default to true.  Since the --quioet flag wasn't
working before either, older Podman clients do not set it.

Also add regression tests to make sure we won't regress again.

Fixes: #11554
Fixes: #14971
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-21 17:13:36 +02:00
OpenShift Merge Robot 04ed519e9d
Merge pull request #15021 from Luap99/e2e-timeout-output
e2e: show command and output when a timeout happens
2022-07-21 16:08:38 +02:00
Paul Holzinger afbfbe18a1
compose test: remove cni config copy
The network backend always has default config in memory so there is no
need to copy it. Also netavark cannot use it.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-07-21 15:37:10 +02:00
Paul Holzinger 80ad0cfd05
compat api: allow default bridge name for networks
Docker uses "bridge" as default network name so some tools expect this
to work with network list or inspect. To fix this we change "bridge" to
the podman default ("podman") name.

Fixes #14983

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-07-21 15:09:39 +02:00
Paul Holzinger 3a016c6e49
e2e: show command and output when a timeout happens
To make debugging easier we should see the command and its output when a
failure happens.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-07-21 14:43:00 +02:00
Valentin Rothberg c1f04a024a podman-remote pull: fix duplicate progress outputs
By vendoring the fixes from containers/image.  Also add a test (thanks
@edsantiago) to make sure we won't regress in the future again.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-21 10:04:45 +02:00
OpenShift Merge Robot abfdd4b00c
Merge pull request #14977 from umohnani8/init
Update init ctr default for play kube
2022-07-20 19:37:25 +02:00
cdoern 438fef1caa kube secret handling for podman play kube
add support for both creating a secret using yaml and mounting a secret as a volume given a yaml file.
Kubernetes secrets have a different structure than podman and therefore have to be handeled differently.
In this PR, I have introduced the basic usecases of kube secrets with more implementations like env secrets
to come!

resolves #12396

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-20 12:55:33 -04:00
Urvashi Mohnani da33f10055 Update init ctr default for play kube
Update the init container type default to once instead
of always to match k8s behavior.
Add a new annotation that can be used to change the init
ctr type in the kube yaml.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-07-20 10:02:32 -04:00
Toshiki Sonoda 9b152ef20e Add pause/unpause --latest, --cidfile, --filter
--latest : pause/unpause the latest container.
--filter : pause/unpause the filtered container.
--cidfile : Read container ID from the specified file and pause/unpause the container.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-07-20 19:30:11 +09:00
Ed Santiago 1f0116817d system tests: new system-service bats file
Followup to #14957, which added a new test that doesn't
actually belong in the 250-systemd.bats file. It was
copy-pasted from another test that doesn't belong there.

Move both tests to a new .bats file, because (1) they
need a custom cleanup, and (2) one of the tests should
very definitely run under podman-remote, and the 250
bats file has a global skip_if_remote().

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-07-18 13:06:09 -06:00
openshift-ci[bot] 5e4d729434
Merge pull request #14890 from rhatdan/VENDOR
Vendor in containers/(storage,image, common, buildah)
2022-07-18 17:17:26 +00:00
Ed Santiago 1aafb01a99
buildah vendor treadmill
As you run --sync, please update this commit message with your
actual changes.

Changes since 2022-06-14:
 - apply-podman-deltas: (minor) buildah 4057 changed the name
   of a test; make corresponding change here

 - apply-podman-deltas: buildah 4071 adds a new OCI-hook
   test that's failing in remote. Skip it.

 - apply-podman-deltas: buildah 4096 changed an error message

 - apply-podman-deltas: buildah 4097 added a test that doesn't
   work with podman-remote

 - run-buildah-bud-tests: only run 'sudo --validate' if we
   need to sudo later (for running tests). Otherwise, same
   thing: I run the treadmill script, step away, and come
   back to an unnecessary sudo prompt.

 - system tests: the new containers-storage changes some
   error messages; fix tests to reflect that. (And, unrelated,
   fix a red cleanup warning)

Signed-off-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-07-18 10:49:33 -04:00
Daniel J Walsh 5f848d89ed
Run codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-07-18 10:42:04 -04:00
Daniel J Walsh 18c0c19aa9
Add --host and -H as equivalent options to --url
Docker supports -H and --host for specify the listening socket. Podman
should support them also in order to match the CLI.

These will not be documented since Podman defaults to using the
--url option.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-07-18 10:41:00 -04:00
openshift-ci[bot] 98b22e29c9
Merge pull request #14932 from jakecorrenti/pull-all-tags-shorthand
Podman pull --all-tags shorthand option
2022-07-15 15:12:58 +00:00
openshift-ci[bot] f6e41e77c7
Merge pull request #14832 from karthikelango137/filterFlagStop
Podman stop --filter flag
2022-07-14 19:16:05 +00:00
Karthik Elango a2f6cc74e7 Podman stop --filter flag
Filter flag is added for podman stop and podman --remote stop. Filtering logic is implemented in
getContainersAndInputByContext(). Start filtering can be manipulated to use this logic as well to limit redundancy.

Signed-off-by: Karthik Elango <kelango@redhat.com>
2022-07-14 13:18:53 -04:00
Jake Correnti 90607a6d04 Podman pull --all-tags shorthand option
I added the shorthand option for `podman pull --all-tags`. Like Docker,
Podman can now do `podman pull -a`.

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-07-14 10:54:24 -04:00
Niall Crowe 3b5034e91a fix tests for "podman kube play"
This is a follow up to fix some of the apiv2
tests related to "podman kube play" while also
removing reduntant system tests.

Signed-off-by: Niall Crowe <nicrowe@redhat.com>
2022-07-14 15:47:27 +01:00
openshift-ci[bot] d4dc067117
Merge pull request #14923 from rhatdan/events
Add podman events -f to be alias for --filter
2022-07-14 12:01:40 +00:00
Daniel J Walsh cc2cfe0602
Add podman events -f to be alias for --filter
Needed for Docker compatibility.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-07-13 10:55:27 -04:00
Niall Crowe e08a77ce64 Add "podman kube play" cmd
The "podman kube play" command is designed to be a replacement for the
"podman play kube" command.
It performs the same function as "play kube"  while also still working with the same flags and options.
The "podman play kube" command is still functional as an alias of "kube play".

Closes #12475
Signed-off-by: Niall Crowe <nicrowe@redhat.com>
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-13 15:27:03 +01:00
openshift-ci[bot] 6323af78e7
Merge pull request #14916 from rhatdan/docker
Docker uses "-c" to mean "--cpu-shares" in create and run
2022-07-13 09:07:00 +00:00
Daniel J Walsh c9a82d72a7
Docker uses "-c" to mean "--cpu-shares" in create and run
Add support for -c as an alias for --cpu-shares to be compatible with
Docker.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-07-12 14:53:17 -04:00
Aditya R 27e12aa074
test,manifest-run: declare TARGETPLATFORM before using it
As part of fix for https://github.com/openshift/imagebuilder/issues/231
`FROM` does not expands `ARGS` which are not declared so
`TARGETPLATFORM`

Note: I think a patch should be added at imagebuilder to allow using
inbuilt ARGS  in FROM without declaring it as well but it is something
to be discussed so lets declare it manually in our tests

[NO NEW TESTS NEEDED]
[NO TESTS NEEDED]

Signed-off-by: Aditya R <arajan@redhat.com>
2022-07-12 19:52:11 +05:30
Erik Sjölund 377057b400 [CI:DOCS] Improve language. Fix spelling and typos.
* Correct spelling and typos.

* Improve language.

Co-authored-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-07-11 21:59:32 +02:00
openshift-ci[bot] 810cbf1fb9
Merge pull request #14181 from umohnani8/kube-hostname
Add ports and hostname correctly in kube yaml
2022-07-11 15:13:49 +00:00
openshift-ci[bot] ea2c31c988
Merge pull request #14874 from vrothberg/fix-14859
exit code improvements
2022-07-11 13:31:39 +00:00
openshift-ci[bot] 0df8c6e157
Merge pull request #14826 from sstosh/net-prune
Refactored networkPrune function
2022-07-11 12:53:59 +00:00
Valentin Rothberg 62cdc387de podman wait: return 0 if container never ran
Make sure to return/exit with 0 when waiting for a container that never
ran.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-11 13:06:40 +02:00
Valentin Rothberg b41e42f42b test/system/130-kill.bats: use $IMAGE
A copy-paste error led to use `alpine` instead.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-11 10:31:52 +02:00
openshift-ci[bot] 76422ecdbb
Merge pull request #14818 from rhatdan/wait
podman wait can take multiple conditions
2022-07-11 08:06:58 +00:00
openshift-ci[bot] 87feb82b07
Merge pull request #14219 from mheon/bump_version
Bump Compat API maximum version to v1.41
2022-07-08 18:49:54 +00:00
Urvashi Mohnani 81a19a568f Add ports and hostname correctly in kube yaml
If a pod is created without net sharing, allow adding
separate ports for each container to the kube yaml
and also set the pod level hostname correctly if the
uts namespace is not being shared.

Add a warning if the default namespace sharing options
have been modified by the user.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-07-08 11:21:48 -04:00
Ed Santiago 1e7686df6e Manifest test cleanup: use defer()
Followup to #14845: use defer(), not fragile global context,
to stop registry and clean up temporary envariable. Thanks
to mitr for the suggestion.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-07-08 06:19:30 -06:00
Daniel J Walsh 96dd57ca50
podman wait can take multiple conditions
Podman wait should not be defaulting to just stopped.  By default
wait API waits for stopped and exited.  We should not override this on
the client side.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-07-08 05:26:56 -04:00
openshift-ci[bot] 6087fb2116
Merge pull request #14839 from saschagrunert/errors-pkg
pkg: switch to golang native error wrapping
2022-07-08 09:24:25 +00:00
Sascha Grunert a46f798831
pkg: switch to golang native error wrapping
We now use the golang error wrapping format specifier `%w` instead of
the deprecated github.com/pkg/errors package.

[NO NEW TESTS NEEDED]

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2022-07-08 08:54:47 +02:00
Toshiki Sonoda d1754bdd4f Refactored networkPrune function
Refactored the networkPrune function to improve readability.

This commit changes the `networkPrune` function to
use the `PrintNetworkPruneResults` function.

[NO NEW TESTS NEEDED]

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-07-08 08:33:20 +09:00
Ed Santiago 1161e8bd54 manifest_test: safer registry setup and teardown
manifest_test:authenticated_push() is the final test left to
fix before merging #14397. The reason it's failing _seems_ to be
that podman is running with a mix of netavark and CNI, and
that _seems_ to be because this test invokes hack/podman-registry
which invokes plain podman without whatever options used in e2e.

Starting a registry directly from the test is insane: there is
no reusable code for doing that (see login_logout_test.go and
push_test.go. Yeesh.)

Solution: set $PODMAN, by inspecting the podmanTest object
which includes both a path and a list of options. podman-registry
will invoke that. (It will also override --root and --runroot.
This is the desired behavior).

Also: add cleanup. If auth-push test fails, stop the registry.

Also: add a sanity check to podman-registry script, have it
wait for the registry port to activate. Die if it doesn't.
That could've saved us a nice bit of debugging time.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-07-07 14:03:42 -06:00
openshift-ci[bot] 700f1faf6e
Merge pull request #14857 from edsantiago/dedup_uts_testname
[minor] fix duplicate test name
2022-07-07 19:00:33 +00:00
openshift-ci[bot] 41ac2cfb19
Merge pull request #14855 from edsantiago/port_forward_duh
port forward range test: fix an oops
2022-07-07 17:42:38 +00:00
Ed Santiago 3adda62d29 [minor] fix duplicate test name
copy/paste error in #14501.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-07-07 11:23:17 -06:00
Ed Santiago d52ac4422b
Merge pull request #14852 from cdoern/podUTS
fix namespace reporting
2022-07-07 11:22:40 -06:00
Ed Santiago e8d2d70ee2 port forward range test: fix many oopses
Wrong variable. And, wrong index range. And, wrong bash
syntax for extracting end_port. And, add explicit check
for valid range, because die() inside 'foo=$(...)' will not
actually die. And, refactor some confusing code. And,
reformat/clean up a confusing and too-wide comment.

Fixes: #14854

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-07-07 09:42:05 -06:00
Charlie Doern 0424084b30 fix namespace reporting
somehow, #14501 got through CI even though the remote tests fail. The testa are failing
due to the PodSpecGenerator not containing the UTSNs entitiy and infra's spec is not yet allowed to be accessed remotely

[NO NEW TESTS NEEDED]

resolves #14847

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-07 09:51:20 -04:00
openshift-ci[bot] 07a7a891ae
Merge pull request #14825 from jmguzik/fix_streaming_pod_stats
Fix streaming for libpod/pods/stats endpoint
2022-07-07 12:58:25 +00:00
openshift-ci[bot] 48c8923248
Merge pull request #14673 from idleroamer/fix-network-inspect-main
Fix network inspect compat API discrepancy
2022-07-07 11:55:30 +00:00
Jakub Guzik 44bd166b3d test-apiv2: streamed response testing based on response duration
Signed-off-by: Jakub Guzik <jguzik@redhat.com>
2022-07-06 20:26:31 +02:00
openshift-ci[bot] ca5bebb082
Merge pull request #14501 from cdoern/podUTS
podman pod create --uts support
2022-07-06 14:51:22 +00:00
Ed Santiago 4fd5fb97a0 e2e tests: cleanup: capitalize CONSTANTS
A number of standard image names were lower-case, leading to
confusion in code such as:

    registry := podman(... , "-n", "registry", registry, ...)
    ^--- variable                              ^---- constant

Fix a number of those to be capitalized and with _IMAGE suffix:

    registry := podman(...,                    REGISTRY_IMAGE

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-07-05 15:36:08 -06:00
🤓 Mostafa Emami ee05bc0318 Fix network inspect compat API discrepancy
- containerInspect compat API expects field value PrefixLen
  instead of PrefixLength for type Address for SecondaryIPAddresses
- Add tests for network part of containerInspect compat api

Closes: containers#14674
Signed-off-by: 🤓 Mostafa Emami <mustafaemami@gmail.com>
2022-07-05 21:25:32 +02:00
openshift-ci[bot] cf747399b1
Merge pull request #14370 from umohnani8/todo
Fix podman pod unpause TODO
2022-07-05 17:33:19 +00:00
openshift-ci[bot] 39fc5d1f4f
Merge pull request #14828 from saschagrunert/errors-libpod
libpod: switch to golang native error wrapping
2022-07-05 16:10:12 +00:00
Urvashi Mohnani 65d511c6d8 Fix podman pod unpaue TODO
Update the podman pod unpause to only show the paused
containers with autocomplete.
Fix a typo in the help command.
Update the unpause function to only attempt an unpause
on pasued pods instead of all the pods.
Update the tests accordingly.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-07-05 10:32:49 -04:00
openshift-ci[bot] 9539a89ee7
Merge pull request #14831 from giuseppe/fix-leak-connections-test
two minor tweaks to common_test.go
2022-07-05 14:25:58 +00:00
Sascha Grunert 251d91699d
libpod: switch to golang native error wrapping
We now use the golang error wrapping format specifier `%w` instead of
the deprecated github.com/pkg/errors package.

[NO NEW TESTS NEEDED]

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2022-07-05 16:06:32 +02:00
openshift-ci[bot] 340eeed0cb
Merge pull request #14626 from jakecorrenti/disable-docker-compose-health-check
Docker-compose disable healthcheck properly handled
2022-07-05 13:50:35 +00:00
openshift-ci[bot] 2c9f0753da
Merge pull request #14534 from jakecorrenti/docker-compose-update-network-mtu
(rootful) docker-compose now updates network MTU
2022-07-05 13:46:23 +00:00
openshift-ci[bot] 6315936f9a
Merge pull request #14805 from jakecorrenti/df-format-output
Podman system df JSON format outputs `Size` and `Reclaimable`
2022-07-05 13:34:45 +00:00
cdoern 8f2d9e7a7c podman pod create --uts support
add support for the --uts flag in pod create, allowing users to avoid
issues with default values in containers.conf.

uts follows the same format as other namespace flags:
--uts=private (default), --uts=host, --uts=ns:PATH

resolves #13714

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-05 09:28:07 -04:00
openshift-ci[bot] 02179c5686
Merge pull request #14830 from vrothberg/fix-14761
Sync: handle exit file
2022-07-05 13:26:45 +00:00
Jake Correnti 5633ef1d15 Docker-compose disable healthcheck properly handled
Previously, if a container had healthchecks disabled in the
docker-compose.yml file and the user did a `podman inspect <container>`,
they would have an incorrect output:

```
"Healthcheck":{
   "Test":[
      "CMD-SHELL",
      "NONE"
   ],
   "Interval":30000000000,
   "Timeout":30000000000,
   "Retries":3
}
```

After a quick change, the correct output is now the result:
```
"Healthcheck":{
   "Test":[
      "NONE"
   ]
}
```

Additionally, I extracted the hard-coded strings that were used for
comparisons into constants in `libpod/define` to prevent a similar issue
from recurring.

Closes: #14493

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-07-05 08:02:22 -04:00
Jake Correnti 488eb3b74c (rootful) docker-compose now updates network MTU
Previously, the following network block did not update using
docker-compose:

```
networks:
  default:
    driver: bridge
    driver_opts:
      mtu: 9000
```

In the API, the network options were previously not being handled when the
network was being created. I translated the docker options into podman
options, and added the options to the network.

When doing `podman network inspect <network>`, the results now contain
`"mtu": "9000"`

Fixes: #14482

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-07-05 07:54:09 -04:00
Jake Correnti 4fe7b8baf2 Podman system df JSON format outputs `Size` and `Reclaimable`
Previously, `podman system df --format "{{json .}}"` would not output
`Size` and `Reclaimable` like `podman system df` would.

```
{"Type":"Images","Total":5,"Active":0,"Size":39972240,"Reclaimable":39972240}
{"Type":"Containers","Total":0,"Active":0,"Size":0,"Reclaimable":0}
{"Type":"Local Volumes","Total":0,"Active":0,"Size":0,"Reclaimable":0}
```

Closes: #14769

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-07-05 07:38:08 -04:00
openshift-ci[bot] d1e1400747
Merge pull request #14829 from saschagrunert/errors-hack-test-utils
hack/test/utils: switch to golang native error wrapping
2022-07-05 11:37:12 +00:00
Valentin Rothberg b9aa475555 Sync: handle exit file
Make sure `Sync()` handles state transitions and exit codes correctly.
The function was only being called when batching which could render
containers in an unusable state when running concurrently with other
state-altering functions/commands since the state must be re-read from
the database before acting upon it.

Fixes: #14761
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-05 12:32:02 +02:00
Sascha Grunert 49cb288df3
hack/test/utils: switch to golang native error wrapping
We now use the golang error wrapping format specifier `%w` instead of
the deprecated github.com/pkg/errors package.

[NO NEW TESTS NEEDED]

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2022-07-05 12:13:33 +02:00
Giuseppe Scrivano 2da731a7ea
test: reduce sleep interval
there is no need to use such long sleep intervals for such cheap
operations like opening a connection or stat'ing a file.

Also make WaitForService() honor defaultWaitTimeout.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-05 11:36:06 +02:00
Giuseppe Scrivano c02f793bab
test: return immediately on connect
if the connection is successfull then return immediately instead of doing
all the iterations.  It also solves a problem where connections are
leaked since there are multiple Dial but only one Close.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-05 11:12:30 +02:00
Aditya R efe1176dd9
specgen,run: support running container from valid manifest list
Following PR adds support for running containers from a manifest list
present on localstorage. Before this PR podman only supports running
containers from valid images but not from manifest list.

So `podman run -it --platform <some> <manifest-list> command` should
become functional now and users should be able to resolve images on the
bases of provided `--platform` string.

Example
```
podman manifest create test
podman build --platform linux/amd64,linux/arm64 --manifest test .
podman run --rm --platform linux/arm64/v8 test uname -a
```

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-07-05 12:39:37 +05:30
Paul Holzinger 4c5b058e86
fix flake in aardvark tests
The retry logic in digshort() did not work because dig always exits with
0 even when the domain name is not found. To make it work we have to
check the standard output.

We work on fixing the underlying issue in aardvark/netavark but
this will take more time.

Fixes #14173
Fixes #14171

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-07-04 17:16:14 +02:00
openshift-ci[bot] a406b950e4
Merge pull request #14807 from eriksjolund/fix_read_only_spelling
[CI:DOCS] Fix spelling "read only" -> "read-only"
2022-07-04 07:35:42 +00:00
Giuseppe Scrivano 8106568ca2
test: drop pod-create --device-read-bps test
the test is not doing what it believes to do.  The containers are not
supposed to be joining the infra container cgroup.

In addition, the result is validated only on cgroup v1 systems (that
are not used in the CI).

We may want to add it back, or a variant of it, once the
--device-read-bps option applies to the pod parent cgroup.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-03 22:56:30 +02:00
Erik Sjölund 24fcfb5d9e Fix spelling "read only" -> "read-only"
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-07-02 08:37:43 +02:00
Charlie Doern b92149e2a8 podman pod create --memory
using the new resource backend, implement podman pod create --memory which enables
users to modify memory.max inside of the parent cgroup (the pod), implicitly impacting all
children unless overriden

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-01 13:44:32 -04:00
openshift-ci[bot] b00e65aa9c
Merge pull request #14799 from vrothberg/fix-build
fix build
2022-07-01 14:42:03 +00:00
openshift-ci[bot] 21cd3b2ed2
Merge pull request #14798 from flouthoc/overlay-mount-path-abs
overlay,mount: convert source to absolute path for `overlay` mounts of paths
2022-07-01 12:37:10 +00:00
Valentin Rothberg 7131c84723 fix build
PR containers/podman/pull/14449 had an outdated base.  Merging it broke
builds.

[NO NEW TESTS NEEDED]

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-01 14:20:31 +02:00
openshift-ci[bot] a737412eeb
Merge pull request #14795 from giuseppe/fix-wildcard-major-device-cgroup
specgen: fix parsing of cgroup devices rule
2022-07-01 11:13:49 +00:00
openshift-ci[bot] dc2a93421b
Merge pull request #14788 from vrothberg/rename-template
podman-play-kube template: rename to podman-kube
2022-07-01 10:55:42 +00:00
Aditya R d6678adc92
overlay,mount: convert lowerdir to absolute path for overlay mounts of path
When mounting paths as overlay mounts we end up passing source as is to
lowerdir options, resolve all relative paths in such cases for overlay
mounts.

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-07-01 14:19:01 +05:30
openshift-ci[bot] 96e72d90b8
Merge pull request #14449 from cdoern/podVolumes
podman volume create --opt=o=timeout...
2022-07-01 08:46:11 +00:00
Giuseppe Scrivano 891dfd3a8f
specgen: fix parsing of cgroup devices rule
Fix the parse for the cgroup devices rule to correctly handle the
wildcard syntax for the device major.

Also make sure the device major and minor are not negative numbers.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-01 09:28:18 +02:00
Valentin Rothberg c6fb533ca6 podman-play-kube template: rename to podman-kube
With the upcoming plans of introducing a podman-kube command with
various subcommands, rename the podman-play-kube systemd template
to podman-kube before releasing it.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-06-30 17:09:51 +02:00
Aditya R 7bbfb3eb0d
api,images: add support for LookupManifest to Image remove API
ImagesBatchRemoval and ImageRemoval now honors and accepts
`LookupManifest` parameter which further tells libimage to resolve to
manifest list if it exists instead of actual image.

Following PR also makes `podman-remote manifest rm` functional which was
broken till now.

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-06-30 14:56:42 +05:30
openshift-ci[bot] 2cc3f127f4
Merge pull request #14720 from sstosh/rm-option
Fix: Prevent OCI runtime directory remain
2022-06-29 19:51:53 +00:00
openshift-ci[bot] d6cdb996bc
Merge pull request #14706 from ashley-cui/rootmach
Only allow Rootless runs of Podman Machine
2022-06-29 19:32:26 +00:00
Ashley Cui d9ff0fd15d Only allow Rootless runs of Podman Machine
Podman Machine crashes if run as root. When creating the machine, we write the ignition so that the UID of the core user matches the UID of the user on the host. We by default, create the root user on the machine with UID 0. If the user on the host is root, the core UID and the Root UID collide, causing a the VM not to boot.

[NO NEW TESTS NEEDED]

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-06-29 09:19:09 -04:00
openshift-ci[bot] f0e8904e0d
Merge pull request #14755 from cdoern/system
fix volume reporting in system df
2022-06-28 19:14:00 +00:00
openshift-ci[bot] 60c9aeabab
Merge pull request #14717 from ZeyadYasser/fix-restore-runtime-check
Fix runtime check during restore
2022-06-28 19:07:52 +00:00
openshift-ci[bot] d8f197cc14
Merge pull request #14400 from cdoern/scp
podman image scp remote support & podman image scp tagging
2022-06-28 17:46:12 +00:00
Zeyad Yasser 79a38a2c6a
Add test for restore runtime verification using non-default runtime
Runtime verification test for container checkpoint with export
used the default runtime for test which causes test to always
pass. Problem rises when using non-default runtime, then doing
a restore. This test forcse using a non-default runtime during
container creation.

Edge case:
	1. Default runtime is crun
	2. Container is created with runc
	3. Checkpoint without setting --runtime into archive
	4. Restore without setting --runtime from archive

It should be expected that podman identifies runtime from the
checkpoint archive.

Signed-off-by: Zeyad Yasser <zeyady98@gmail.com>
2022-06-28 16:14:47 +02:00
Charlie Doern 6c4c050d3d fix volume reporting in system df
currently, podman system df incorrectly calculates the reclaimable storage for
volumes, using a cumulative reclaimable variable that is incremented and placed into each
report entry causing values to rise above 100%.

Switch this variables to be in the context of the loop, so it resets per volume just like the size variable does.

resolves #13516

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-28 10:09:38 -04:00
openshift-ci[bot] 50fa651a4e
Merge pull request #14700 from shuttle-hq/bug/docker-compat-initialized
Docker compat returning unknown "initialized" for `status.status`
2022-06-28 14:07:04 +00:00
openshift-ci[bot] 8267cd3c51
Merge pull request #14734 from giuseppe/copyup-switch-order
volume: add two new options copy and nocopy
2022-06-28 13:57:16 +00:00
chesedo cc49146332 Docker compat returning unknown "initialized" for `status.status`
Some background for this PR is in discussion #14641. In short, ever so often a container inspect will return a `status.status` of `initialized` from the Docker compat socket.

From the discussion I found these lines which tries to fix a "configured" status to "created".
c936d1e611/pkg/api/handlers/compat/containers.go (L291-L294)

However, commit 141de86862 (Revamp Libpod state strings for Docker compat) removed the "configured" return value from the `String()` method called on line 291 above. Thus, making the `if` check redundant as it will never hit. But the same commit also introduces a return for "initialized" which this `if` should probably have been adapted for.

Signed-off-by: Pieter Engelbrecht <pieter@shuttle.rs>
2022-06-28 15:50:45 +02:00
cdoern 6d3520e8b7 podman image scp remote support & podman image scp tagging
add support for podman-remote image scp as well as direct access via the API. This entailed
a full rework of the layering of image scp functions as well as the usual API plugging and type creation

also, implemented podman image scp tagging. which makes the syntax much more readable and allows users t tag the new image
they are loading to the local/remote machine:

allow users to pass a "new name" for the image they are transferring
`podman tag` as implemented creates a new image im `image list` when tagging, so this does the same
meaning that when transferring images with tags, podman on the remote machine/user will load two images
ex: `podman image scp computer1::alpine computer2::foobar` creates alpine:latest and localhost/foobar on the remote host

implementing tags means removal of the flexible syntax. In the currently released podman image scp, the user can either specify
`podman image scp source::img dest::` or `podman image scp dest:: source::img`. However, with tags this task becomes really hard to check
which is the image (src) and which is the new tag (dst). Removal of that streamlines the arg parsing process

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-28 08:54:19 -04:00
openshift-ci[bot] c66a489b75
Merge pull request #14741 from giuseppe/pod-ps-no-race
pod: ps does not race with rm
2022-06-28 11:41:47 +00:00
Giuseppe Scrivano 0e03a64f99
pod: ps does not race with rm
the "pod ps" command first retrieves the list of all pods, then
iterates over the list to inspect each pod.  This introduce a race
since a pod could be deleted in the meanwhile by another process.

Solve it by ignoring the define.ErrNoSuchPod error.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-28 10:38:12 +02:00
Boaz Shuster 3b10c1b78a Use Regexp in volume ls --filter name
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2022-06-27 21:34:39 +03:00
Giuseppe Scrivano aada13f244
volume: new options [no]copy
add two new options to the volume create command: copy and nocopy.

When nocopy is specified, the files from the container image are not
copied up to the volume.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-27 20:22:20 +02:00
openshift-ci[bot] 9c4b8a29b0
Merge pull request #14713 from Luap99/volume-plugin
add podman volume reload to sync volume plugins
2022-06-27 17:55:19 +00:00
openshift-ci[bot] 278afae1de
Merge pull request #14705 from jakecorrenti/show-health-status-event
Show Health Status events
2022-06-27 17:49:27 +00:00
openshift-ci[bot] 088665d2cf
Merge pull request #14654 from cdoern/cgroup
podman cgroup enhancement
2022-06-27 15:14:20 +00:00
Jake Correnti 0c1a3b70f5 Show Health Status events
Previously, health status events were not being generated at all. Both
the API and `podman events` will generate health_status events.

```
{"status":"health_status","id":"ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63","from":"localhost/healthcheck-demo:latest","Type":"container","Action":"health_status","Actor":{"ID":"ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63","Attributes":{"containerExitCode":"0","image":"localhost/healthcheck-demo:latest","io.buildah.version":"1.26.1","maintainer":"NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e","name":"healthcheck-demo"}},"scope":"local","time":1656082205,"timeNano":1656082205882271276,"HealthStatus":"healthy"}
```
```
2022-06-24 11:06:04.886238493 -0400 EDT container health_status ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63 (image=localhost/healthcheck-demo:latest, name=healthcheck-demo, health_status=healthy, io.buildah.version=1.26.1, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>)
```

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-06-27 10:44:53 -04:00
openshift-ci[bot] 8806606ca2
Merge pull request #14725 from Luap99/port-range-flake
Fix "podman run port forward range" flake
2022-06-27 13:42:58 +00:00
openshift-ci[bot] 1022ea36dd
Merge pull request #14687 from cdoern/vols
podman run/create -v relative filepath support
2022-06-27 12:35:10 +00:00
Paul Holzinger 345778ece0
Fix "podman run port forward range" flake
The test must ensure that all ports in the range are free not just
the first. This flakes often because port 5355 is always in use by
systemd-resolved on fedora.

Fixes #14716

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-27 14:25:24 +02:00
openshift-ci[bot] 3176b3fe01
Merge pull request #14685 from mheon/gitlab
Followon to #14559
2022-06-27 10:58:10 +00:00
openshift-ci[bot] 324435a648
Merge pull request #14703 from cdoern/connection
fix system connection and scp testing
2022-06-25 13:07:13 +00:00
cdoern 2792e598c7 podman cgroup enhancement
currently, setting any sort of resource limit in a pod does nothing. With the newly refactored creation process in c/common, podman ca now set resources at a pod level
meaning that resource related flags can now be exposed to podman pod create.

cgroupfs and systemd are both supported with varying completion. cgroupfs is a much simpler process and one that is virtually complete for all resource types, the flags now just need to be added. systemd on the other hand
has to be handeled via the dbus api meaning that the limits need to be passed as recognized properties to systemd. The properties added so far are the ones that podman pod create supports as well as `cpuset-mems` as this will
be the next flag I work on.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-24 15:39:15 -04:00
Toshiki Sonoda 3619f0be95 Fix: Prevent OCI runtime directory remain
This bug was introduced in https://github.com/containers/podman/pull/8906.

When we use 'podman rm/restart/stop/kill etc...' command to
the container running with --rm, the OCI runtime directory
remains at /run/<runtime name> (root user) or
/run/user/<user id>/<runtime name> (rootless user).

This bug could cause other bugs.
For example, when we checkpoint the container running with
--rm (podman checkpoint --export) and restore it
(podman restore --import) with crun, error message
"Error: OCI runtime error: crun: container `<container id>`
already exists" is outputted.
This error is caused by an attempt to restore the container with
the same container ID as the remaining OCI runtime's container ID.

Therefore, I fix that the cleanupRuntime() function runs to
remove the OCI runtime directory,
even if the container has already been removed by --rm option.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-06-24 09:29:24 +09:00
Ed Santiago a4ae22df86 Workaround for bug 14653 (checkpoint flake)
Since it may be a while before we get a true fix: add a
workaround for podman-remote checkpoint tests, in which
we pause until the 'run --rm' container is truly truly gone.

I've tried to make it as easy as possible to clean up
the workaround code once the bug is fixed.

Oh, also, remove "-it" from a podman-run. It makes no sense
and only results in nasty orange warning messages.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-06-23 15:03:46 -06:00
Paul Holzinger 2fab7d169b
add podman volume reload to sync volume plugins
Libpod requires that all volumes are stored in the libpod db. Because
volume plugins can be created outside of podman, it will not show all
available plugins. This podman volume reload command allows users to
sync the libpod db with their external volume plugins. All new volumes
from the plugin are also created in the libpod db and when a volume from
the db no longer exists it will be removed if possible.

There are some problems:
- naming conflicts, in this case we only use the first volume we found.
  This is not deterministic.
- race conditions, we have no control over the volume plugins. It is
  possible that the volumes changed while we run this command.

Fixes #14207

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-23 18:36:30 +02:00
Paul Holzinger 6e8953abfc
test/testvol: rework testvol binary
Add 4 new subcommands to the testvol binary, instead of just serving the
volume api it now also can create/list/remove plugins. This is required
to test new functionality where volumes are create outside of podman in
the plugin. Podman should then be able to pick up the new volumes.

The new testvol commands are:
- serve: serve the podman api like the the testvol command before
- create: create a volume with the given name
- list: list all volume names
- remove: remove the volume with the given name

Also make a small update to the testvol Containerfile so that it can
build correctly.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-23 18:36:30 +02:00
Paul Holzinger fcc25afa55
test/testvol: update container image golang to 1.18
Update the golang verion for the testvol image to the latest version
1.18. This requires us to build with GO111MODULE=off.
Use the FQDN to prevent the shortnames prompt.

Also add --network none to the podman build command to make sure we are
only using the copied deps and nothing else.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-23 18:36:23 +02:00
Paul Holzinger 472f79f08e
test/testvol: move Containerfile into testvol dir
I think it is confusion to have this Containerfile in the repo root. It
is used for the tests only so we should move it into the same dir.

Also adapt the Makefile target to use the new path and add the current
date as tag instead of using latest which can break CI easily when we
have to update the image.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-23 17:43:09 +02:00
Charlie Doern ad78d239dd fix system connection and scp testing
podman image scp and podman system connection tests were querying an existing website during testing.
Change to a URL that will never exist given an improper domain extension

also just generally clean up a few things in both scp and connection testing

resolves #14699

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-23 11:26:19 -04:00
Valentin Rothberg 15188dce05 conmon: silence json-file error
We should just silently fall through.  The log was flooding the
system-service logs when running Gitlab runner.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-06-23 09:11:57 -04:00
Charlie Doern 2eda547dcd podman run/create -v relative filepath support
podman currently does not support relative volume paths. Add parsing for relative paths in specgen, converting
whatever volume was given to an absolute path.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-22 16:52:16 -04:00
Erik Sjölund aa4279ae15 Fix spelling "setup" -> "set up" and similar
* Replace "setup", "lookup", "cleanup", "backup" with
  "set up", "look up", "clean up", "back up"
  when used as verbs. Replace also variations of those.

* Improve language in a few places.

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-06-22 18:39:21 +02:00
openshift-ci[bot] 15a651f860
Merge pull request #13384 from flouthoc/podman-remote-add-with-annotate
bindings: manifest should follow `es_model` naming convention while marshalling `OSVersion` and `OSFeatures`
2022-06-21 20:18:01 +00:00
openshift-ci[bot] 8863e13dc3
Merge pull request #14643 from clobrano/feature/network/list/dangling/dev
allow filter networks by dangling status
2022-06-21 18:19:16 +00:00
openshift-ci[bot] fe974101eb
Merge pull request #14625 from cdoern/podShm
podman pod create --shm-size
2022-06-21 17:57:24 +00:00
openshift-ci[bot] 588d8ec371
Merge pull request #14662 from Luap99/api-json
API: containers/json always set application/json content type
2022-06-21 16:26:08 +00:00
Carlo Lobrano 4a981c490b allow filter networks by dangling status
add the ability to filter networks by their dangling status via:

`network ls --filter dangling=true/false`

Fixes: #14595
Signed-off-by: Carlo Lobrano <c.lobrano@gmail.com>
2022-06-21 17:50:55 +02:00
Giuseppe Scrivano 1f539a2641
api: show the memory limit specified for the container
use the memory limit specified for the container instead of reading it
from the cgroup.  It is not reliable to read it from the cgroup since
the container could have been moved to a different cgroup and in
general the OCI runtime might create a sub-cgroup (like crun does).

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-21 12:06:33 +02:00
cdoern f451b68dfa podman pod create --shm-size
expose the --shm-size flag to podman pod create and add proper handling and inheritance
for the option.

resolves #14609

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-20 10:25:00 -04:00
openshift-ci[bot] fe8e536328
Merge pull request #14556 from sstosh/system-prune-network
podman system prune support prune unused networks
2022-06-20 13:57:42 +00:00
Paul Holzinger bb5bd09ead
API: containers/json always set application/json content type
When we return no containers we just return `[]` but we still have to keep
the content type header `application/json` so external tools can correctly
parse the output.

Fixes #14647

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-20 14:07:56 +02:00
openshift-ci[bot] 2af8851787
Merge pull request #14299 from cdoern/podClone
implement podman pod clone
2022-06-16 20:05:27 +00:00
openshift-ci[bot] 5cba4dc2e4
Merge pull request #14619 from Luap99/help
fix "podman -h" help output
2022-06-16 18:06:29 +00:00
openshift-ci[bot] e6fe06f591
Merge pull request #14600 from edsantiago/argh
system tests: avoid rmi -a ... plus cleanup
2022-06-16 16:01:45 +00:00
Paul Holzinger 09c462d735
fix "podman -h" help output
`podman -h` currently returns an error:
`Error: pflag: help requested`

This bug was introduced in 44d037898e, the problem is that we wrap the
error and cobra lib checks with `==` for this one and not errors.Is().
I have a PR upstream to fix this but for now this also works.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-16 16:59:47 +02:00
openshift-ci[bot] e3a0deadce
Merge pull request #14613 from kolyshkin/fix-410-selinux
test/system/410-selinux: fix for newer runc
2022-06-16 14:33:23 +00:00
openshift-ci[bot] a90dac9454
Merge pull request #14605 from Luap99/update-golangci-lint
golangci-lint: update to v1.46.2
2022-06-16 07:32:58 +00:00
Kir Kolyshkin b3f094a61c test/system/410-selinux: fix for newer runc
With runc 1.1, we have the following failure:

 # #|     FAIL: podman emits useful diagnostic on failure
 # #| expected: 'Error.*: OCI runtime error: .*: failed to set /proc/self/attr/keycreate on procfs' (using expr)
 # #|   actual: 'Error: OCI runtime error: runc: runc create failed: unable to start container process: error during container init: write /proc/self/attr/keycreate: invalid argument'

which is caused by the fact that runc 1.1 uses newer opencontainers/selinux
package, which changes custom errors to standard os.PathError instances (so
that they can be unwrapped if needed).

Fix the test case accordingly.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2022-06-15 20:26:31 -07:00
Ed Santiago 0a202a9f03 system test image: bump to 20220615
Changes:
 - use --timestamp option to produce 'created' stamps
   that can be reliably tested in the image-history test

 - podman now supports manifest & multiarch run, so we
   no longer need buildah

 - bump up base alpine & busybox images

This turned out to be WAY more complicated than it should've been,
because:

 - alpine 3.14 fixed 'date -Iseconds' to include a colon in
   the TZ offset ("-07:00", was "-0700"). This is now consistent
   with GNU date's --iso-8601 format, yay, so we can eliminate
   a minor workaround.

 - with --timestamp, all ADDed files are set to that timestamp,
   including the custom-reference-timestamp file that many tests
   rely on. So we need to split the build into two steps. But:

 - ...with a two-step build I need to use --squash-all, not --squash, but:

 - ... (deep sigh) --squash-all doesn't work with --timestamp (#14536)
   so we need to alter existing tests to deal with new image layers.

 - And, long and sordid story relating to --rootfs. TL;DR that option
   only worked by a miracle relating to something special in one
   specific test image; it doesn't work with any other images. Fix
   seems to be complicated, so we're bypassing with a FIXME (#14505).

And, unrelated:

 - remove obsolete skip and workaround in run-basic test (dating
   back to varlink days)
 - add a pause-image cleanup to avoid icky red warnings in logs

Fixes: #14456

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-06-15 13:29:08 -06:00
Paul Holzinger 21819254dd
golangci-lint: update to v1.46.2
Update to the latest golangci-lint version. v1.46 added new linters.
I disabled nonamedreturns and exhaustruct since they enforce a certain
code style and using them would require big changes to the code base.

The nosprintfhostport is new and I fixed one problem in the tests. While
the test itself is fine because it uses ipv4 only the linter still looks
good because the sprintf use will fail for ipv6 addresses.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-15 19:58:30 +02:00
Ed Santiago c6b9baa6c1 system tests: avoid rmi -a ... plus cleanup
I noticed 'rmi -a' in a test. I tried to fix it. Hilarity ensued.

'rmi -a' is evil: it forces a fresh pull of our test image,
which in turn almost guarantees a flake some day. We avoid
it, but once in a while it slips in.

While fixing it, I noticed a bevy of other problems that
needed cleanup.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-06-15 10:47:42 -06:00
openshift-ci[bot] ed755cb14e
Merge pull request #14596 from giuseppe/move-conmon-different-cgroup-system-service
libpod: improve check to create conmon cgroup
2022-06-15 16:18:18 +00:00
Giuseppe Scrivano 751ba07a76
libpod: improve check to create conmon cgroup
commit 1951ff168a introduced a check so
that conmon is not moved to a new cgroup when podman is running inside
of a systemd service.  This is helpful to integrate podman in systemd
so that the spawned conmon lives in the same cgroup as the service
that created it.

Unfortunately this breaks when podman daemon is running in a systemd
service since the same check is in place thus all the conmon processes
end up in the same cgroup as the podman daemon.  When the podman
daemon systemd service stops the conmon processes are also terminated
as well as the containers they monitor.

Improve the check to exclude podman running as a daemon.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-15 15:43:12 +02:00
Paul Holzinger 20b3fbe6d6
systemd socker activation: check listener to prevent panic
Commit 5fa6f686db added a regression which was fixed in eb71712626.
Apply the same fix again to prevent a panic and return a proper error
instead.

To not regress again I added a e2e test which makes sure we do not panic.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-15 14:33:14 +02:00
openshift-ci[bot] e084f0ee1e
Merge pull request #14585 from Luap99/nolint
golangci-lint: enable nolintlint
2022-06-14 18:58:53 +00:00
openshift-ci[bot] 4018a9575e
Merge pull request #14582 from giuseppe/no-create-containerenv-if-run-volume
container: do not create .containerenv with -v SRC:/run
2022-06-14 18:55:49 +00:00
openshift-ci[bot] 1cf3e4cda4
Merge pull request #14551 from edsantiago/apiv2_tests_rootless
CI: APIv2 tests: add rootless
2022-06-14 17:31:38 +00:00
openshift-ci[bot] 071b925dec
Merge pull request #14588 from edsantiago/eek_buildah_bud_coverage
buildah-bud tests: reenable skipped 'bud' tests
2022-06-14 17:17:40 +00:00
Ed Santiago bfc446eea3 buildah-bud tests: reenable skipped 'bud' tests
Sigh. Buildah PR https://github.com/containers/buildah/pull/3368
changed 'bud' to 'build' in tests. Podman #11585 well-intentionedly
did the same for run-buildah-bud tests ... but did so by *replacing*
'bud' with 'build', not by *adding* 'build' to the list of commands
handled by podman-build. Hence, all tests invoking 'run_buildah bud'
have been completely untested since then.

This remedies that, and deals with all the fallout. Principal among
which is the discovery that our exit-code changes are no longer
necessary: that thing we did where buildah exit status 1 or 2 became
podman exit status 125? That no longer applies. podman now exits
with the same status as buildah. This simplifies our diffs, and
lets us enable a bunch more tests.

Also:
 - in run-buildah-bud-tests script, run 'sudo --validate' early on.
   Reason: otherwise, the sudo step happens a few minutes after
   the script starts (after the git-pull), by which time the user
   may have stepped away to get coffee, then comes back ten or twenty
   minutes later to find a stupid sudo prompt and no tests run.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-06-14 10:12:54 -06:00
Ed Santiago 455f4c7828 CI: APIv2 tests: add rootless
This would've caught a regression that #14549 had to fix.
Let's try to prevent the next regression.

This requires some hackery to get namespaces initialized
before the service is started; otherwise the service itself
initializes namespaces, which basically ends up with a
server process that runs forever.

Also: in stop_service(), reset service_pid, because that's
the correct thing to do.

Also: add some debug statements to try to figure out a
CI failure. (And leave them in place, because they might
be useful for future problems).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-06-14 09:20:24 -06:00
Ed Santiago 232b3e342a buildah-bud tests: add arg sanity check
Fix bad design decision (mine) by adding a simple usage check to 'skip'
and 'skip_if_remote' functions: if invoked without test-name args,
fail loudly and immediately.

Background: yeah, their usage is not intuitive. Making the first arg
be a comment helps with _reading_ the code, but not _writing_ new
additions. A developer in a hurry could write "skip this-test" and,
until now, that would be a silent NOP.

Tested by adding broken skip/skip_if_remote calls inline; I confirm
that the line number and funcname usage is correct.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-06-14 08:56:28 -06:00
openshift-ci[bot] cffed099b8
Merge pull request #14561 from rhatdan/VENDOR
Update vendor of containers/buildah
2022-06-14 14:55:21 +00:00
Paul Holzinger 41528739ce
golangci-lint: enable nolintlint
The nolintlint linter does not deny the use of `//nolint`
Instead it allows us to enforce a common nolint style:
- force that a linter name must be specified
- do not add a space between `//` and `nolint`
- make sure nolint is only used when there is actually a problem

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-14 16:29:42 +02:00