Commit Graph

1062 Commits

Author SHA1 Message Date
Matthew Heon
e6ec1aaffe Trivial refactor on volume addition
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #700
Approved by: rhatdan
2018-05-03 12:23:12 +00:00
Matthew Heon
6ebb90f951 When adding volumes to DB, handle nontrivial cases
We want to make sure we don't add anything but the host volume,
and the volumes can include options and container locations.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #700
Approved by: rhatdan
2018-05-03 12:23:12 +00:00
Matthew Heon
ab7e2a6956 Store user Volumes, Entrypoint, Command in database
We need these for commit, and they cannot be properly deduced
from just the OCI spec, so save them in the database so we can
retrieve them for commit.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #700
Approved by: rhatdan
2018-05-03 12:23:12 +00:00
Matthew Heon
a0e8f88700 Add config bool to indicate there are user volumes
This allows us to accurately trigger OCI hooks that trigger on
the presence of volume mounts.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #700
Approved by: rhatdan
2018-05-03 12:23:12 +00:00
baude
64dc8039e9 remove options from create/run that we cannot support
Signed-off-by: baude <bbaude@redhat.com>

Closes: #711
Approved by: rhatdan
2018-05-02 18:54:14 +00:00
umohnani8
03753712fc Fix podman logout --all flag
podman logout --all should remove cached credentials for all registries in
the auth.json file.
Before this, it was asking for a registry to be given with the --all flag also.

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #712
Approved by: rhatdan
2018-05-02 16:55:31 +00:00
baude
970eaf0033 podman should assign a host port to -p when omitted
If the user does not provide a host port when adding -p to create/run, podman should inject an available random port.

podman run -p 80 .... podman should assign a random port to the host and expose the container port 80 to it

Signed-off-by: baude <bbaude@redhat.com>

Closes: #703
Approved by: rhatdan
2018-05-01 21:47:34 +00:00
baude
7a0a8552cb Fix misc stuff found by jhonce
During the python client implementation, jhonce found some return types
that needed correction as well as a panic related to history which is now
corrected.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #704
Approved by: rhatdan
2018-04-30 22:22:08 +00:00
baude
9924956dc8 do not commit default volumes from container
when performing a container commit, we should not add the default list of volumes
for a container to the resulting image.  it will cause the resulting image to crash
when run subsequently.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #699
Approved by: mheon
2018-04-30 21:07:59 +00:00
umohnani8
d5d6e68592 Make ':' a restricted character for file names
file names for podman load, save, export, and import cannot
contain ":" in them. It is a reserved character for parsing
filenames.

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #694
Approved by: rhatdan
2018-04-30 19:58:22 +00:00
umohnani8
d1b03f470e Add more validation to --volume flag for run and create
Return error if the host and container  paths is a relative path.
Only absolute paths allowed.

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #695
Approved by: rhatdan
2018-04-30 19:30:57 +00:00
baude
a824186ac9 Use buildah commit and bud in podman
Vendor in buildah and use as much of commit and bug as possible for podman
build and commit.

Resolves #586
Signed-off-by: baude <bbaude@redhat.com>

Closes: #681
Approved by: mheon
2018-04-27 20:51:07 +00:00
baude
39a7a773a6 varlink images
implement varlink image functions for working with libpod with the exception of a
couple due to incompletions on the libpod side of things (build).

also, created a first pass at a libpodpy package which will stand as a client to
working with libpod's varlink methods using python.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #669
Approved by: baude
2018-04-26 19:14:44 +00:00
umohnani8
6ac8a24db4 Add --default-mounts-file hidden flag
The hidden flag is used to override the path of the default mounts file
for testing purposes.
Also modified the secrets pkg to allow for this override to happen.

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #678
Approved by: mheon
2018-04-26 16:33:25 +00:00
Harald Hoyer
57359619e8 Only generate the varlink glue code if needed and from the vendor dir
Closes: #671
Approved by: baude
2018-04-25 19:49:42 +00:00
baude
22011b428c Updated varlink vendored code
Signed-off-by: baude <bbaude@redhat.com>

Closes: #670
Approved by: mheon
2018-04-25 16:21:27 +00:00
baude
398133e042 packagers need the varlink generated file
Signed-off-by: baude <bbaude@redhat.com>

Closes: #664
Approved by: baude
2018-04-24 19:13:45 +00:00
baude
8493dba23c Initial varlink implementation
Signed-off-by: baude <bbaude@redhat.com>

Closes: #627
Approved by: mheon
2018-04-23 14:29:45 +00:00
baude
3c5c0f5b69 podman push without destination image
the destination image for podman push should be optional (if the destination
has already been tagged in).  the man page for podman push describes that it
should work this way.

Resolves: #645

Signed-off-by: baude <bbaude@redhat.com>

Closes: #646
Approved by: mheon
2018-04-20 14:55:47 +00:00
Matthew Heon
2cf78a2006 Print ctr ID if neither STDOUT and STDERR are attached
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #638
Approved by: rhatdan
2018-04-19 16:56:29 +00:00
umohnani8
27107fdac1 Vendor in latest containers/image and contaners/storage
Made necessary changes to functions to include contex.Context wherever needed

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #640
Approved by: baude
2018-04-19 14:08:47 +00:00
baude
cc7d1de1c1 It is OK to start an already running container (with no attach)
Signed-off-by: baude <bbaude@redhat.com>

Closes: #637
Approved by: rhatdan
2018-04-18 18:22:24 +00:00
Matthew Heon
06f0d0bf6e Refactor logic for forceSecure in pull for readability
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #636
Approved by: rhatdan
2018-04-18 15:53:30 +00:00
Matthew Heon
46b0e1bb27 Small logic fix for podman pull with tls-verify
Ensure we don't force TLS verification when --tls-verify is set
to false.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #636
Approved by: rhatdan
2018-04-18 15:53:30 +00:00
baude
95f272a0c5 Allow podman start to attach to a running container
If a container is already running, and a user asks to start it -a (attach), we should
honor this and attach to the container.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #634
Approved by: baude
2018-04-18 14:44:51 +00:00
baude
313e5e83e9 regression: tls verify should be set on registries.conf if insecure
In the case where podman needs to pull an image, if that registry that the image
resides on is known to be insesure (as defined in /etc/containers/registries.conf),
tls-verify should be altered on the fly.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #626
Approved by: mheon
2018-04-18 14:07:59 +00:00
Matthew Heon
96d11622c6 Allow podman to exit exit codes of removed containers
We can read the exit file created by conmon to get the exit code
instead of querying libpod.

Also, do not error on cleanup if the container is already gone,
as a completely removed container is definitely cleaned up.

Resolves: #527

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #632
Approved by: rhatdan
2018-04-17 16:00:34 +00:00
baude
474d95e5a4 validate dns-search values prior to creation
Signed-off-by: baude <bbaude@redhat.com>

Closes: #628
Approved by: baude
2018-04-16 20:25:24 +00:00
baude
fa8442e4a0 podman pull should always try to pull
In the case where you have an image local, if the the user runs
podman pull, we should always attempt to pull an updated image.

Added a forceRemote bool to New (image) so we can differentiate
between "pull" or run because the actions differ.  Run does not
need to pull the latest -- only run.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #618
Approved by: baude
2018-04-14 23:55:24 +00:00
baude
62b59df053 Allow the use of -i/-a on any container
We used to not allow the use of -a/-i on containers that were not
started with -i or a tty.  Given the improvements in our terminal
handling, this should work now.

This also fixes a systemic problem with the autotests.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #617
Approved by: baude
2018-04-14 13:48:35 +00:00
Matthew Heon
8d7635b1ac Change attach to accept a struct containing streams
Comparing Go interfaces, like io.Reader, to nil does not work. As
such, we need to include a bool with each stream telling whether
to attach to it.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #608
Approved by: baude
2018-04-13 18:43:44 +00:00
Matthew Heon
6609d555f7 Fix terminal attach
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #608
Approved by: baude
2018-04-13 18:43:44 +00:00
Matthew Heon
5e03cec7ec Changes to attach to enable per-stream attaching
This allows us to attach to attach to just stdout or stderr or
stdin, or any combination of these.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #608
Approved by: baude
2018-04-13 18:43:44 +00:00
baude
77a1665c05 Containers transitioning to stop should not break stats
When a container is transitioning from running to stopped and stats is runnings,
we should not break stats if we are unable to get stats for that container.

Resolves: #598

Signed-off-by: baude <bbaude@redhat.com>

Closes: #599
Approved by: mheon
2018-04-11 18:35:37 +00:00
baude
22c00ceebb Add -i to exec for compatibility reasons
No change to functionality

Issue: #606

Signed-off-by: baude <bbaude@redhat.com>

Closes: #607
Approved by: rhatdan
2018-04-11 15:02:50 +00:00
Boaz Shuster
864b9c06c0 Unescape characters in inspect JSON format output
This patch changes the way the inspect command output is displayed
on the screen when the format is set to JSON.

Note: if the output is redirected to a file the output is *not*
escaped.

For example, before this commit if you run:
$ sudo podman inspect --format "json" daveimg
[
   {
   ...
      "Author": "Dave \u003cdave@corp.io\u003e",
   }
   ...
]

with this patch the output will be:
[
   {
   ...
      "Author": "Dave <dave@corp.io>",
   }
   ...
]

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>

Closes: #602
Approved by: mheon
2018-04-10 14:05:25 +00:00
baude
1700f2b238 Use buildah commit for podman commit
Resolves: #586 and #520
Signed-off-by: baude <bbaude@redhat.com>

Closes: #592
Approved by: mheon
2018-04-10 13:31:59 +00:00
umohnani8
998fd2ece0 Functionality changes to the following flags
--group-add
	--blkio-weight-device
	--device-read-bps
	--device-write-bps
	--device-read-iops
	--device-write-iops

--group-add now supports group names as well as the gid associated with them.
All the --device flags work now with moderate changes to the code to support both
bps and iops.
Added tests for all the flags.

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #590
Approved by: mheon
2018-04-06 00:09:46 +00:00
TomSweeneyRedHat
54bd0ae716 Remove image via storage if a buildah container is associated
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

Closes: #522
Approved by: mheon
2018-04-05 15:44:11 +00:00
Daniel J Walsh
fdcf633a33 Add hooks support to podman
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #155
Approved by: mheon
2018-04-05 14:13:49 +00:00
baude
ca3b241451 Run images with no names
When an image name has no reponames, you should still be able to run it
by ID.  When doing so, imageName needs to be set to "" so we don't hit an index
out of range error

Resolves: #587

Signed-off-by: baude <bbaude@redhat.com>

Closes: #593
Approved by: mheon
2018-04-04 17:51:33 +00:00
baude
35a10c9ba5 Only allocate tty when -t
In our ezrly development, we always allocated a tty when not -d.  Now we should only allocated when the user asks for it.

Resolves: #573

Signed-off-by: baude <bbaude@redhat.com>

Closes: #574
Approved by: rhatdan
2018-04-03 22:23:23 +00:00
baude
b1a8d769b8 Stopping a stopped container should not be an error
Resolves: #575

Signed-off-by: baude <bbaude@redhat.com>

Closes: #588
Approved by: mheon
2018-04-03 18:37:41 +00:00
baude
6fab1c1b78 --entrypoint= should delete existing entrypoint
Resolves: #572

Signed-off-by: baude <bbaude@redhat.com>

Closes: #585
Approved by: mheon
2018-04-03 15:19:30 +00:00
Matthew Heon
f64c1f106c Remove explicit Init() calls in run and start
We no longer require an explicit Init() to start a container, as
Start() will now call Init() if the container is not initialized.
Remove explicit Init() invocations from run and start to help
with dependency ordering - less time for a dependency to go down
before we start.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #577
Approved by: rhatdan
2018-04-03 14:57:16 +00:00
umohnani8
8a96b4acbc Add secrets patch to podman
Adds support for mounting secrets especially on RHEL where the container
can use the host subsription to run yum

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #544
Approved by: rhatdan
2018-03-29 14:15:27 +00:00
Giuseppe Scrivano
f936b745b6 podman: new option --conmon-pidfile=
so that it is possible to use systemd to automatically restart the
container:

[Service]
Type=forking
PIDFile=/run/awesome-service.pid
ExecStart=/usr/bin/podman run --conmon-pidfile=/run/awesome-service.pid --name awesome -d IMAGE /usr/bin/do-something
ExecStopPost=/usr/bin/podman rm awesome
Restart=always

Closes: https://github.com/projectatomic/libpod/issues/534

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #549
Approved by: rhatdan
2018-03-29 01:34:41 +00:00
baude
9aba605dde Remove dependency on kubernetes
podman parse and attach were using a very small portion of the kubernetes code
but using it caused a signficant increase in binary size.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #559
Approved by: rhatdan
2018-03-27 21:55:33 +00:00
Daniel J Walsh
af64e10400 Vendor in lots of kubernetes stuff to shrink image size
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #554
Approved by: mheon
2018-03-27 18:09:12 +00:00
baude
304bf53c28 cmd/podman/run.go: Error nicely when no image found
When no image is found, display a useful error message. Also, in imageToRef
protect against a nil image being passed.

Resolves: #553

Signed-off-by: baude <bbaude@redhat.com>

Closes: #555
Approved by: mheon
2018-03-27 00:17:55 +00:00