6894 Commits

Author SHA1 Message Date
83d2686f46 Fix vendoring on master
It looks like something snuck in and now make vendor fails on
master. This should make things happy.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-03-17 15:20:14 -04:00
8f1ce4bddd Merge pull request #5524 from rhatdan/vendor
Update containers/storage to v1.16.5
2020-03-17 17:25:21 +01:00
f4e873c4e1 auto updates
Add support to auto-update containers running in systemd units as
generated with `podman generate systemd --new`.

`podman auto-update` looks up containers with a specified
"io.containers.autoupdate" label (i.e., the auto-update policy).

If the label is present and set to "image", Podman reaches out to the
corresponding registry to check if the image has been updated.  We
consider an image to be updated if the digest in the local storage is
different than the one of the remote image.  If an image must be
updated, Podman pulls it down and restarts the container.  Note that the
restarting sequence relies on systemd.

At container-creation time, Podman looks up the "PODMAN_SYSTEMD_UNIT"
environment variables and stores it verbatim in the container's label.
This variable is now set by all systemd units generated by
`podman-generate-systemd` and is set to `%n` (i.e., the name of systemd
unit starting the container).  This data is then being used in the
auto-update sequence to instruct systemd (via DBUS) to restart the unit
and hence to restart the container.

Note that this implementation of auto-updates relies on systemd and
requires a fully-qualified image reference to be used to create the
container.  This enforcement is necessary to know which image to
actually check and pull.  If we used an image ID, we would not know
which image to check/pull anymore.

Fixes: #3575
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-17 17:18:56 +01:00
9ef5d28759 Merge pull request #5449 from baude/manifests
apiv2 addition of manifests
2020-03-17 16:00:05 +01:00
c4a62733ae Merge pull request #5520 from giuseppe/make-warning-clearer
config: make warning clearer
2020-03-17 15:42:14 +01:00
8081d9c745 Update containers/storage to v1.16.5
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-17 09:52:11 -04:00
a255d7986a pkg/systemd: add dbus support
Move the dbus-connection code from libpod's healthcheck to pkg/systemd
to allow for sharing the logic.  Needed for the auto-updates work.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-17 11:29:37 +01:00
cc57b88f77 config: make warning clearer
make clearer that the warning could also happen because the logger is
set to use systemd.

Closes: https://github.com/containers/libpod/issues/5443

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-17 10:31:32 +01:00
2b2996d09d Merge pull request #5515 from edsantiago/ci_sundry_small_fixes
Four small CI fixes:
2020-03-16 20:47:07 +01:00
da17fbaad5 Merge pull request #5490 from containers/dependabot/go_modules/k8s.io/api-0.17.4
Bump k8s.io/api from 0.17.3 to 0.17.4
2020-03-16 20:44:50 +01:00
83c037c58c Merge pull request #5489 from containers/dependabot/go_modules/github.com/containers/common-0.5.0
Bump github.com/containers/common from 0.4.2 to 0.5.0
2020-03-16 20:02:27 +01:00
3003384785 Four small CI fixes:
1) 'podman system info' (in logcollector): has been silently
     failing in special_testing_rootless, with:
       logcollector.sh: line 16: podman: command not found
     Use ./bin/podman instead of just podman; this is probably
     the right thing to do in the general case anyway

  2) logformatter: highlight 'panic:', seen in bindings test:
        https://storage.googleapis.com/cirrus-ci-5385732420009984-fcae48/artifacts/containers/libpod/6693715108429824/html/integration_test.log.html

  3) logformatter: handle Unicode bullet in front of 'Running',
     seen in bindings test.

  4) logformatter: turn down contrast on BATS 'ok' results,
     for legibility

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-16 11:37:27 -06:00
67a985ddb2 Merge pull request #5514 from vrothberg/fix-ci
fix systemd generate tests
2020-03-16 11:36:26 -06:00
bfa1ba5882 fix systemd generate tests
Add the `default.target` to the failing tests.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-16 16:39:27 +01:00
abbbeacd68 apiv2 addition of manifests
add endpoints for create, add, remove, inspect, and push.  this allows manifests to be managed through the restful interfaces.

also added go-bindings and tests

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-16 10:03:55 -05:00
412a114d33 Merge pull request #5439 from ttys3/fixup-systemdgen-with-new-param
systemd generator: force run container detached if CreateCommand has no detach param
2020-03-16 14:40:02 +01:00
5288d112bc Merge pull request #5252 from QiWang19/not-reset-tempdir
Fix bug podman reset to not remove $XDG_RUNTIME_DIR
2020-03-16 13:48:36 +01:00
759ffb0a27 Merge pull request #5505 from tonybenoy/tony_typo
Missing double quotes in troubleshooting guide.
2020-03-16 13:39:59 +01:00
4e13ef58c8 Merge pull request #5476 from edsantiago/run_rmi_test_fix
run --rmi test: make it work
2020-03-16 12:51:50 +01:00
af1ac85da6 Merge pull request #5508 from baude/buildaddarchos
add os|arch attributes when building
2020-03-16 12:23:56 +01:00
9ca4b6c6f5 add os|arch attributes when building
when building images, we can now add the os and arch of the image using overrides from the commandline.  the commandline options set sane defaults so we use those as well.

Fixes: #5503

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-15 12:49:42 -05:00
9128ef85cc Missing double quotes in troubleshooting guide.
Signed-off-by: Tony Benoy <me@tonybenoy.com>
2020-03-15 18:40:43 +05:30
194723f314 force run container detached if container CreateCommand missing the detach param
the podman generated systemd service file has `Type=forking` service,
so the command after `ExecStart=` should not run in front.
if someone created a container and has the detach(`-d`) param missing
like this
```
podman create --name ngxdemo -P nginxdemos/hello
```
and generate the file with `--new` param:
```
podman generate systemd --name --new ngxdemo
```
because `podman run xxx` has no `-d` param,
so the container is not run in background and nerver exit.
and systemd will fail to start the service:
```
sudo systemctl start container-ngxdemo.service
Job for container-ngxdemo.service failed because a timeout was exceeded.
See "systemctl status container-ngxdemo.service" and "journalctl -xe" for details.
```

Signed-off-by: 荒野無燈 <ttys3@outlook.com>
2020-03-14 21:54:12 +08:00
8b07ad1138 Merge pull request #5496 from baude/preemptive
eat signal 23 in signal proxy
2020-03-14 01:04:10 +01:00
16536af113 Merge pull request #5491 from containers/dependabot/go_modules/github.com/fsnotify/fsnotify-1.4.9
Bump github.com/fsnotify/fsnotify from 1.4.7 to 1.4.9
2020-03-14 01:01:56 +01:00
4f497991bc Merge pull request #5327 from baude/apiv2hc
add apiv2 healthcheck code
2020-03-13 21:18:10 +01:00
a95e9e5b4a Bump github.com/containers/common from 0.4.2 to 0.5.0
Bumps [github.com/containers/common](https://github.com/containers/common) from 0.4.2 to 0.5.0.
- [Release notes](https://github.com/containers/common/releases)
- [Commits](https://github.com/containers/common/compare/v0.4.2...v0.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-13 13:11:17 -04:00
40ac4779eb Bump k8s.io/api from 0.17.3 to 0.17.4
Bumps [k8s.io/api](https://github.com/kubernetes/api) from 0.17.3 to 0.17.4.
- [Release notes](https://github.com/kubernetes/api/releases)
- [Commits](https://github.com/kubernetes/api/compare/v0.17.3...v0.17.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-13 09:33:05 -04:00
e7e5d125f3 Bump github.com/fsnotify/fsnotify from 1.4.7 to 1.4.9
Bumps [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) from 1.4.7 to 1.4.9.
- [Release notes](https://github.com/fsnotify/fsnotify/releases)
- [Changelog](https://github.com/fsnotify/fsnotify/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fsnotify/fsnotify/compare/v1.4.7...v1.4.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-13 09:31:40 -04:00
e6fba1e448 eat signal 23 in signal proxy
due to a change in golang-1.14 and it's changes to make go funcs with tight loops preemptive, signals are now getting "through" that never were before.

From the golang-1.14 announce:

Goroutines are now asynchronously preemptible. As a result, loops without function calls no longer potentially deadlock the scheduler or significantly delay garbage collection. This is supported on all platforms except windows/arm, darwin/arm, js/wasm, and plan9/*.

A consequence of the implementation of preemption is that on Unix systems, including Linux and macOS systems, programs built with Go 1.14 will receive more signals than programs built with earlier releases. This means that programs that use packages like syscall or golang.org/x/sys/unix will see more slow system calls fail with EINTR errors. Those programs will have to handle those errors in some way, most likely looping to try the system call again. For more information about this see man 7 signal for Linux systems or similar documentation for other systems.

Fixes #5483

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-13 08:19:08 -05:00
2099643aa2 add apiv2 healthcheck code
reworking binding and endpoint to actually work.  added documentation in swagger for and various return code possibilities.  add a good start on tests though we need some other container functions not yet implemented for that.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-13 07:43:12 -05:00
c9f148fb15 Merge pull request #5470 from containers/dependabot/go_modules/github.com/containers/storage-1.16.3
Bump github.com/containers/storage from 1.16.2 to 1.16.3
2020-03-12 16:58:59 -04:00
d586e16adc Merge pull request #5484 from baude/bindingsnocolor
turn off color-mode for bindings
2020-03-12 16:06:50 -04:00
ac6c8fb683 Merge pull request #5482 from baude/removeimagefilter
remove imagefilter for varlink remote client
2020-03-12 15:49:08 -04:00
194759b96e turn off color-mode for bindings
the binding ginkgo tests were using color mode which throws in a bunch of ansi garbage that makes it hard to read the logs

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-12 13:45:56 -05:00
3aa58ccd0a remove imagefilter for varlink remote client
the api for getting images changed to use filters but back level podman versions cannot handle it.  so temporarily disabling the filtering for remote clients until the restful approach can be used.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-12 12:43:32 -05:00
925da74118 Bump github.com/containers/storage from 1.16.2 to 1.16.3
Bumps [github.com/containers/storage](https://github.com/containers/storage) from 1.16.2 to 1.16.3.
- [Release notes](https://github.com/containers/storage/releases)
- [Changelog](https://github.com/containers/storage/blob/master/docs/containers-storage-changes.md)
- [Commits](https://github.com/containers/storage/compare/v1.16.2...v1.16.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-12 10:37:32 -04:00
9c7481dbd1 Merge pull request #5474 from giuseppe/detect-containers-rootlessport-child-exit
rootlessport: detect rootless-child exit
2020-03-12 10:22:34 -04:00
235f367861 Merge pull request #5469 from giuseppe/no-size-create-container
create: do not calculate image size
2020-03-12 10:20:02 -04:00
3585780876 run --rmi test: make it work
The recently-added 'run --rmi' test was not actually doing
what it thinks it was doing: for one, 'run_podman | grep'
is never going to work; also, the test was leaving behind
stray images.

Rework to do what I believe the intention was; and, combine
into one test (down from two) for readability.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-12 07:57:11 -06:00
19f5d557bc Merge pull request #5468 from Akasurde/5244_follow_up
Follow up change from #5244
2020-03-12 09:04:12 -04:00
647dc33e1a rootlessport: detect rootless-child exit
otherwise the rootless parent process might wait indefinitely when the
rootless-child process exits early.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-12 11:39:13 +01:00
8741eb8a92 create: do not calculate image size
calculating the image size can be an expensive operation.  Avoid doing
it when creating a new container since the size is not needed.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-12 09:51:17 +01:00
eb2d0a2289 Follow up changes from #5244
Code review change suggested by jwhonce in

https://github.com/containers/libpod/pull/5244#pullrequestreview-366574431

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-03-12 10:06:51 +05:30
78e090092b Merge pull request #5458 from baude/apiv2eventslibpod
[CI:DOCS]Add libpod event endpoint
2020-03-11 16:34:03 -04:00
9cfcf5692b Merge pull request #5460 from edsantiago/man_page_xref
man page cross-reference fixes: part 2
2020-03-11 16:18:13 -04:00
9bc27118b5 Merge pull request #5372 from sujil02/podstatus
Update start stop api to use pod status function.
2020-03-11 14:36:50 -04:00
dbb3de990b Merge pull request #5459 from mheon/bump_readme_181
[CI:DOCS] Update version in README to v1.8.1
2020-03-11 13:25:52 -04:00
3d1bff6db9 man page cross-reference fixes: part 2
The other direction: fix or clean up elements documented in
man pages but which did/do not exist in actual podman:

  * runlabel: add missing "-n" alias for --name

And, remove man page entries for nonexistent options:

  * podman commit: --iidfile
  * podman container runlabel: --rootfs, --storage
  * podman create: --cpu-count

There are two problems I don't know how to deal with. Both
are related to main_local.go:rootCmd.PersistentFlags() :

  1) podman-build.1.md documents --cni-config-dir and
     --runtime options, but these are not actually options
     under podman build; they are global options. The
     documentation in this man page differs from that
     under podman-build.

  2) podman ps implements a binary --namespace option,
     but this option does not (cannot?) appear in --help
     because there's a global --namespace string option
     and Cobra somehow gets confused about this.

Do we really intend for global options to be parsed on
the right-hand side of subcommands? This strikes me as
unintuitive and potentially confusing, although the
fact that it has taken me this long to discover it
suggests that it's not _that_ confusing.

Suggestions welcome. I can file issues for 1/2 above,
or simply teach my script to special-case ignore them.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-11 11:05:37 -06:00
29c071d4f7 Update version in README to v1.8.1
Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-03-11 12:47:31 -04:00