12610 Commits

Author SHA1 Message Date
fefa0b32c7 Merge pull request #11314 from Luap99/expose-ports
podman inspect show exposed ports
2021-08-25 09:29:03 -04:00
23f9565547 Merge pull request #11263 from nalind/journal-read
libpod/Container.readFromJournal(): don't skip the first entry
2021-08-24 14:16:22 -04:00
24ee67bb09 Merge pull request #11315 from vrothberg/fix-11304
generate systemd: use --cidfile again
2021-08-24 13:10:45 -04:00
e9daaf62e3 Merge pull request #11232 from Luap99/network
Network interface
2021-08-24 10:30:11 -04:00
274d6fa19c generate systemd: use --cidfile again
Commit 9ac5267 changed the type of the generated systemd units from
`forking` to `notify`.  It further stopped using `--cidfile` and instead
intended systemd to take care of stopping the container, which turned
out to be a bad idea.

Systemd will send the stop/kill signals to conmon which in turn may exit
non-zero, depending on the signal, and ultimately breaking container
cleanup.

Hence, we need to use --cidfile again and let podman stop and remove the
container to make sure that everything's in order.

Fixes: #11304
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-24 15:46:00 +02:00
4b2dc48d0b podman inspect show exposed ports
Podman inspect has to show exposed ports to match docker. This requires
storing the exposed ports in the container config.
A exposed port is shown as `"80/tcp": null` while a forwarded port is
shown as `"80/tcp": [{"HostIp": "", "HostPort": "8080" }]`.

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

Fixes #10777

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-24 15:44:26 +02:00
74ab2aaf9f Revert "generate systemd: custom stop signal"
This reverts commit 70801b3d714b067d64744697433c5841926dad4d.

It turns out that letting systemd handle stopping the container is not
working as I thought it will.  Conmon is receiving the stop/kill signals
and may exit non-zero, which in turn lets the systemd service transition
into the `failed` state.

We need to get back to letting Podman stop the containers and do a
partial revert of commit 9ac5267 which removed using --cidfile.

Happening in a following commit.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-24 13:33:06 +02:00
c0b1edd6a4 Network interface
Implement a new network interface to abstract CNI from libpod. The
interface is implemented for the CNI backend but in the future we can
add more backends.

The code is structured in three new packages:
- `libpod/network/types`: contains the interface definition
  and the necessary types for it.
- `libpod/network/cni` contains the interface implementation for the CNI
  backend.
- `libpod/network/util` a set of utility functions related to
  networking.

The CNI package uses ginkgo style unit tests. To test Setup/Teardown the
test must be run as root. Each test will run in their own namespace to
make the test independent from the host environment.

New features with the CNI backend:
- The default network will be created in memory if it does not exists on
  disk.
- It can set more than one static IP per container network.
- Networks are loaded once from disk and only if this interface is
  used, e.g. for commands such as `podman info` networks are not loaded.
  This reduces unnecessary disk IO.

This commit only adds the interface it is not wired into libpod. This
requires a lot of breaking changes which will be done in a followup
commit.

Once this is integrated into libpod the current network code under
`libpod/network` should be removed. Also the dependency on OCICNI
should be dropped.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-24 12:28:03 +02:00
e20ec47a59 Merge pull request #11312 from vrothberg/fix-11304
generate systemd: custom stop signal
2021-08-24 06:13:56 -04:00
70801b3d71 generate systemd: custom stop signal
Commit 9ac5267598c3 changed the type of the generated systemd units from
forking to notify.  Parts of these changes was also removing the need to
pass any information via the file system (e.g., PIDFILE, container ID).
That in turn implies that systemd takes care of stopping the container.

By default, systemd first sends a SIGTERM and after a certain timeout,
it'll send a SIGKILL.  That's pretty much what Podman is doing, unless
the container was created with a custom stop signal which is the case
when the --stop-signal flag was used or systemd is mounted.

Account for that by using systemd's KillSignal option which allows for
changing SIGTERM to another signal.  Also make sure that we're using the
correct timeout for units generated with --new.

Fixes: #11304
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-24 10:50:16 +02:00
eb9d731c68 Merge pull request #11313 from nalind/leaked-bus-connection
utils.RunUnderSystemdScope(): always close Conn
2021-08-24 03:50:56 -04:00
3007bd4a99 130-kill.bats: increase timeouts from 10s to 60s
Increase the amount of time we're willing to wait for a log message that
a container should be printing to show up in the output of `logs -f`,
since on at least one CI configuration we're seeing a turnaround as high
as 46s, but it's not something we can directly control, so that's not a
hard maximum.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-08-23 18:09:56 -04:00
21f396de6f logs: adjust handling around partial log messages
In libpod/logs.LogLine.Write(), don't write a newline to stdout/stderr
when the log message is only part of a line.

In libpod.ConmonOCIRuntime.HTTPAttach(), don't send a newline over the
HTTP connection when the log message is only part of a line.

In pkg/api/handlers/compat.LogsFromContainer(), don't send a newline
over the HTTP connection when the log message is only part of a line,
and don't make doing so conditional on whether or not the client used
the docker or podman endpoint.

In pkg/domain/infra/tunnel.ContainerEngine.ContainerLogs(), don't add
our own newline to log messages, since they already come through from
the server when they need to.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-08-23 18:00:18 -04:00
b20a547059 330-corrupt-images: don't try to tag with a canonical name
In these tests, don't try to tag an image using a canonical ("with
digest") image name.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-08-23 18:00:08 -04:00
fc6a020330 bump github.com/containers/common
Update github.com/containers/common from 0.43.0 to 0.43.2.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-08-23 17:59:58 -04:00
1411fa5f23 libpod/Container.readFromJournal(): don't skip the first entry
When reading log entries from the journal, don't skip past the first
matching entry after we've positioned the cursor at it.

Make the first blank-line entry that we logged so that the container
would always have at least one log entry for us to find (until it gets
vacuumed out, at least) a fake history entry, so that `logs` doesn't
pass it on for display.

CI already has tests that exercise journal-based logging, so
[NO TESTS NEEDED]

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-08-23 17:59:49 -04:00
6b06e9b77c Switch eventlogger to journald by default
[NO TESTS NEEDED] Since we are just testing the default.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-08-23 17:59:42 -04:00
02e59c6683 utils.RunUnderSystemdScope(): always close Conn
Make sure we close our private connection to the bus, even if we're not
successful in in using it to ask systemd to move a unit's processes to a
specific control group.

[NO TESTS NEEDED]

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-08-23 17:23:17 -04:00
d1137664fe Merge pull request #11311 from containers/dependabot/go_modules/github.com/containers/buildah-1.22.3
Bump github.com/containers/buildah from 1.22.0 to 1.22.3
2021-08-23 15:00:21 -04:00
90cf78b199 Merge pull request #11290 from flouthoc/volume-export
volumes: Add support for `volume export` which allows exporting content to  external path.
2021-08-23 14:01:20 -04:00
6a3741598c Merge pull request #11205 from Shivkumar13/shivkumar-tls-fix
Support for --tls-verify flag in podman-run & podman-create
2021-08-23 13:44:19 -04:00
062900c264 Merge pull request #11309 from containers/dependabot/go_modules/github.com/opencontainers/runc-1.0.2
Bump github.com/opencontainers/runc from 1.0.1 to 1.0.2
2021-08-23 13:40:22 -04:00
f9d706bc49 Merge pull request #11308 from vrothberg/profiling
profiling: higher memory sampling rate
2021-08-23 13:33:19 -04:00
edddfe8c4f volumes: Add support for exporting volumes to external tar
Adds support for transferring data between systems and backing up systems.
Use cases: recover from disasters or move data between machines.

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-08-23 20:42:41 +05:30
d24a5d9fdd Bump github.com/opencontainers/runc from 1.0.1 to 1.0.2
Bumps [github.com/opencontainers/runc](https://github.com/opencontainers/runc) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/opencontainers/runc/releases)
- [Commits](https://github.com/opencontainers/runc/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: github.com/opencontainers/runc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 14:26:28 +00:00
7b54a5fbe8 profiling: higher memory sampling rate
Increase the memory-sampling rate to the same default as
github.com/pkg/profile.  Allow for custom rates by reading
the `MemProfileRate` env variable.

[NO TESTS NEEDED] since it's a dev only flag and not part of CI.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-23 16:19:47 +02:00
ac5f2e1162 Merge pull request #11310 from containers/dependabot/go_modules/github.com/onsi/gomega-1.16.0
Bump github.com/onsi/gomega from 1.15.0 to 1.16.0
2021-08-23 10:11:10 -04:00
d36510702b Merge pull request #11305 from Luap99/fix-11303
Use pod netns with --pod-id-file
2021-08-23 09:40:09 -04:00
34a6dfb30e Merge pull request #11291 from containers/dependabot/go_modules/k8s.io/api-0.22.1
Bump k8s.io/api from 0.22.0 to 0.22.1
2021-08-23 08:55:10 -04:00
fe4dc452ec Bump github.com/containers/buildah from 1.22.0 to 1.22.3
Bumps [github.com/containers/buildah](https://github.com/containers/buildah) from 1.22.0 to 1.22.3.
- [Release notes](https://github.com/containers/buildah/releases)
- [Changelog](https://github.com/containers/buildah/blob/v1.22.3/CHANGELOG.md)
- [Commits](https://github.com/containers/buildah/compare/v1.22.0...v1.22.3)

---
updated-dependencies:
- dependency-name: github.com/containers/buildah
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 12:24:00 +00:00
1493b86c75 Bump github.com/onsi/gomega from 1.15.0 to 1.16.0
Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.15.0 to 1.16.0.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.15.0...v1.16.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 12:23:29 +00:00
1c4b085e54 Merge pull request #11202 from chuanchang/fix_issue_11201
e2e tests: fix overlay: Unknown option vfs.imagestore
2021-08-23 07:41:39 -04:00
feff0d3c4b Use pod netns with --pod-id-file
When `--pod-id-file` is used do not parse the default network namespace
and let specgen handle it instead.
This regression was introduced in commit 7ef3981abe24.

Fixes #11303

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-23 11:14:41 +02:00
2de56a5f41 Merge pull request #11301 from mheon/330_main
Update README for 3.3.0 release
2021-08-22 06:00:37 -04:00
57a0ed182d Bump k8s.io/api from 0.22.0 to 0.22.1
Bumps [k8s.io/api](https://github.com/kubernetes/api) from 0.22.0 to 0.22.1.
- [Release notes](https://github.com/kubernetes/api/releases)
- [Commits](https://github.com/kubernetes/api/compare/v0.22.0...v0.22.1)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-21 12:36:22 +00:00
b644e37abc Merge pull request #11296 from vrothberg/memory-profile
add flag to record memory profiles
2021-08-21 08:13:36 -04:00
c53e351d0e Merge pull request #11292 from containers/dependabot/go_modules/k8s.io/apimachinery-0.22.1
Bump k8s.io/apimachinery from 0.22.0 to 0.22.1
2021-08-21 08:08:37 -04:00
319c85e89e Support for --tls-verify flag in podman run & podman create
Signed-off-by: Shivkumar13 <sople@redhat.com>
2021-08-21 00:54:13 +05:30
e5d8defc44 Update README for 3.3.0 release
Signed-off-by: Matthew Heon <mheon@redhat.com>
2021-08-20 14:33:05 -04:00
2d43e685c3 Merge pull request #11286 from jwhonce/issues/11227
Update /version endpoint to add components
2021-08-20 10:55:00 -04:00
33fee83dea add flag to record memory profiles
Add a new flag `--memory-profile=$path` which creates a memory profile.
The generated profile can later be analyzed via `go tool pprof`.

[NO TESTS NEEDED] since it's a hidden flag, devs-only.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-20 15:35:58 +02:00
81798e4883 Merge pull request #11289 from Luap99/net-alias-id
Fix network aliases with network id
2021-08-20 09:18:02 -04:00
db7eaa98b2 Bump k8s.io/apimachinery from 0.22.0 to 0.22.1
Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.22.0 to 0.22.1.
- [Release notes](https://github.com/kubernetes/apimachinery/releases)
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.22.0...v0.22.1)

---
updated-dependencies:
- dependency-name: k8s.io/apimachinery
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-20 12:26:41 +00:00
7d8650cce8 Merge pull request #11246 from vrothberg/sdnotify=container
Implement SD-NOTIFY proxy in conmon
2021-08-20 07:10:34 -04:00
c22f3e8b4e Implement SD-NOTIFY proxy in conmon
This leverages conmon's ability to proxy the SD-NOTIFY socket.
This prevents locking caused by OCI runtime blocking, waiting for
SD-NOTIFY messages, and instead passes the messages directly up
to the host.

NOTE: Also re-enable the auto-update tests which has been disabled due
to flakiness.  With this change, Podman properly integrates into
systemd.

Fixes: #7316
Signed-off-by: Joseph Gooch <mrwizard@dok.org>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-20 11:12:05 +02:00
7f3f792e28 Fix network aliases with network id
When a network id is used to create a container we translate it to use the
name internally for the db. The network aliases are also stored with the
network name as key so we have to also translate them for the db.

Also removed some outdated skips from the e2e tests.

Fixes #11285

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-20 10:49:33 +02:00
30b036c5d3 Merge pull request #11280 from Luap99/info-plugins
Podman info output plugin information
2021-08-19 17:28:22 -04:00
fd32c73e3a Update /version endpoint to add components
* Include OCI and conmon information as components

Fixes #11227

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-08-19 14:19:45 -07:00
f988cfe146 Merge pull request #11279 from guillaumerose/refactor1
machine: compute sha256 as we are reading the file
2021-08-19 14:50:26 -04:00
a3f4fbd176 Merge pull request #11271 from jwhonce/issues/8577
Clean up swagger
2021-08-19 14:49:22 -04:00