Commit Graph

12242 Commits

Author SHA1 Message Date
Valentin Rothberg 01cfb51fe9 auto-update: make output more user friendly
The rather raw and scarce output of `podman auto-update` has been a
thorn in my eyes for a longer while.  So far, Podman would only print
updated systemd units, one per line, without further formatting.

Motivated by issue #9949 which is asking for some more useful
information in combination with a dry-run feature, I sat down and
reflected which information may come in handy.

Running `podman auto-update` will now look as follows:

```
$ podman auto-update
Trying to pull [...]

UNIT                    CONTAINER            IMAGE                   POLICY      UPDATED
container-test.service  08fd34e533fd (test)  localhost:5000/busybox  registry    false
```

Also refactor the spaghetti code in the backend a bit to make it easier
to digest and maintain.

For easier testing and for the sake of consistency with other commands
listing output, add a `--format` flag.

The man page will get an overhaul in a follow up commit.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-14 16:23:51 +02:00
Valentin Rothberg 6fcf0b2f32 auto update: minor style nits
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-13 13:52:46 +02:00
Valentin Rothberg a90a4ec7c6 auto update: pass through a context
Pass a single context.Context through the call stack.  If auto-updates
will ever be made available for REST calls, the context will help
supporting disconnected clients.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-13 13:52:46 +02:00
Valentin Rothberg a8847c01fb auto-update: use libimage for image checks
Use the `HasDifferentDigest()` method of the image to replace the
previous checks if an image needs to be updated.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-13 13:52:46 +02:00
Valentin Rothberg eda8d1f584 auto update: fix authfile detection
Fix a bug were an authfile label in a container would mistakenly
override the authfile path for all subsequent checks.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-13 13:52:46 +02:00
Valentin Rothberg db26e1ef94 auto-update: make restarted unit more obvious
The output of auto-update leaves quite some space for improvements.  One
thing is to make it more obvious which systemd units were restarted.

With this change, the output looks as follows:
```
$ podman auto-update
Trying to pull...

Restarted the following systemd units:
$unit-1
$unit-2
$unit-3
```

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-13 13:52:46 +02:00
OpenShift Merge Robot 4458d2230e
Merge pull request #10849 from cevich/fix_cron_mail
[CI:DOCS] Fix cirrus-cron failure notification GH workflow
2021-07-12 14:12:55 -04:00
OpenShift Merge Robot 561ef85570
Merge pull request #10905 from matejvasek/fix-mount
fix: uid/gid for volume mounted to existing dir
2021-07-12 12:53:55 -04:00
OpenShift Merge Robot f49fd0694d
Merge pull request #10903 from containers/dependabot/go_modules/github.com/containers/storage-1.32.6
Bump github.com/containers/storage from 1.32.5 to 1.32.6
2021-07-12 12:52:56 -04:00
OpenShift Merge Robot fe0bb28e68
Merge pull request #10896 from hshiina/pod-ps
Restore headers of optional information in 'podman pod ps'
2021-07-12 10:57:56 -04:00
Chris Evich fe044d51ea
Fix cirrus-cron failure notification GH workflow
The master->main rename broke this.  Also update the runtime along with
a comment w/ link to the actual job definitions.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-07-12 10:39:34 -04:00
OpenShift Merge Robot 788c2d136b
Merge pull request #10890 from rhatdan/main
Don't exclude Dockerfile, Containerfiles from tar content
2021-07-12 10:24:56 -04:00
Matej Vasek 6cac65c841 fix: uid/gid for volume mounted to existing dir
If mounting to existing directory the uid/gid should be preserved.
Primary uid/gid of container shouldn't be used.

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-07-12 14:56:55 +02:00
dependabot[bot] 084dbeb569
Bump github.com/containers/storage from 1.32.5 to 1.32.6
Bumps [github.com/containers/storage](https://github.com/containers/storage) from 1.32.5 to 1.32.6.
- [Release notes](https://github.com/containers/storage/releases)
- [Changelog](https://github.com/containers/storage/blob/main/docs/containers-storage-changes.md)
- [Commits](https://github.com/containers/storage/compare/v1.32.5...v1.32.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 12:20:58 +00:00
Daniel J Walsh 48ff2ef5a3
Don't exclude Dockerfile, Containerfiles from tar content
If the user specifies "*" in a .dockerignore or a .containerignore
then podman-remote build should not exclude the Dockerfile or
Containerfile or any content pointed to by `-f` in the context
directory.

We still need these files on the server side to complete the build.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-07-10 06:47:59 -04:00
OpenShift Merge Robot bef1f03d3c
Merge pull request #10868 from cdoern/untilLog
Implemented Until Query Parameter for Containers/logs
2021-07-10 06:31:49 -04:00
Hironori Shiina 6bdb990c9e Restore headers of optional information in 'podman pod ps'
When optional information such as container IDs and names in pods, the
headers are not displayed. This fix restored the headers.

Documentation of this subcommand is also updated.

Signed-off-by: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
2021-07-09 18:08:23 -04:00
OpenShift Merge Robot 24a5eeafc5
Merge pull request #10881 from mheon/remove_getstore
Remove GetStore function from Libpod
2021-07-09 14:21:08 -04:00
OpenShift Merge Robot dd2ca4bad4
Merge pull request #10879 from containers/dependabot/go_modules/github.com/onsi/gomega-1.14.0
Bump github.com/onsi/gomega from 1.13.0 to 1.14.0
2021-07-09 14:20:09 -04:00
OpenShift Merge Robot 78d7ae4e5d
Merge pull request #10892 from rugk/patch-2
[CI:DOCS] Mention new hostname for loopback IP
2021-07-09 14:19:11 -04:00
OpenShift Merge Robot ec97739712
Merge pull request #10893 from baude/issue10795
Add container config to compat image inspect
2021-07-09 14:04:08 -04:00
cdoern 4624142c2d Implemented Until Query Parameter for Containers/logs
compat containers/logs was missing actual usage of until query param.

fixes #10859

Signed-off-by: cdoern <cdoern@redhat.com>
2021-07-09 12:21:46 -04:00
rugk a2d15d9816
Mention new hostname for loopback IP
The hostname `host.containers.internal` is way easier to remember and should IMHO be preferred to be used, as it is:
a) easier to remember than some random IP
b) if the IP changes some time in the future the container will continue to work

And explain hostname adding in more detail
As per @mheon's suggestion.

And explain hostname adding *reason*
Also implies an suggestion for using the hostname instead.

And port change from podman-create man page to podman-run, too

Signed-off-by: rugk <rugk+git@posteo.de>
2021-07-09 17:47:11 +02:00
Brent Baude daebdf3859 Add container config to compat image inspect
With docker-compose, there is a use case where you can `docker-compose
up -d`, then change a file like docker-compose.yml and run up again.
This requires a ContainerConfig with at least Volumes be populated in
the inspect data.  This PR adds just that.

Fixes: #10795

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-07-09 10:10:04 -05:00
OpenShift Merge Robot 43abe006a3
Merge pull request #10872 from ebb-earl-co/rootless_tutorial_revision
[CI:DOCS] Update docs/tutorials/rootless_tutorial.md:
2021-07-09 10:36:08 -04:00
OpenShift Merge Robot b3c6d1fc7b
Merge pull request #10883 from rugk/patch-1
[CI:DOCS] fix: logo not loading after barnch renaming
2021-07-09 09:32:09 -04:00
rugk 00ed696ed9
fix: logo not loading after barnch renaming
You've renamed your branch from master to main and thus this URL here did not work anymore and caused a glitch in displaying the image in the docs.

Signed-off-by: rugk <rugk+git@posteo.de>
2021-07-09 14:22:01 +02:00
Colin Eberl Coe 95c4637851
Update docs/tutorials/rootless_tutorial.md:
* Change references of 'master' to 'main' in URLs e.g. https://github.com/containers/podman/blob/main/install.md
* Wrap names of files or programs by '`' e.g. `dnf`, `containers.conf`, `/etc/subuid`, etc.
* Change sentence with ambiguous subject to 'Root privileges are required to add or update entries within these files'
* Link to kernel.org documentation for the `getpwent` command
* Change sentence: 'Note that the values for each user must be unique ~and without any overlap~'
* Make references to the Podman project upper-case instead of lower-case
* Reorder sentence 'Update the `/etc/subuid` and `/etc/subgid` with fields for each user' to emphasize 'For each user'
* Remove reference to asciiart demos and update README.md link

Signed-off-by: Colin Eberl Coe <ebb-earl-co@pm.me>
2021-07-08 13:38:05 -05:00
Matthew Heon e5fcffc551 Remove GetStore function from Libpod
We should not be exposing the store outside of Libpod. We want to
encapsulate it as an internal implementation detail - there's no
reason functions outside of Libpod should directly be
manipulating container storage. Convert the last use to invoke a
method on Libpod instead, and remove the function.

[NO TESTS NEEDED] as this is just a refactor.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2021-07-08 14:22:33 -04:00
OpenShift Merge Robot 31c3b952e5
Merge pull request #10867 from baude/issue9334
Replace old RESTful tutorial with updated README
2021-07-08 11:09:09 -04:00
dependabot[bot] 563532aef8
Bump github.com/onsi/gomega from 1.13.0 to 1.14.0
Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.13.0 to 1.14.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.13.0...v1.14.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-07-08 12:23:01 +00:00
OpenShift Merge Robot 48d49032a1
Merge pull request #10865 from Luap99/rootless-cni
Make rootless-cni setup more robust
2021-07-08 05:13:10 -04:00
OpenShift Merge Robot 1a9cb93f16
Merge pull request #10870 from vrothberg/manifest-push-rm
manifest push --rm: use libimage for removal
2021-07-07 11:40:10 -04:00
Brent Baude 38863e7642 Replace old RESTful tutorial with updated README
Remove outdated information on go bindings.  Moved the tips for
debugging into the REAME and tidied up relevant links.

Fixes: #9334
[CI_DOCS]
[NO TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-07-07 10:03:01 -05:00
Valentin Rothberg 38bef70b30 manifest push --rm: use libimage for removal
Use libimage for removing the manifest instead of going directly
through the store.

[NO TESTS NEEDED]

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-07 15:55:36 +02:00
Paul Holzinger 2c7c679584
Make rootless-cni setup more robust
The rootless cni namespace needs a valid /etc/resolv.conf file. On some
distros is a symlink to somewhere under /run. Because the kernel will
follow the symlink before mounting, it is not possible to mount a file
at exactly /etc/resolv.conf. We have to ensure that the link target will
be available in the rootless cni mount ns.

Fixes #10855

Also fixed a bug in the /var/lib/cni directory lookup logic. It used
`filepath.Base` instead of `filepath.Dir` and thus looping infinitely.

Fixes #10857

[NO TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-07-06 18:40:03 +02:00
OpenShift Merge Robot c583d4dd8c
Merge pull request #10860 from containers/dependabot/go_modules/github.com/cyphar/filepath-securejoin-0.2.3
Bump github.com/cyphar/filepath-securejoin from 0.2.2 to 0.2.3
2021-07-06 04:31:54 -04:00
OpenShift Merge Robot ba29b30d74
Merge pull request #10788 from infiniteregrets/multi-pull
support pulling multiple images sequentially in a single podman pull
2021-07-06 04:30:54 -04:00
dependabot[bot] 518457b354
Bump github.com/cyphar/filepath-securejoin from 0.2.2 to 0.2.3
Bumps [github.com/cyphar/filepath-securejoin](https://github.com/cyphar/filepath-securejoin) from 0.2.2 to 0.2.3.
- [Release notes](https://github.com/cyphar/filepath-securejoin/releases)
- [Commits](https://github.com/cyphar/filepath-securejoin/compare/v0.2.2...v0.2.3)

---
updated-dependencies:
- dependency-name: github.com/cyphar/filepath-securejoin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-05 12:20:31 +00:00
Mehul Arora 59abb77fc2 multiple image pull support
Signed-off-by: Mehul Arora <aroram18@mcmaster.ca>
2021-07-05 16:07:49 +05:30
OpenShift Merge Robot 2681484d7c
Merge pull request #10853 from tnk4on/fixed_notation_for_macos
[CI:DOCS] Fixed notation for macOS
2021-07-05 05:56:11 -04:00
OpenShift Merge Robot 895b815188
Merge pull request #10836 from Luap99/diff
podman diff accept two images or containers
2021-07-03 06:17:03 -04:00
OpenShift Merge Robot 07716133c4
Merge pull request #10852 from Luap99/cobra
bump cobra to v1.2.1 and update the shell completion scripts
2021-07-03 06:11:03 -04:00
Shion Tanaka 4ea4a92c0d Fixed notation for macOS
Signed-off-by: Shion Tanaka <shtanaka@redhat.com>
2021-07-03 16:00:47 +09:00
OpenShift Merge Robot 878a2231f9
Merge pull request #10851 from Luap99/service-reaper
podman service reaper
2021-07-02 20:16:03 -04:00
OpenShift Merge Robot fc2f9cc3e6
Merge pull request #10850 from baude/issue10824
Create podman temp dir on machine start
2021-07-02 20:10:04 -04:00
baude 0c9dc86dea Create podman temp dir on machine start
If the tempdir for the OS does not have a podman/, machine start will fail.  An example would be after a reboot.  We now create the podman dir if it does not exist.

Fixes #10824

[NO TESTS NEEDED]

Signed-off-by: baude <baude@baudes-Mac-mini.localdomain>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-07-02 12:41:51 -05:00
OpenShift Merge Robot f93d60d018
Merge pull request #10842 from vrothberg/search-docs
[CI:DOCS] podman search: clarify that results depend on implementation
2021-07-02 13:09:04 -04:00
Paul Holzinger ed51e3f548
podman service reaper
Add a new service reaper package. Podman currently does not reap all
child processes. The slirp4netns and rootlesskit processes are not
reaped. The is not a problem for local podman since the podman process
dies before the other processes and then init will reap them for us.

However with podman system service it is possible that the podman
process is still alive after slirp died. In this case podman has to reap
it or the slirp process will be a zombie until the service is stopped.

The service reaper will listen in an extra goroutine on SIGCHLD. Once it
receives this signal it will try to reap all pids that were added with
`AddPID()`. While I would like to just reap all children this is not
possible because many parts of the code use `os/exec` with `cmd.Wait()`.
If we reap before `cmd.Wait()` things can break, so reaping everything
is not an option.

[NO TESTS NEEDED]

Fixes #9777

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-07-02 19:00:36 +02:00
Paul Holzinger 84da70a0f3
update shell completion scripts
The new cobra v1.2.0 release brings a number of bug fixes for shell
completion scripts. Regenerate the scripts with `make completions`
to sync them with the upstream version, currently we have some custom
ones to avoid some upstream bugs. Because the new cobra version has
all fixes we should use the upstream scripts.
Add a check to CI to ensure we always use the up to date scripts.

[NO TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-07-02 17:49:12 +02:00