10580 Commits

Author SHA1 Message Date
d99e475dd7 Merge pull request #9008 from edsantiago/release_deal_with_set_minus_e
runner.sh : deal with bash 'set -e'
2021-01-19 11:34:14 -05:00
8c6df5e93e Merge pull request #9004 from baude/existsoptions
Add binding options for container|pod exists
2021-01-19 08:47:37 -05:00
9a10f20bc1 Merge pull request #9001 from vrothberg/ginkgo
ginkgo: install on demand via `go get -u`
2021-01-19 07:24:29 -05:00
de05e58168 ginkgo: install on demand via go get -u
Install ginkgo on demand via `go get -u` rather than keeping a copy it's
entire source code in the vendor dirctory.  The main motivation for that
is to make `golangci-lint` happy which is continuously throwing up on
the import of a program (i.e., ginkgo).  The linter is broken and stupid
as it ignores flags to ignore dirs and ignores build tags (at least some
linters do) which is blocking us from updating to newer versions.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-01-19 10:00:53 +01:00
d2ee3d8151 runner.sh : deal with bash 'set -e'
Release trigger script failed[1] because the entire script
runs under 'set -e'; so a 'grep -- -dev' that finds no
results will cause a nonzero exit status and hence the
entire script to fail. Work around that.

 [1] https://cirrus-ci.com/task/4541290882793472

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-01-18 15:10:58 -07:00
4ccb0729b4 Add binding options for container|pod exists
It turns out an options was added to container exists so it makes sense
to have pods and container exists calls have an optional structure for
options.

Signed-off-by: baude <bbaude@redhat.com>
2021-01-18 13:48:51 -06:00
5f1a7a7d27 Merge pull request #9007 from baude/nocomposeoncidocs
[CI:DOCS]Do not run compose tests with CI:DOCS
2021-01-18 13:01:26 -05:00
683bab03f8 [CI:DOCS]Do not run compose tests with CI:DOCS
Signed-off-by: baude <bbaude@redhat.com>
2021-01-18 10:20:43 -06:00
5b3c7a5293 Merge pull request #8995 from vrothberg/lint-lint-lint
[CI:DOCS] lint lint lint
2021-01-17 15:38:30 -05:00
00ab9cab01 Merge pull request #8994 from vrothberg/fix-8989
Simplify bindings generation
2021-01-17 15:32:56 -05:00
0030a23777 Merge pull request #8992 from rhatdan/push
[ci:docs] Create release notes for V3.0.0
2021-01-17 15:26:47 -05:00
2df59829e4 simplify bindings generation
Run `go generate ./pkg/bindings/...` once for all bindings instead of
generating them separately.  This should speed up bindings generation
as a given package is visited only once, and it fixes #8989 by dropping
the use of pushd and popd.

Fixes: #8989
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-01-17 17:24:03 +01:00
4629942686 make: generate bindings: use vendor
Set `-mod=vendor` when generating the bindings.  We expect all
dependencies to be vendored already.  This should slightly speed
up the bindings generation and prevent redundant network accesses.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-01-17 17:24:01 +01:00
caaaa2c5e1 hack/install_golangci.sh: smarter install
Detect if the installed version of golangci-lint is outdated and update
it if needed.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-01-17 17:15:23 +01:00
f38b7f48cc golangci-lint: install to ./bin
Install golangci-lint to `./bin` instead of `$GOBIN`.  The latter may be
shared with other projects who require a different version.  Having a
shared version of golangci-lint is a reoccurring source of red herrings
on my work station, so I think it's time to split them.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-01-17 17:07:04 +01:00
46c87f6711 Create release notes for V3.0.0
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-17 07:48:52 -05:00
341c4b1fd9 Merge pull request #8942 from rhatdan/push
Allow podman push to push manifest lists
2021-01-17 06:52:35 -05:00
73b036db56 Merge pull request #8988 from Luap99/rename-port-completion-func
[CI:DOCS] Rename AutocompletePortCommand func
2021-01-16 18:17:38 -05:00
47eeb02c7a Rename AutocompletePortCommand func
This function is now used for the port and rename command.
Rename it to AutocompleteContainerOneArg.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-16 18:54:59 +01:00
83ed464d29 Merge pull request #8986 from baude/bindingreadme
[CI:DOCS]Add README.md for golang bindings
2021-01-15 13:58:27 -05:00
f43f209ca4 Merge pull request #8456 from kazimsarikaya/fix-send-tar
podman remote send tar
2021-01-15 13:49:27 -05:00
53ecda2981 Merge pull request #8949 from giuseppe/sysfs-for-rootless
specgen: improve heuristic for /sys bind mount
2021-01-15 13:38:30 -05:00
cf51c7ed9f Allow podman push to push manifest lists
When doing a podman images, manifests lists look just like images, so
it is logical that users would assume that they can just podman push them
to a registry.  The problem is we throw out weird errors when this happens
and users need to somehow figure out this is a manifest list rather then
an image, and frankly the user will not understand the difference.

This PR will make podman push just do the right thing, by failing over and
attempting to push the manifest if it fails to push the image.

Fix up handling of manifest push

Protocol should bring back a digest string, which can either be
printed or stored in a file.

We should not reimplement the manifest push setup code in the tunnel
code but take advantage of the api path, to make sure remote and local
work the same way.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-15 13:24:34 -05:00
f59c29a6d7 [CI:DOCS]Add README.md for golang bindings
Add a brief description of the golang bindings and provide examples on
how to use them

Signed-off-by: baude <bbaude@redhat.com>
2021-01-15 10:49:40 -06:00
0400dc0a00 Merge pull request #8983 from rhatdan/test
Turn on podman pod stats test for rootless cgroup v2
2021-01-15 11:47:48 -05:00
7d3a628c6b Merge pull request #8982 from Luap99/container-rename-bindings
Container rename bindings
2021-01-15 10:48:27 -05:00
7a30e82220 Turn on podman pod stats test for rootless cgroup v2
These tests should only be blocked for cgroups V1

Fixes: https://github.com/containers/podman/issues/8734
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-15 09:24:28 -05:00
5a166b2973 Merge pull request #8978 from rhatdan/buildah
Bump to containers/buildah 1.9.2
2021-01-15 09:23:57 -05:00
3ceef004e3 Merge pull request #8981 from containers/dependabot/go_modules/github.com/google/uuid-1.1.5
Bump github.com/google/uuid from 1.1.4 to 1.1.5
2021-01-15 08:43:27 -05:00
82462aca7f Merge pull request #8977 from cevich/get_ci_hook_docs
[CI:DOCS] Add hook-script example to get_ci_vm.sh
2021-01-15 08:34:45 -05:00
0688f080b8 Fix missing podman-container-rename man page link
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-15 12:57:33 +01:00
c9bd292b32 Container rename bindings
Add bindings and podman-remote support for container rename.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-15 12:57:22 +01:00
c88022589a Bump to containers/buildah 1.9.2
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-15 06:23:19 -05:00
3ac930f002 Bump github.com/google/uuid from 1.1.4 to 1.1.5
Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.1.4 to 1.1.5.
- [Release notes](https://github.com/google/uuid/releases)
- [Commits](https://github.com/google/uuid/compare/v1.1.4...v1.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-01-15 12:18:46 +01:00
2c328a4ac1 specgen: improve heuristic for /sys bind mount
partially revert 95c45773d7dbca2880152de681c81f0a2afec99b

restrict the cases where /sys is bind mounted from the host.

The heuristic doesn't detect all the cases where the bind mount is not
necessary, but it is an improvement on the previous version where /sys
was always bind mounted for rootless containers unless --net none was
specified.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-01-15 09:10:55 +01:00
3fcf346890 Merge pull request #8955 from mheon/rename
Container Rename
2021-01-14 22:03:01 -05:00
8ce9995951 Merge pull request #8604 from mheon/volume_plugin_impl
Initial implementation of volume plugins
2021-01-14 21:56:37 -05:00
997de2f8e9 Initial implementation of renaming containers
Basic theory: We remove the container, but *only from the DB*.
We leave it in c/storage, we leave the lock allocated, we leave
it running (if it is). Then we create an identical container with
an altered name, and add that back to the database. Theoretically
we now have a renamed container.

The advantage of this approach is that it doesn't just apply to
rename - we can use this to make *any* configuration change to a
container that does not alter its container ID.

Potential problems are numerous. This process is *THOROUGHLY*
non-atomic at present - if you `kill -9` Podman mid-rename things
will be in a bad place, for example. Also, we can't rename
containers that can't be removed normally - IE, containers with
dependencies (pod infra containers, for example).

The largest potential improvement will be to move the majority of
the work into the DB, with a `RecreateContainer()` method - that
will add atomicity, and let us remove the container without
worrying about depencies and similar issues.

Potential problems: long-running processes that edit the DB and
may have an older version of the configuration around. Most
notable example is `podman run --rm` - the removal command needed
to be manually edited to avoid this one. This begins to get at
the heart of me not wanting to do this in the first place...

This provides CLI and API implementations for frontend, but no
tunnel implementation. It will be added in a future release (just
held back for time now - we need this in 3.0 and are running low
on time).

This is honestly kind of horrifying, but I think it will work.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2021-01-14 18:29:28 -05:00
f781efd2dc Add tests for volume plugins
This involves a new test binary (a basic implementation of the
volume plugin protocol) and a new image on quay.io (Containerfile
to produce it and all sources located in this commit). The image
is used to run a containerized plugin we can test against.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2021-01-14 16:43:23 -05:00
b53cb57680 Initial implementation of volume plugins
This implements support for mounting and unmounting volumes
backed by volume plugins. Support for actually retrieving
plugins requires a pull request to land in containers.conf and
then that to be vendored, and as such is not yet ready. Given
this, this code is only compile tested. However, the code for
everything past retrieving the plugin has been written - there is
support for creating, removing, mounting, and unmounting volumes,
which should allow full functionality once the c/common PR is
merged.

A major change is the signature of the MountPoint function for
volumes, which now, by necessity, returns an error. Named volumes
managed by a plugin do not have a mountpoint we control; instead,
it is managed entirely by the plugin. As such, we need to cache
the path in the DB, and calls to retrieve it now need to access
the DB (and may fail as such).

Notably absent is support for SELinux relabelling and chowning
these volumes. Given that we don't manage the mountpoint for
these volumes, I am extremely reluctant to try and modify it - we
could easily break the plugin trying to chown or relabel it.

Also, we had no less than *5* separate implementations of
inspecting a volume floating around in pkg/infra/abi and
pkg/api/handlers/libpod. And none of them used volume.Inspect(),
the only correct way of inspecting volumes. Remove them all and
consolidate to using the correct way. Compat API is likely still
doing things the wrong way, but that is an issue for another day.

Fixes #4304

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2021-01-14 15:35:33 -05:00
ec309504c4 [CI:DOCS] Add hook-script example to get_ci_vm.sh
Signed-off-by: Chris Evich <cevich@redhat.com>
2021-01-14 14:26:36 -05:00
2b7793b612 Merge pull request #8956 from rhatdan/Makefile
Makefile: add target to generate bindings
2021-01-14 14:00:04 -05:00
a1b49749af Merge pull request #8906 from vrothberg/fix-8501
container stop: release lock before calling the runtime
2021-01-14 13:37:16 -05:00
e0211a14fc Merge pull request #8974 from Luap99/vendor-ocicni
Bump github.com/cri-o/ocicni to latest master
2021-01-14 13:13:52 -05:00
d498ef53aa Makefile: add target to generate bindings
Add a `.generate-bindings` make target that only runs in the absence of
the `.generate-bindings` file or when a `types.go` file below
`pkg/bindings` has changed.

This will regenerate the go bindings and make sure the code is up2date.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-14 11:54:57 -05:00
d54478d8ea container stop: release lock before calling the runtime
Podman defers stopping the container to the runtime, which can take some
time.  Keeping the lock while waiting for the runtime to complete the
stop procedure, prevents other commands from acquiring the lock as shown
in #8501.

To improve the user experience, release the lock before invoking the
runtime, and re-acquire the lock when the runtime is finished.  Also
introduce an intermediate "stopping" to properly distinguish from
"stopped" containers etc.

Fixes: #8501
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-01-14 17:45:30 +01:00
ad9bb80a24 Bump github.com/cri-o/ocicni to latest master
The changes from https://github.com/cri-o/ocicni/pull/83 are needed
to improve the user experience when using the new network reload command.

see: https://github.com/containers/podman/pull/8571#discussion_r535167473

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-14 16:52:52 +01:00
a944f906b8 Merge pull request #8973 from cevich/no_check_mirror
[CI:DOCS] Cirrus: Upd. ext. service check host list
2021-01-14 10:34:00 -05:00
7490402fab Cirrus: Upd. ext. service check host list
Since CI doesn't depend heavily on installing packages at runtime
(there is some minor use) there's no need to exhaustively check
repository mirror hosts.  Remove them from the list.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-01-14 09:40:01 -05:00
9f50d486f3 Merge pull request #8969 from containers/dependabot/go_modules/github.com/stretchr/testify-1.7.0
Bump github.com/stretchr/testify from 1.6.1 to 1.7.0
2021-01-14 06:38:41 -05:00