12598 Commits

Author SHA1 Message Date
e9daaf62e3 Merge pull request #11232 from Luap99/network
Network interface
2021-08-24 10:30:11 -04: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
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
745f6d949c e2e tests: fix overlay: Unknown option vfs.imagestore
Fixes: https://github.com/containers/podman/issues/11201

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

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

Fixes #11265

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-19 17:33:20 +02:00
aed232b9dd Merge pull request #11275 from containers/dependabot/go_modules/github.com/containers/image/v5-5.15.2
Bump github.com/containers/image/v5 from 5.15.1 to 5.15.2
2021-08-19 11:11:50 -04:00
0897946f60 [NO TESTS NEEDED] Clean up swagger
* Removed defined by unused responses
* Added missing body definitions
* Updated header input definitions

Outstanding issues:
* Supporting body ContainerConfig for /commit endpoint

Fixes #8577

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-08-19 07:57:54 -07:00
b19812b5a2 machine: compute sha256 as we read the image file
It avoids to have the full file in memory.

[NO TESTS NEEDED]

Signed-off-by: Guillaume Rose <gurose@redhat.com>
2021-08-19 16:54:50 +02:00
0434571920 machine: check for file exists instead of listing directory
[NO TESTS NEEDED]

Signed-off-by: Guillaume Rose <gurose@redhat.com>
2021-08-19 16:54:44 +02:00
82bb999e36 Bump github.com/containers/image/v5 from 5.15.1 to 5.15.2
Bumps [github.com/containers/image/v5](https://github.com/containers/image) from 5.15.1 to 5.15.2.
- [Release notes](https://github.com/containers/image/releases)
- [Commits](https://github.com/containers/image/compare/v5.15.1...v5.15.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-19 12:28:10 +00:00
23804d95f6 Merge pull request #11242 from containers/dependabot/go_modules/github.com/containers/image/v5-5.15.1
Bump github.com/containers/image/v5 from 5.15.0 to 5.15.1
2021-08-19 06:42:11 -04:00
2cb304d25f Merge pull request #11249 from afro-coder/troubleshooting-update
[CI:DOCS] Updated Troubleshooting.md Closes #5431
2021-08-19 06:13:52 -04:00
8b848740cf Merge pull request #11260 from nalind/remote-build-path
pkg/bindings/images.nTar(): slashify hdr.Name values
2021-08-19 05:57:02 -04:00
7a0d94837a Merge pull request #11269 from Luap99/rootlessport-flake
fix rootlessport flake
2021-08-18 19:54:09 -04:00
2f9bd63c9d Merge pull request #11267 from mheon/fix_11214
Volumes: Only remove from DB if plugin removal succeeds
2021-08-18 19:45:10 -04:00