Commit Graph

4730 Commits

Author SHA1 Message Date
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