13172 Commits

Author SHA1 Message Date
fc4a47e0e7 Merge pull request #11617 from ashley-cui/ssh
[NO TESTS NEEDED] Add username flag for machine ssh
2021-09-18 06:43:03 -04:00
22df773f77 System tests: cleanup, and remove obsolete skips
* 070-build:
  - remove workaround for #9567, which is closed.
  - add many more cases to the ignorefile test,
    to test complicated special cases of Buildah PR 3486.

* 160-volumes:
  - remove a skip_if_remote, volumes now work on remote
  - use a random name for tarball, and clean up when
    done using it. This fixes a gating-test failure
    (test runs as root, then rootless, and rootless
    can't clobber root's file).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-09-17 14:29:18 -06:00
e3e9e5175f Add username flag for machine ssh
allow users to specify what username to use when ssh-ing into the vm.
If the username flag is set, the username will be the flag value. If the
flag is not set and the the vm name is specified, the default user of
the vm will be used. if the flag is not set, and the vm name is not
specified, then the username of the default connection will be used.

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-09-17 13:33:56 -04:00
08e1bb54c3 Merge pull request #11607 from Luap99/ipvlan
CNI: add ipvlan driver support and macvlan modes
2021-09-17 10:45:18 -04:00
c692f7a18b Remove unused code from libpod
The libpod package should only compile on linux. The remote client
should never try to import this package.

Since these files do not add any value we should remove them, this
prevents people from accidentally importing this package because it would
fail to compile on windows/macos.

[NO TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-17 13:57:38 +02:00
9a5987cf6a Merge pull request #11603 from rhatdan/truncate
Add no-trunc support to podman-events
2021-09-17 07:02:52 -04:00
c6ae5c7961 Merge pull request #11612 from rhatdan/docs
Fix up build the docs site
2021-09-17 06:35:50 -04:00
f7705c44fa Merge pull request #11620 from edsantiago/doc_cleanup
[CI:DOCS] markdown cleanup
2021-09-17 06:34:51 -04:00
84c61b7d36 Merge pull request #11606 from giuseppe/always-move-pause-process-to-scope
runtime: move pause process to scope
2021-09-17 04:35:58 -04:00
62350fed61 [CI:DOCS] markdown cleanup
* podman-inspect: make references be live links, not a static
  list. Also, remove container- and image-inspect, because
  those are NOPs.

* podman-pull: add a missing right-paren

* podman-search, podman: remove unwanted indentation from
  some file descriptions. Markdown indentation renders as
  one very very long line, requiring the user to use a
  horizontal scroll bar to read the text. I searched
  using grep '^    ' and eyeball-looking for text that
  doesn't look like one-line code examples, and see
  no more, but eyeball checks are fragile.

One bug remains: MyST renders mailto: links uglily. I can find
no way to fix this other than patching the source code.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-09-16 15:59:14 -06:00
613ef220f3 Fix up build the docs site
[NO TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-16 17:41:00 -04:00
6cf13c3dbf Merge pull request #11602 from Luap99/netname
Do not allow network modes to be used as network names
2021-09-16 17:17:08 -04:00
0acf540304 Merge pull request #11605 from Luap99/hosts
Only add 127.0.0.1 entry to /etc/hosts with --net=none
2021-09-16 17:15:08 -04:00
a65000bbb7 Merge pull request #11614 from Luap99/podman-io
[CI:DOCS] Use a new markdown converter for sphinx
2021-09-16 17:12:07 -04:00
7ca666f474 Use a new markdown converter for sphinx
Recommonmark has many issues and is deprecated. The recommended
alternative is MyST-Parser. [1]

The myst parser looks great, it also correctly parses tables and adds the
correct links.

To test locallay run:
```
cd docs
rm -rf build/
\# install build deps
sudo dnf install python3-sphinx && pip install myst-parser
make html
python -m http.server 8000 --directory build/html
\# Now check in your browser if it looks good to you
```

[1] https://github.com/readthedocs/recommonmark/issues/221

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-16 21:10:13 +02:00
a2c8b5d9d6 runtime: move pause process to scope
make sure the pause process is moved to its own scope as well as what
we do when we join an existing user+mount namespace.

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

[NO TESTS NEEDED]

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-09-16 20:17:40 +02:00
72534a74b3 system: move MovePauseProcessToScope to utils
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-09-16 20:17:39 +02:00
9c1e27fdd5 system: always move pause process when running on systemd
when running on a systemd with systemd, always try to move the pause
process to its own scope.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-09-16 20:17:39 +02:00
fa9728c550 system: avoid reading pause pid file
we already know the path to the pause PID file, no need to calculate
it again.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-09-16 20:17:38 +02:00
f1ee234252 Only add 127.0.0.1 entry to /etc/hosts with --net=none
The check for net=none was wrong. It just assumed when we do not create
the netns but have one set that we use the none mode. This however also
applies to a container which joins the pod netns.
To correctly check for the none mode use `config.NetMode.IsNone()`.

Fixes #11596

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-16 18:19:15 +02:00
4216f7b7f4 Add no-trunc support to podman-events
Standardize on no-trunc through the code.
Alias notruncate where necessary.

Standardize on the man page display of no-trunc.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-16 09:41:29 -04:00
aee0ab98cd CNI: add ipvlan driver
Add support for the ipvlan cni plugin. This allows us to create,
inspect and list ipvlan networks correctly.

Fixes #10478

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-16 15:37:34 +02:00
c20f61148c CNI: network create support macvlan modes
Support setting the macvlan mode with `podman network create -d macvlan
--opt mode=bridge`. This will correctly set the specified macvlan mode
in the cni conflist file.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-16 14:53:33 +02:00
5c7935057c Do not allow network modes to be used as network names
`podman network create` should not allow users to create networks with a
name which is already used for a network mode in `podman run --network`.

Fixes #11448

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-16 11:01:52 +02:00
9119a578e7 Merge pull request #11599 from matejvasek/fix-cert-error-msg
fix inverted condition
2021-09-16 04:12:30 -04:00
9c091e42db fix inverted condition
[NO TESTS NEEDED]

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-09-16 00:37:17 +02:00
5f41ffdd19 Merge pull request #11322 from Luap99/network-libpod
Wire network interface into libpod
2021-09-15 16:11:14 -04:00
505c9718cc Merge pull request #11595 from matejvasek/fix-auth-ep
Fix /auth compat endpoint
2021-09-15 15:46:58 -04:00
f38503a1a3 Merge pull request #11592 from Luap99/runlabel-name
container runlabel remove image tag from name
2021-09-15 15:03:58 -04:00
7c5d64b478 Fix /auth compat endpoint
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-09-15 20:01:02 +02:00
5e8309464a Add Drivers method to the Network Interface
Drivers should return the list of supported network drivers by this
plugin. This is useful for podman info.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 20:00:28 +02:00
1bcd006c5f CI: load ipv6 kernel modules for rootless tests
Rootless cni with ipv6 needs the `ip6_tables` module loaded, normally
the cni plugins will load this module but as rootless it does not have
the necessary permission to do so. Therefore we load it manually.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 20:00:28 +02:00
b906b9d858 Drop OCICNI dependency
We do not use the ocicni code anymore so let's get rid of it. Only the
port struct is used but we can copy this into libpod network types so
we can debloat the binary.

The next step is to remove the OCICNI port mapping form the container
config and use the better PortMapping struct everywhere.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 20:00:28 +02:00
85e8fbf7f3 Wire network interface into libpod
Make use of the new network interface in libpod.

This commit contains several breaking changes:
- podman network create only outputs the new network name and not file
  path.
- podman network ls shows the network driver instead of the cni version
  and plugins.
- podman network inspect outputs the new network struct and not the cni
  conflist.
- The bindings and libpod api endpoints have been changed to use the new
  network structure.

The container network status is stored in a new field in the state. The
status should be received with the new `c.getNetworkStatus`. This will
migrate the old status to the new format. Therefore old containers should
contine to work correctly in all cases even when network connect/
disconnect is used.

New features:
- podman network reload keeps the ip and mac for more than one network.
- podman container restore keeps the ip and mac for more than one
  network.
- The network create compat endpoint can now use more than one ipam
  config.

The man pages and the swagger doc are updated to reflect the latest
changes.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 20:00:20 +02:00
f9d8301c47 Merge pull request #11577 from rhatdan/tmpdir
Set default storage from containers.conf for temporary images
2021-09-15 13:15:03 -04:00
218f132fdf cni network configs set ipv6 enables correctly
When configs are loaded from disk we need to check if they contain a
ipv6 subnet and set ipv6 enables to true in this case.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 18:05:27 +02:00
24bec9a76b default network: do not validate the used subnets
The default network should not be validated against used subnets, we have to ensure
that this network can always be created even when a subnet is already used on the host.
This could happen if you run a container on this net, then the cni interface will be
created on the host and "block" this subnet from being used again.
Therefore the next podman command tries to create the default net again and it would
fail because it thinks the network is used on the host.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 18:05:26 +02:00
aa7bc4e371 network create: validate the input subnet
Check that the given subnet does not conflict with existing ones (other
configs or host interfaces).

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 18:05:26 +02:00
c0cde37829 Merge pull request #11567 from giuseppe/cgroups-split-with-pods
libpod: honor --cgroups=split also with pods
2021-09-15 10:46:33 -04:00
3e77f960f6 Set default storage from containers.conf for temporary images
Fixes: https://github.com/containers/podman/issues/11107

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-15 10:43:51 -04:00
0b1c45bc54 container runlabel remove image tag from name
When no name is given for podman container runlabel it will default to
the image base name. However this can contain a tag. Since podman does
not accept container names with a colon the run command will fail if it
contains something like `podman run --name NAME ...`.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2004263

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 16:35:55 +02:00
81f41ca0d2 Merge pull request #11585 from flouthoc/bump-buildah-1-23-0
vendor: Bump github.com/containers/buildah from 1.22.3 to 1.23.0
2021-09-15 10:35:31 -04:00
4b6ffda31c Merge pull request #11409 from cdoern/podVolumes
Pod Volumes Support
2021-09-15 09:10:12 -04:00
4dd7bfdfaa Merge pull request #11556 from afbjorklund/distribution-info
Show variant and codename of the distribution
2021-09-15 06:25:00 -04:00
10873c6f49 Merge pull request #11578 from jelly/handle_nil_pointer_deref
api: handle nil pointer dereference in api endpoints
2021-09-15 06:23:00 -04:00
aff64dda65 Merge pull request #11574 from nalind/buildah-platforms
build: take advantage of --platform lists
2021-09-15 06:21:58 -04:00
07e9bf340a Merge pull request #11586 from Luap99/doc
[CI:DOCS] Fix example in podman machine init man page
2021-09-15 06:21:06 -04:00
962675c148 build.bats: fix copy tests after containers/buildah#3486
Fix copy tests after https://github.com/containers/buildah/pull/3486

[NO TESTS NEEDED]

Signed-off-by: Aditya Rajan <arajan@gmail.com>
2021-09-15 15:12:38 +05:30
d0c605cd3d build: mirror --authfile to filesystem if pointing to FD instead of file
Following commit makes sure that podman mirrors --authfile to a temporary
file in filesystem if arg is pointing to an FD instead of actual file
as FD can be only consumed once.

Reference:
* https://github.com/containers/buildah/pull/3498
* https://github.com/containers/buildah/issues/3070

[NO TESTS NEEDED]

Signed-off-by: Aditya Rajan <arajan@redhat.com>
2021-09-15 14:58:48 +05:30
5cafb6d18d Fix example in podman machine init man page
Fixes #11582

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 11:06:08 +02:00