Commit Graph

1583 Commits

Author SHA1 Message Date
Daniel J Walsh de3468e120 CleanUp problems found my make lint.
Remove or comment out unused functions.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #145
Approved by: umohnani8
2017-12-18 16:46:05 +00:00
baude b4384f9b3a Remove debugu from images
Signed-off-by: baude <bbaude@redhat.com>

Closes: #141
Approved by: baude
2017-12-15 16:56:54 +00:00
Matthew Heon 1f0f7f3e7d Ensure libkpod.Config defaults don't override libpod defaults
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #109
Approved by: mheon
2017-12-14 23:59:22 +00:00
Matthew Heon e40512cbaa Temporarily unconditionally configure network namespaces
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #109
Approved by: mheon
2017-12-14 23:59:21 +00:00
Matthew Heon 72e8efccc9 Fix Travis tests
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #109
Approved by: mheon
2017-12-14 23:59:21 +00:00
Matthew Heon fcf52249b8 Wire networking into kpod create/run
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #109
Approved by: mheon
2017-12-14 23:59:21 +00:00
baude 3ba2c3e117 kpod top
Display information about processes in a running container.

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

Closes: #121
Approved by: rhatdan
2017-12-14 22:22:56 +00:00
umohnani8 d2ab53aa5f Add support for dir transport to kpod save
kpod save can now save images to directories using the
dir transport. Manifest conversion is also possible.
To save with the oci manifest type set --format to oci-dir
and to save with the v2s2(docker) manifest type, set --format
to docker-dir.
The layers can be compressed as well when saving to a directory
using the --compress flag.
Added functionality to kpod load to be able to load image from
a directory

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

Closes: #137
Approved by: rhatdan
2017-12-14 22:22:16 +00:00
umohnani8 1e7d880b56 Add manifest type conversion to kpod push
User can select from 3 manifest types: oci, v2s1, or v2s2
e.g kpod push --format v2s2 alpine dir:my-directory
Added "compress" flag to enable compression when true

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

Closes: #126
Approved by: rhatdan
2017-12-14 18:37:17 +00:00
umohnani8 d8f099bb5a Check for mutually exclusive flags
Error out if more than one mutually exclusive flags are passed
in to kpod ps

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

Closes: #128
Approved by: rhatdan
2017-12-14 14:14:34 +00:00
umohnani8 05f4dd9f41 Clear up fragments of the old api
As everything is being moved over to the new container api
removing files that depended on the old api

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

Closes: #116
Approved by: rhatdan
2017-12-14 13:56:20 +00:00
umohnani8 900afc929f Handle artifacts not found more gracefully
If the artifacts file "create-config" is not found
when doing kpod inspect, just print the error and
move on to print out the rest of the inspect info

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

Closes: #134
Approved by: mheon
2017-12-14 01:29:48 +00:00
umohnani8 5330d3da7c Update kpod info to use new libpod api
Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #124
Approved by: mheon
2017-12-14 00:54:21 +00:00
baude 9cc0c8ae14 kpod stats
Move kpod stats to the libpod backend.

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

Closes: #113
Approved by: baude
2017-12-13 21:15:09 +00:00
Matthew Heon e456c07813
Merge pull request #106 from umohnani8/kpod_inspect
Update kpod inspect to use the new container state
2017-12-13 09:36:14 -05:00
umohnani8 cfb4e15e43 \t was not being recognized as tab in --format
When doing kpod images --format "{{.ID}}\t{{.Tag}}"
the "\t" was being passed in as a string of "\" and "t"
instead of as a tab character.

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

Closes: #123
Approved by: rhatdan
2017-12-12 21:53:53 +00:00
umohnani8 74ee579375 Update kpod inspect to use the new container state
kpod inspect now uses the new libpod container state
and closely matches the output of docker inspect
some aspects of it are still WIP as the libpod container state
is still being worked on

Signed-off-by: umohnani8 <umohnani@redhat.com>
2017-12-12 09:46:23 -05:00
Daniel J Walsh 88121e0747 We don't support VolumesFrom or links
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #118
Approved by: mheon
2017-12-12 14:24:13 +00:00
Suraj Deshmukh e64da85ccb Use debugf to allow parsing of format specifier
Signed-off-by: Suraj Deshmukh <surajd.service@gmail.com>
2017-12-12 00:13:44 +05:30
umohnani8 622d5e3b9a Fix misleading print statement in kpod load
When loading an image, kpod load would print something like
"Trying to pull docker.io/library/alpine...", which is misleading
and makes it sound like its pulling it form the registry.
Fixed this by removing these print statements for kpod load

Signed-off-by: umohnani8 <umohnani@redhat.com>
2017-12-11 12:07:54 -05:00
baude e8a32e3722 kpod exec
Initial wiring of kpod exec. We wont support the following options
for exec:

* detach -- unsure of use case
* detach-keys -- not supported by runc
* interactive -- all terminals will be interactive

Not adding exec tests as we need to think about how to support a
test that requires console access but our CI tests have no console.

Signed-off-by: baude <bbaude@redhat.com>
2017-12-11 08:24:30 -06:00
Daniel J Walsh 4d02d99c27 Fix reference to libkpod to libpod
ps.go no longer uses libkpod

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #104
Approved by: mheon
2017-12-05 14:54:30 +00:00
umohnani8 34696c55e9 Add Linux Root Propagation to kpod create and run
Add [r]shared, [r]private, [r]slave functionality to the --volume flag
for kpod create and kpod run
This sets the root propagation for each bind mount

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

Closes: #87
Approved by: rhatdan
2017-12-05 10:23:13 +00:00
baude c5c7341d4b Prune kpod ps
Prune libkpod from kpod ps.  Remove unused functions.

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

Closes: #102
Approved by: rhatdan
2017-12-05 10:20:09 +00:00
Matthew Heon 9147a56a01 Remove kpod rename
Libpod containers are immutable once created. They cannot be
renamed after created. As such remove kpod rename.

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

Closes: #101
Approved by: baude
2017-12-04 23:48:22 +00:00
baude 3db735c6d1 Short options!
Any subcommand that has two or more booleon short options can
now combine those two options.  For example:

kpod rmi -af (Remove all images forceably)

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

Closes: #100
Approved by: rhatdan
2017-12-04 20:03:16 +00:00
Daniel J Walsh 95cb7a11f1 kpod create should not do an OCI Init
We need to differentiate between a kpod create and a kpod start
kpod create should create all of the data for libpod, but kpod start should
generate content for OCI Runtime (runc) in order to run.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #96
Approved by: mheon
2017-12-04 17:35:14 +00:00
baude 5c9694a0c1 kpod attach
Attach to a running container

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

Closes: #95
Approved by: rhatdan
2017-12-04 17:00:48 +00:00
Daniel J Walsh adf8809521 Add NetMode, UTSMode and IPCMode
Allow kpod create/run to create contianers in different network namespaces, uts namespaces and
IPC Namespaces.

This patch just handles the simple join the host, or another containers namespaces.

Lots more work needed to full integrate  --net

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #64
Approved by: mheon
2017-12-02 15:32:56 +00:00
baude 1f01faf437 kpod stop -a
Stop all running containers with single switch.  Useful for
maintainence of a system or integration tests.

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

Closes: #90
Approved by: rhatdan
2017-12-01 13:18:32 +00:00
baude 742475885e kpod_start
Starts one or more containers.

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

Closes: #83
Approved by: rhatdan
2017-11-29 22:01:47 +00:00
umohnani8 ad255533d4 Fix --volume flag for kpod create and run
Enable the --volume flag to validate user input
and add functionality for :z and :Z options

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

Closes: #84
Approved by: mheon
2017-11-29 21:40:12 +00:00
Matthew Heon 831e2c30d4 Add ability to kill and stop containers
Also migrates kpod kill and kpod stop to libpod to use the new code

Fixes force removing containers, and actually deletes containers in runc when
removing them

Start is now capable of starting even when the container is unmounted

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

Closes: #68
Approved by: rhatdan
2017-11-29 12:15:15 +00:00
umohnani8 a1d0d9f5d1 Update man pages and output for kpod images
The size had a precision of 4, but wanted a precision of 3
to match the output of docker images
updated the man page with more examples
vendored in new version of docker/go-units to allow
for customized precisions

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

Closes: #82
Approved by: rhatdan
2017-11-28 16:09:13 +00:00
Daniel J Walsh ab62fe17ff Implement kpod --rm code
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #81
Approved by: baude
2017-11-28 15:01:20 +00:00
baude 342ce4db50 kpod ps
Wire up kpod ps with the new libpod container backend.

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

Closes: #67
Approved by: rhatdan
2017-11-28 14:47:35 +00:00
Suraj Deshmukh 7eb4772694 remove unused functions and variables
Signed-off-by: Suraj Deshmukh <surajd.service@gmail.com>

Closes: #71
Approved by: rhatdan
2017-11-28 14:30:12 +00:00
Daniel J Walsh da44ec438d
Merge pull request #80 from umohnani8/kpod_images
Fix output of kpod images
2017-11-27 17:11:50 -05:00
Daniel J Walsh 55167ef982
Merge pull request #79 from mheon/fix_create
Make 'kpod create' also create the container in runc
2017-11-27 17:11:22 -05:00
umohnani8 c5b09d0a35 Fix output of kpod images
Update the output of kpod images to match that of docker images

Signed-off-by: umohnani8 <umohnani@redhat.com>
2017-11-27 14:46:45 -05:00
Matthew Heon fbbf416233 Make 'kpod create' also create the container in runc
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2017-11-27 14:16:19 -05:00
baude 52ea0deee6 kpod_wait
Convert to libpod container backend

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

Closes: #70
Approved by: rhatdan
2017-11-27 19:05:59 +00:00
baude dd88ce005f kpod_rm: Add option for --all
Remove all containers with -a, --all.

Enable kpod rm tests which were all set to skip. Add two
tests for -a

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

Closes: #74
Approved by: rhatdan
2017-11-27 16:46:06 +00:00
baude 61e0ab4f47 Create|Run container from Image ID
As reported in Issue #50, we need to be able to run
or create a container based on an image ID (as well
as name).

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

Closes: #76
Approved by: rhatdan
2017-11-27 16:41:08 +00:00
Daniel J Walsh 548f1516de kpod run, needs to shutdown the storage driver when done
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #73
Approved by: mheon
2017-11-27 14:22:47 +00:00
umohnani8 b1a3b03068 Update kpod pause and unpause to use new container state
Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #66
Approved by: mheon
2017-11-24 15:53:17 +00:00
Daniel J Walsh 195d48d86d Copy some verification code out of Docker to verify user input
Added lots of verification code to make sure resourses asociated with
containers is correct.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #60
Approved by: umohnani8
2017-11-22 20:53:15 +00:00
Urvashi Mohnani ee4051db61 Update kpod logs to use the new container state and runtime
Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>

Closes: #62
Approved by: rhatdan
2017-11-22 19:33:13 +00:00
umohnani8 40dce698d3 Update kpod mount and umount to use the new state
The new state for containers has been added
moved kpod mount and umount over to use it

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

Closes: #57
Approved by: rhatdan
2017-11-22 18:23:19 +00:00
Daniel J Walsh bd4e106de3 Add support for pid ns
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #54
Approved by: umohnani8
2017-11-22 16:46:53 +00:00
Urvashi Mohnani 2a3934f1da Update kpod export to use the new container state and runtime
Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>

Closes: #59
Approved by: rhatdan
2017-11-22 16:17:06 +00:00
Daniel J Walsh 91b406ea4a Need to block access to kernel file systems in /proc and /sys
Users of kpod run could use these file systems to perform a breakout
or to learn valuable system information.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #61
Approved by: mheon
2017-11-22 15:49:56 +00:00
Urvashi Mohnani 768fb6fe0f Update kpod rm to use new container state
kpod rm now uses the new container state and runtime

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

Closes: #58
Approved by: mheon
2017-11-21 22:03:13 +00:00
Daniel J Walsh c75c319ea2 Add support for oom functions
Add tests for oom-kill-disable and oom-kill-adj

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #52
Approved by: TomSweeneyRedHat
2017-11-21 15:33:16 +00:00
Daniel J Walsh b4bc7b8828 Add cgroup fs by default
Docker defaults to mounting the cgroup file system.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #53
Approved by: mheon
2017-11-20 22:47:58 +00:00
Daniel J Walsh 5d52f74d21 Add support for Ulimits/Rlimits to kpod create/run
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #24
Approved by: mheon
2017-11-20 20:12:43 +00:00
Daniel J Walsh 6e0944f2f1
Merge pull request #26 from mheon/sql_state
Implementation of SQL-backed state
2017-11-20 14:45:01 -05:00
Daniel J Walsh 57599f0075 Fix up handling of environment variables
The way docker works is if a user specifies a non `-e Name=Value`, IE
just a `-e Name`, then the environment variable Name from the clients
OS.ENV is used.

Also by default Docker containers run with the HOSTNAME environment set
to the HOSTNAME specified for the container.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #21
Approved by: baude
2017-11-20 16:25:31 +00:00
Matthew Heon 4bc3acc7aa Rename Create to Init for containers to be less confusing
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2017-11-18 12:58:48 -05:00
baude acd9c66864 Fix terminal attach
Re-order the startup of a new container via run from
initialize > start > attach to initialize > attach > start.

This fixes output when running:

kpod run -i -t IMAGE command

and

kpod run IMAGE command

Signed-off-by: baude <bbaude@redhat.com>
2017-11-15 16:27:57 -06:00
baude 5cfd7a313f Address run/create performance issues
Fixed the logic where we observed different performance
results when running an image by its fqname vs a shortname. In
the case of the latter, we resolve the name without using the
network.

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

Closes: #37
Approved by: rhatdan
2017-11-14 21:14:13 +00:00
baude 7df3221232 Remove all images
Add -a/--all to rmi so a user can remove
all images quickly.

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

Closes: #41
Approved by: mheon
2017-11-14 16:46:26 +00:00
baude 55c9cfb80e Add cpu-profiling to kpod
Add a global flag for cpu-profiling to allow us to
profile kpod for performance issues.

To parse its results, use:

go tool pprof --text <profile_path>

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

Closes: #36
Approved by: mheon
2017-11-09 17:36:11 +00:00
baude b8dca1874d Do not attempt to use command --args as cli flags
i.e. kpod run fedora python --version

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

Closes: #33
Approved by: rhatdan
2017-11-08 21:49:15 +00:00
Daniel J Walsh 84e3bdceda Fix panic when no image is given
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #31
Approved by: mheon
2017-11-08 21:18:08 +00:00
Urvashi Mohnani 23979f8e06 Add 'kpod import' command
Imports a tarball and saves it as a filesystem image

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

Closes: #12
Approved by: rhatdan
2017-11-07 19:16:31 +00:00
Daniel J Walsh 006a8bd6f3 Convert tmpfs mounts to use generate
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #19
Approved by: baude
2017-11-06 14:43:06 +00:00
Daniel J Walsh 402c30333f Remove defaults and use runtime-tools/generate for spec
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #19
Approved by: baude
2017-11-06 14:43:06 +00:00
Daniel J Walsh dbd524e3d1
Merge pull request #17 from rhatdan/caps
Add support for Caps Options.
2017-11-05 17:06:25 -05:00
baude 0026075d59 libpod/runtime_img_test.go Unit Tests
Unit tests for getRegistry related functions.

Signed-off-by: baude <bbaude@redhat.com>
2017-11-04 11:12:14 -05:00
Daniel J Walsh 619637a919 Handle Linux Capabilities from command line
Had to revendor in docker/docker again, which dropped a bunch of packages

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2017-11-04 09:07:47 +00:00
baude 69cecb049a spec_test.go: Unit tests for spec.go
Unit tests for spec.go which includes testing
parts of the oci spec.

Signed-off-by: baude <bbaude@redhat.com>
2017-11-03 20:37:41 -05:00
baude aa19565d8d spec.go: Remove cli context as func arg
Remove cli context as a func arg to make unit tests
easier.

Signed-off-by: baude <bbaude@redhat.com>
2017-11-03 20:37:33 -05:00
baude 99ca35f185 util_test.go: Unittests for util.go
Add unit tests for func StringInSlice.

Signed-off-by: baude <bbaude@redhat.com>
2017-11-03 20:37:27 -05:00
baude 46d762176e create_cli_test.go: Unittests
Create unittests for the create_cli helper functions. As
such, remove cli context usage from the functions to
further divide between cli input and parsing.  Also, simplifies
unit testing.

Signed-off-by: baude <bbaude@redhat.com>
2017-11-03 20:37:19 -05:00
Daniel J Walsh 098389dc3e Parse SecurityOpts
This should turn on handling of SELinux, NoNewPrivs, seccomp and Apparmor

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #15
Approved by: rhatdan
2017-11-03 20:55:10 +00:00
Daniel J Walsh 0847e770bb Fix lint error on spec being shadowed
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2017-11-02 16:29:34 -04:00
Daniel J Walsh 92818fdfb7 Fix gofmt errors
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2017-11-02 15:30:39 -04:00
Daniel J Walsh 83b55c4771 -mFix crioConfigPath
I don't believe this should be in here, but for now we need to make it not global
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2017-11-02 15:30:26 -04:00
baude 8cf07b2ad1 libpod create and run
patched version of the same code that went into crio

Signed-off-by: baude <bbaude@redhat.com>
2017-11-01 14:19:19 -05:00
Matthew Heon c13f61798a Prune Server package. Convert to new github location.
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2017-11-01 13:22:04 -04:00
Matthew Heon 637de4d0d3 Remove CRI-O binaries and makefile targets
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2017-11-01 11:51:10 -04:00
Matthew Heon a031b83a09 Initial checkin from CRI-O repo
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2017-11-01 11:24:59 -04:00