Commit graph

2282 commits

Author SHA1 Message Date
Daniel J Walsh
34c3829282
Merge pull request #1430 from mrunalp/network_stop_master
sandbox_stop: Call CNI stop before stopping pod infra container
2018-03-08 12:34:42 +00:00
Daniel J Walsh
78dd9735d0
Merge pull request #1423 from mheon/update_cni_versions
Update CNI config versions to 0.3.0
2018-03-08 08:50:26 +00:00
Daniel J Walsh
acfc59e102
Merge pull request #1410 from vbatts/platform-007
lib: libcontainer references are linux only
2018-03-08 08:49:44 +00:00
Mrunal Patel
b487411b65 sandbox_stop: Call CNI stop before stopping pod infra container
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2018-03-07 15:27:11 -08:00
Daniel J Walsh
e8c108d415
Merge pull request #1300 from rhatdan/listen_pid
Setup LISTEN_PID to point to new child process
2018-03-07 22:07:15 +00:00
Daniel J Walsh
2bac4d8a47 Setup LISTEN_PID to point to new child process
In order to get systemd socket passing to work properly
the listen PID needs to match the process ID of the OCI runtime.
This match modifies the LISTEN_PID if it is set to the new runtime.

conmon will check that the LISTEN_PID the pid that conmon is running as and
will ignore it if they are different.  But, if the caller specifies the
--replace-listen-pid flag, then the LISTEN_PID/LISTEN_FDS will always be used.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-03-07 22:06:57 +00:00
Daniel J Walsh
c189b8d147
Merge pull request #1409 from giuseppe/conmon-catch-signals
conmon: catch SIGTERM, SIGINT and SIGQUIT
2018-03-07 21:28:35 +00:00
Daniel J Walsh
986face946
Merge pull request #1368 from wking/conmon-Xf-variadic-macros
conmon: Distinguish pexit(s) from pexitf(fmt, ...) and similar
2018-03-07 21:27:14 +00:00
ef6aa87c75
lib: libcontainer references are linux only
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2018-03-07 10:36:07 -05:00
Daniel J Walsh
cdc468afa8
Merge pull request #1421 from vbatts/vendor_update_runtime-tools
vendor: update runtime-tools to HEAD
2018-03-07 07:20:09 +00:00
Giuseppe Scrivano
7036d1c0c2
conmon: catch SIGTERM, SIGINT and SIQUIT
and forward them to the watched process.  A side effect is that we can
correctly invoke the exit command if conmon receives them.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-03-07 07:27:09 +01:00
Matthew Heon
f31726b610 Update CNI config versions to 0.3.0
We've been seeing conflicts with other CNI consumers where
CRI-O's configuration files are causing the CNI plugins to fail
to start because their versions are too low. Upgrading the plugin
versions should resolve this conflict, and not cause any adverse
effect to a typical CRI-O install.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-03-06 14:13:06 -05:00
a39495dc4b
vendor: update runtime-tools to HEAD
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2018-03-06 13:19:38 -05:00
Mrunal Patel
0e0c820f0c
Merge pull request #1417 from redbaron/use-getref
small refactor: use imageService.getRef wherever possible
2018-03-05 15:10:23 -08:00
Daniel J Walsh
9f37d3322f
Merge pull request #1416 from kragniz/src-name
Support src directory name other than cri-o
2018-03-05 16:53:57 -05:00
Mrunal Patel
01b118116d
Merge pull request #835 from aweiteka/vagrant
add dev vagrantfile
2018-03-04 10:08:54 -08:00
Daniel J Walsh
5ff4fdbe0e
Merge pull request #1412 from agonzalezro/remove-travis-steps
Remove unneeded/repeated Travis steps
2018-03-04 10:57:24 -05:00
Daniel J Walsh
b212244889
Merge pull request #1383 from vbatts/platform-002
lib: abstract out selinux call
2018-03-04 10:55:07 -05:00
Maxim Ivanov
8621fd907a small refactor: use imageService.getRef wherever possible
Signed-off-by: Maxim Ivanov <ivanov.maxim@gmail.com>
2018-03-04 09:55:55 +00:00
Louis Taylor
8c3e82e91d
Support src directory name other than cri-o
Signed-off-by: Louis Taylor <louis@kragniz.eu>
2018-03-04 02:16:18 +00:00
W. Trevor King
f3c9a6c4ab cmsg: Use do/while for error and errorf
Avoid:

  $ make clean && make CFLAGS='-Wpedantic' cmsg.o 2>&1 | head -n5
  rm -f conmon.o cmsg.o ../bin/conmon
  cc -Wpedantic -std=c99 -Os -Wall -Wextra -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -c -o cmsg.o cmsg.c
  cmsg.c: In function ‘recvfd’:
  cmsg.c:30:2: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
    ({         \
    ^

Signed-off-by: W. Trevor King <wking@tremily.us>
2018-03-03 14:58:35 -08:00
W. Trevor King
9356aa9dd8 conmon/cmsg: Distinguish error(s) from errorf(fmt, ...) and replace %m
The same as the last two commits, except for cmsg.c instead of
conmon.c.

Signed-off-by: W. Trevor King <wking@tremily.us>
2018-03-03 14:58:35 -08:00
W. Trevor King
f67d6ed25c conmon: Use strerror(errno) instead of %m
Avoid:

  $ make clean && make CFLAGS=-Wpedantic 2>&1 | head -n5
  rm -f conmon.o cmsg.o ../bin/conmon
  cc -Wpedantic -std=c99 -Os -Wall -Wextra -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -c -o conmon.o conmon.c
  conmon.c: In function ‘write_k8s_log’:
  conmon.c:32:19: warning: ISO C does not support the ‘%m’ gnu_printf format [-Wformat=]
     fprintf(stderr, "[conmon:e]: %s %m\n", s);     \
                     ^

from printf(3) [1]:

  m (Glibc extension; supported by uClibc and musl.)  Print output of
    strerror(errno).  No argument is required.

strerror, on the other hand, is in POSIX [2].

[1]: http://man7.org/linux/man-pages/man3/printf.3.html
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/strerror.html

Signed-off-by: W. Trevor King <wking@tremily.us>
2018-03-03 14:58:35 -08:00
W. Trevor King
9583581280 conmon: Distinguish pexit(s) from pexitf(fmt, ...) and similar
Avoid:

  $ make clean && make CFLAGS=-Wpedantic 2>&1 | head -n 5
  rm -f conmon.o cmsg.o ../bin/conmon
  cc -Wpedantic -std=c99 -Os -Wall -Wextra -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -c -o conmon.o conmon.c
  conmon.c: In function ‘write_k8s_log’:
  conmon.c:342:33: warning: ISO C99 requires at least one argument for the "..." in a variadic macro
      ninfo("Creating new log file");
                                   ^

by distinguishing between calls with and without user-supplied
formatting.

Also remove some user-supplied newlines from the following

* nwarn for "Could not find newline in entire buffer"
* ninfo for "Got ctl message..."
* ninfo for "container %d exited with status..."
* nexitf for "Failed to write %s to exit file..."

because the macros add their own trailing newlines.

Also drop some redundant user-specified strerror() arguments from the
following:

* pexit for "Failed to open log file..."
* pexit for "Runtime path %s is not valid..."

because the pexit* macros add strerror on their own.

Signed-off-by: W. Trevor King <wking@tremily.us>
2018-03-03 14:58:35 -08:00
Daniel J Walsh
779e3501f3
Merge pull request #1122 from lsm5/debuginfo-puase
pause: do not strip binary
2018-03-03 10:25:03 -05:00
Daniel J Walsh
860fba80eb
Merge pull request #1401 from umohnani8/image
Fix create container failure due to wrong image reference
2018-03-03 10:18:09 -05:00
Daniel J Walsh
b9dc8e0a7c
Merge pull request #1404 from vbatts/vendor_update_runc
vendor: update runc to HEAD
2018-03-03 10:17:30 -05:00
Daniel J Walsh
8e744621ff
Merge pull request #1334 from sboeuf/ensure_ctr_stopped_2
crio: Ensure container state is stopped when calling StopContainer()
2018-03-03 10:16:16 -05:00
Sebastien Boeuf
1391c5c2fd crio: Ensure container state is stopped when calling StopContainer()
CRI-O works well with runc when stopping a container because as soon
as the container process returns, it can consider every container
resources such as its rootfs as being freed, and it can proceed
further by unmounting it.

But in case of virtualized runtime such as Clear Containers or Kata
Containers, the same rootfs is being mounted into the VM, usually as
a device being hotplugged. This means the runtime will need to be
triggered after the container process has returned. Particularly,
such runtimes should expect a call into "state" in order to realize
the container process is not running anymore, and it would trigger
the container to be officially stopped, proceeding to the necessary
unmounts.

The way this can be done from CRI-O, without impacting the case of
runc, is to explicitly wait for the container status to be updated
into "stopped" after the container process has returned. This way
CRI-O will call into "state" as long as it cannot see the container
status being updated properly, generating an error after a timeout.

Both PollUpdateStatusStopped() and WaitContainerStateStopped() make
use of go routines in order to support a timeout definition. They
follow the waitContainerStop() approach with chControl.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-03-02 14:55:29 -08:00
Daniel J Walsh
a5c3e05f9f
Merge pull request #1377 from mrunalp/sym_context_master
Add context to net ns symlink removal errors
2018-03-02 17:06:18 -05:00
Mrunal Patel
61a49a111d
Merge pull request #1392 from umohnani8/pid-ns
Enable per pod PID namespace setting
2018-03-02 13:33:14 -08:00
Álex González
3f2f3acf37 Remove unneeded/repeated Travis steps
Some steps are now being run with Go tip and not in all the different versions,
there were also moved to their own block so they will fail fast and in the mean
time the unit test for the different versions can start.

Also, "make docs" was removed because it's already being done by "make" without
any argument.

Fixes #1400.

Signed-off-by: Álex González <agonzalezro@gmail.com>
2018-03-02 22:02:32 +01:00
Daniel J Walsh
8e8224c5b6
Merge pull request #1406 from rhatdan/Makefile
Have make file create the oci/hooks.d directory
2018-03-02 13:56:58 -05:00
Daniel J Walsh
1d89b897f7
Merge pull request #1366 from giuseppe/conmon-additional-command-atexit
conmon: add new option to call cleanup program at exit
2018-03-02 13:23:52 -05:00
Mrunal Patel
ca1cd2b708
Merge pull request #1355 from wking/hook-docs-copy-edit
hooks: Copy-edits for the Markdown docs (RFC 2119, etc.)
2018-03-02 10:05:19 -08:00
Mrunal Patel
fe10bc81c6
Merge pull request #1403 from vbatts/vendor_update
vendor: _actually_ update containers/storage?
2018-03-02 10:04:20 -08:00
Mrunal Patel
66d3ab890f
Merge pull request #1405 from runcom/closed-channel
server: prevent double channel close
2018-03-02 09:44:56 -08:00
Daniel J Walsh
6f7e0e837a Have make file create the oci/hooks.d directory
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-03-02 12:14:16 -05:00
umohnani8
156e21ddf9 Enable per pod PID namespace setting
If the pid namespace mode is set to POD, then the container's namespace
should be set to the namespace of the pod infra container.

Signed-off-by: umohnani8 <umohnani@redhat.com>
2018-03-02 12:04:02 -05:00
033424e839
vendor: update runc to HEAD
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2018-03-02 11:22:05 -05:00
umohnani8
e35204c5e0 Fix create container failure due to wrong image reference
When the image name is resolved with the registries from crio.conf only
the resolved name with the first registry is passed to create_container
eventhough there are more registries in the crio.conf file.
Fix this to try the resolved image names with all the registries given in the conf file.

Signed-off-by: umohnani8 <umohnani@redhat.com>
2018-03-02 11:13:51 -05:00
umohnani8
e5fdb6bc9e Vendor in latest k8s.io changes
These changes allow for the container's pid namespace to be set to the same
as the pod infra container's namespace if the pid namespace mode is set to POD

Signed-off-by: umohnani8 <umohnani@redhat.com>
2018-03-02 09:31:34 -05:00
Antonio Murdaca
1b86b57b07
server: prevent double channel close
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2018-03-02 13:43:09 +01:00
4a65baf87b
vendor: _actually_ update containers/storage?
I obviously bungled my attempt in #1391 so this is fixing that.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2018-03-01 16:40:22 -05:00
Daniel J Walsh
0b736bb43f
Merge pull request #1365 from giuseppe/log-file-always-present
conmon: open+rename the log file instead of unlink+open
2018-03-01 12:50:22 -08:00
Aaron Weitekamp
c41aa4febe add dev vagrantfile
Signed-off-by: Aaron Weitekamp <aweiteka@redhat.com>
2018-03-01 15:44:50 -05:00
Daniel J Walsh
3e328c50a6
Merge pull request #1384 from vbatts/platform-003
lib: abstract out sandbox for platforms
2018-03-01 12:42:34 -08:00
Daniel J Walsh
0a1ae89ba6
Merge pull request #1345 from runcom/fsnotify-hooks
Fsnotify hooks
2018-03-01 12:18:00 -08:00
W. Trevor King
0b08c8437c hooks: Example copy-edits (backticks, etc.)
Also move the English before the example, because folks reading this
documentation already speak English and are just learning the JSON
structure.

The 'console' syntax highlighting is because GitHub uses Linguist [1],
and Linguist recognizes 'console' as an alias for ShellSession [2].
I've chosen 'console' because it's shorter than 'ShellSession' and not
interpreter-specific like 'bash session'.

Dan requested the 'Kpod' -> 'podman' change [3].

[1]: https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
[2]: https://github.com/github/linguist/blob/v6.0.1/lib/linguist/languages.yml#L4289-L4300
[3]: https://github.com/kubernetes-incubator/cri-o/pull/1355#pullrequestreview-98250057

Signed-off-by: W. Trevor King <wking@tremily.us>
2018-03-01 09:14:28 -08:00
Daniel J Walsh
cefb7f8b9e
Merge pull request #1395 from rhatdan/podman
Change all references from kpod to podman
2018-03-01 06:42:47 -08:00