Commit Graph
1346 Commits
Author SHA1 Message Date
Brent Baude 6514a5c80e v2podman container create
create a container in podmanv2 using specgen approach.  this is the core implementation and still has quite a bit of code commented out specifically around volumes, devices, and namespaces.  need contributions from smes on these parts.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-03 15:43:03 -05:00
OpenShift Merge Robot 35f5867833 Merge pull request #5672 from baude/v2save
podmanv2 save image
2020-04-03 22:41:18 +02:00
Brent Baude 837aad724f podmanv2 save image
add ability to save an image for podman v2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-03 13:07:35 -05:00
OpenShift Merge Robot 64cade0f71 Merge pull request #5638 from baude/v2containercheck
podmanv2 checkpoint and restore
2020-04-03 20:05:30 +02:00
OpenShift Merge Robot 2d9b9e81a3 Merge pull request #5676 from kolyshkin/volume-flags-alt
Fix/improve pkg/storage.InitFSMounts
2020-04-03 18:34:01 +02:00
OpenShift Merge Robot a89d62ac3a Merge pull request #5701 from vrothberg/v2-push
podmanV2: implement push
2020-04-03 18:11:54 +02:00
Brent Baude 8a16674722 podmanv2 checkpoint and restore
add the ability to checkpoint and restore containers on v2podman

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-03 09:32:06 -05:00
Daniel J Walsh 1f8569f7d7 Fix environment handling from containers.conf
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-02 13:10:08 -04:00
Valentin Rothberg 44a515015c podmanV2: implement push
* Implement `podman-push` and `podman-image-push` for the podmanV2
  client.

* Tests for `pkg/bindings` are not possible at the time of writing as we
  don't have a local registry running.

* Implement `/images/{name}/push` compat endpoint. Tests are not
  implemented for this v2 endpoint.  It has been tested manually.

General note: The auth config extraction from the http header is not
implement for push.  Since it's not yet supported for other endpoints
either, I deferred it to future work.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-02 17:01:32 +02:00
Kir Kolyshkin e0614367ca pkg/spec.InitFSMounts: optimize
Instead of getting mount options from /proc/self/mountinfo, which is
very costly to read/parse (and can even be unreliable), let's use
statfs(2) to figure out the flags we need.

[v2: move getting default options to pkg/util, make it linux-specific]

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-04-02 07:52:34 -07:00
OpenShift Merge Robot 82610d657d Merge pull request #5688 from baude/v2import
podmanv2 import
2020-04-02 14:20:57 +02:00
Kir Kolyshkin f2c42a3958 pkg/spec.InitFSMounts: fix mount opts in place
... rather than create a new slice and then make the caller
replace the original with the new one.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-04-01 15:30:59 -07:00
Brent Baude bb39051616 podmanv2 export
add ability to export a container to a tarball

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-01 16:02:53 -05:00
Brent Baude 0433081983 podmanv2 import
add the ability to import a container image from a container export

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-01 15:56:26 -05:00
Brent Baude 8500ce6b9a podmanv2 load
enable podman load for v2

add reexec into main

add systemd build flag to v2 makefile

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-01 14:10:57 -05:00
Jhon Honce 46e3b2efb8 V2 podman inspect
* Expose podman container inspect
* Expose podman image inspect

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-01 08:07:43 -07:00
OpenShift Merge Robot 82cbebcbea Merge pull request #5656 from baude/v2imagetag
podman v2 image tag and untag
2020-04-01 16:10:10 +02:00
Brent Baude 26644d7cb8 podman v2 image tag and untag
add the ability to tag and untag images in podmanv2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-31 19:36:26 -05:00
Brent Baude 7def91910c podmanv2 pod ps
add the ability to list pods in podmanv2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-31 19:32:37 -05:00
OpenShift Merge Robot 9f5fcc3565 Merge pull request #5655 from baude/v2hcrun
podmanv2 enable healthcheck run
2020-03-31 23:01:19 +02:00
OpenShift Merge Robot 6e8f6cab60 Merge pull request #5675 from vrothberg/v2-pull
podmanV2: implement pull
2020-03-31 21:12:49 +02:00
OpenShift Merge Robot 56ab9e4cc8 Merge pull request #5649 from jwhonce/wip/varlink
V2 Move varlink home
2020-03-31 20:34:36 +02:00
Daniel J Walsh 3449b27cd1 Switch to using --time as opposed to --timeout to better match Docker.
We need to consistently use --time rather then --timeout throughout the code.
Fix locations where timeout defaults are not set correctly as well.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-31 08:50:32 -04:00
Valentin Rothberg 3bdad6fa2a podmanV2: implement pull
Implement pulling images for the v2 client.  What I _really_ don't like
is the fact that we are now having a near identical code clone among
`pkg/domain/infra/abi` and `pkg/api/handlers/libpod`.  Partly because we
don't yet have a higher-level pull function and partly because we have
redudancy among `pkg/domain` and `pkg/api`.  Pull might be a high
outlier but I am concerned already by the potential of introducing more
redundancy.  I'd love to `infra/abi` and `pkg/abi` to really use the
same code in the future.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-31 13:01:27 +02:00
Kir Kolyshkin c11c5e180a pkg/spec/initFSMounts: fix
> $ ./bin/podman run -v /tmp:/tmp alpine true; echo $?
> 0
> $ ./bin/podman run -v /tmp:/tmp:ro alpine true; echo $?
> 0
> $ ./bin/podman run -v /tmp:/w0w:ro alpine true; echo $?
> Error: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/tmp\\\" to rootfs \\\"/home/kir/.local/share/containers/storage/overlay/7636ef3650fc91ee4996ccc026532bb3cff7182c0430db662fffb933e0bcadc9/merged\\\" at \\\"/home/kir/.local/share/containers/storage/overlay/7636ef3650fc91ee4996ccc026532bb3cff7182c0430db662fffb933e0bcadc9/merged/w0w\\\" caused \\\"operation not permitted\\\"\"": OCI runtime permission denied error
> 126

The last command is not working because in-container mount point
is used to search for a parent mount in /proc/self/mountinfo.

And yet the following

> $ ./bin/podman run -v /tmp:/run/test:ro alpine true; echo $?
> 0

still works fine! Here's why:

> $ mount | grep -E '/run |/tmp '
> tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
> tmpfs on /tmp type tmpfs (rw,nosuid,nodev,seclabel)

This is the reason why previous commit modified in-container mount
point.

Fixes: 0f5ae3c5af
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-03-31 01:56:10 -07:00
Ed Santiago 11e79bcd95 fix more swagger inconsistencies
I'm getting really tired of doing this manually.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-30 09:45:34 -06:00
Jhon Honce 7a12e01556 V2 Move varlink home
* move cmd/podman/varlink/* to pkg/varlink to support podmanV2 refactor
* update Makefile
* reformatted all impacted code

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-30 08:18:35 -07:00
OpenShift Merge Robot 8193751287 Merge pull request #5639 from vrothberg/v2-pod-top
V2 pod top
2020-03-30 13:59:37 +02:00
Brent Baude a84c006368 podmanv2 enable healthcheck run
run healthcheck with podmanv2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-29 18:48:29 -05:00
Valentin Rothberg edec8ccf3f swagger: top: remove "Docker" from the identifiers
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-28 17:32:27 +01:00
Valentin Rothberg 9812804f75 podmanv2: implement pod top
Implement `podman pod top` for podmanV2.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-28 17:32:22 +01:00
Valentin Rothberg cc129d13c5 v2 api: implement pods top endpoint
Note that this commit does not add tests for the pod-top endpoint.
They will be added in a later change.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-28 16:49:08 +01:00
Brent Baude 3ff1583814 podmanv2 commit
add commit of a container to a container-image

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-28 10:11:50 -05:00
OpenShift Merge Robot 3336b100ef Merge pull request #4698 from rhatdan/containers.conf
Add support for containers.conf
2020-03-27 20:55:48 +01:00
OpenShift Merge Robot 1fe2fbb421 Merge pull request #5642 from tylarb/5610_play_kube_network
Sanitize port parsing for pods in play kube
2020-03-27 19:42:50 +01:00
Daniel J Walsh 4352d58549 Add support for containers.conf
vendor in c/common config pkg for containers.conf

Signed-off-by: Qi Wang qiwan@redhat.com
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-27 14:36:03 -04:00
OpenShift Merge Robot 2c5c198020 Merge pull request #5632 from jwhonce/wip/images
V2 podman image prune
2020-03-27 18:47:51 +01:00
Tyler Ramer d704144f53 Sanitize port parsing for pods in play kube
The logic used in parsing the ports to be utilized in a kubenetes api
defined pod did not fully adhere to the kubenetes spec, nor did it map
well to a podman context. This fix sanitizes the input of container
ports to meet the following rules:

- A defined containerPort with no defined hostPort does nothing in a
podman context, or is informational. This is line with [usage in
Kubernetes.](https://github.com/kubernetes/kubernetes/issues/4332)

- A defined hostPort with no defined containerPort acts like a
publish [hostPort]:[hostPort]

- A defined containerPort and defined hostPort works like it does in
kubernetes, as in a publish [hostPort]:[containerPort]

Addresses https://github.com/containers/libpod/issues/5610

Signed-off-by: Tyler Ramer <tyaramer@gmail.com>
2020-03-27 13:33:37 -04:00
Brent Baude e56d529561 podmanv2 pod create using podspecgen
using the factory approach similar to container, we now create pods based on a pod spec generator.  wired up the podmanv2 pod create command, podcreatewithspec binding, simple binding test, and apiv2 endpoint.

also included some code refactoring as it introduced as easy circular import.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-27 09:04:10 -05:00
Valentin Rothberg 500a2d508b podmanV2: implement top
Implement the `top` command for podmanV2.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-27 09:14:01 +01:00
Jhon Honce 581dd312af V2 podman image prune
* Fixed header for `podman image ls`
* Implemented prune `all` flag, preserved filter method for backwards
  capability
* Updated binding tests

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-26 18:32:44 -07:00
Brent Baude 2fa78938a9 podmanv2 container inspect
add ability to inspect a container

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-26 15:54:26 -05:00
Brent Baude c5ce210f7d podmanv2 pod subcommands
add pod kill, pause, restart, rm, start, stop, and unpause

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-26 14:14:05 -05:00
OpenShift Merge Robot 913426c70c Merge pull request #5573 from mheon/add_basic_exec_endpoints
Implement APIv2 Exec Create and Inspect Endpoints
2020-03-26 20:10:08 +01:00
OpenShift Merge Robot 14ece7ecaf Merge pull request #5627 from baude/apiv2createnet
apiv2 add default network in specgen
2020-03-26 18:59:47 +01:00
Matthew Heon e42cbdd1b2 Add bindings for Container Exec Create + Inspect
Also adds some basic tests for these two. More tests are needed
but will have to wait for state to be finished.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-03-26 13:33:33 -04:00
OpenShift Merge Robot 4f38509b6c Merge pull request #5615 from jwhonce/wip/images
V2 podman image rm | podman rmi [IMAGE]
2020-03-26 18:11:38 +01:00
Brent Baude cac8bcdd7e apiv2 add default network in specgen
when a network is not provided, we should set a default mode based on rootless or rootfull.

Fixes: #5366

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-26 11:58:22 -05:00
Jhon Honce f38a26bfa0 V2 podman image rm | podman rmi [IMAGE]
* Add support for rm and rmi commands
* Support for registry.ExitCode
* Support for N-errors from domain layer

* Add log-level support
* Add syslog support

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-25 17:54:14 -07:00
Jhon Honce 36a4cc864d V2 podman image
* Exists()

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-25 17:54:14 -07:00