Commit Graph

4116 Commits

Author SHA1 Message Date
Michael Crosby
4f644dbfd5 Copy io into and out of console
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-22 14:04:17 -04:00
Michael Crosby
07e2b63d69 Send stderr on windows Terminal
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-22 13:34:08 -04:00
Michael Crosby
d6cd1e5379 Update console dep to c12b1e7919c14469339a5d38f2f8
This fixes interactive consoles in windows

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-22 13:33:01 -04:00
Phil Estes
53a8c946f5
Merge pull request #2538 from jterry75/runtime_v2_windows
Introduce containerd-shim-runhcs-v1 on Windows
2018-08-22 12:35:09 -04:00
Justin Terry (VM)
019b0c34de Introduce containerd-shim-runhcs-v1 on Windows
Implements the containerd-shim-runhcs-v1 shim on Windows for the runtime
v2 shim API.

Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>
2018-08-22 08:15:43 -07:00
Akihiro Suda
1a96db4a2c
Merge pull request #2559 from crosbymichael/exp-content
Export content service New
2018-08-22 23:52:56 +09:00
Michael Crosby
e5115c3919 Export content service New
Closes #2441

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-21 15:38:51 -04:00
kadisi
7dae56671d set args value of process if args is nil
Signed-off-by: kadisi <iamkadisi@163.com>
2018-08-21 09:44:50 +08:00
Derek McGowan
3f42445e38
Merge pull request #2557 from jhowardmsft/jjh/revendor
Revendor Microsoft/hcsshim and go-winio
2018-08-20 13:09:54 -07:00
John Howard
2c4b7f6bd1 Fixup archive/tar_windows.go type
Signed-off-by: John Howard <jhoward@microsoft.com>
2018-08-20 12:02:04 -07:00
John Howard
8fe92ea5f3 Revendor Microsoft/hcsshim and go-winio
Signed-off-by: John Howard <john.howard@microsoft.com>
2018-08-20 11:31:28 -07:00
Michael Crosby
5d8ed81e60
Merge pull request #2555 from dmcgowan/update-runc-vendor
Update runc vendor
2018-08-20 09:59:25 -04:00
Derek McGowan
4ac20b5b9f
Merge pull request #2553 from crosbymichael/release-notes
Add release notes for v2 runtime and opts
2018-08-17 13:27:07 -07:00
Derek McGowan
ddc53c9cd2
Update runc vendor
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2018-08-17 13:22:56 -07:00
Phil Estes
a1affdb4ff
Merge pull request #2554 from crosbymichael/timeout
Add WithTimeout as client Opt
2018-08-16 16:39:46 -04:00
Michael Crosby
97e73c9348 Add WithTime as client Opt
This also sets the default timeout to 10s instead of 60s.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-16 14:57:19 -04:00
Michael Crosby
7ec974458e Add release notes for v2 runtime and opts
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-16 14:25:14 -04:00
Derek McGowan
6f13ff3ea4
Merge pull request #2550 from dmcgowan/release-1.2.0-beta.0
Add first v1.2.0 beta release notes
2018-08-16 00:57:40 -07:00
Derek McGowan
5ab50846c0
Add v1.2.0 beta 0 release notes
Update version and add release notes

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2018-08-15 12:02:17 -07:00
Derek McGowan
0ffb948270
Merge pull request #2549 from crosbymichael/default-devices
Add opt for default unix device permissions
2018-08-15 11:57:38 -07:00
Michael Crosby
b67ea850af Add opt for default unix device permissions
These opts either inherit the parent cgroup device.list or append the
default unix devices like /dev/null /dev/random so that the container
has access.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-15 11:52:43 -04:00
Phil Estes
a69a0b0192
Merge pull request #2548 from ijc/platforms-must-parse
platforms: Add `MustParse`
2018-08-15 10:17:41 -04:00
Ian Campbell
c83f9773bc platforms: Add MustParse
This function is analogous to `regexp.MustCompile` and can simplify production
of a `Platform` from a hard-coded strings, e.g. for global variable
initialisation.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2018-08-15 11:30:46 +01:00
Derek McGowan
037fc5ed86
Merge pull request #2542 from crosbymichael/fetch-config
Move content.Fetch configuration to struct
2018-08-09 16:49:18 -07:00
Derek McGowan
0aedde55f1
Merge pull request #2543 from Random-Liu/update-cri-v1.11.1
Update cri to v1.11.1.
2018-08-09 16:43:46 -07:00
Lantao Liu
e9ad2d0481 Update cri to v1.11.1.
Signed-off-by: Lantao Liu <lantaol@google.com>
2018-08-09 18:59:41 +00:00
Phil Estes
65839a47a8
Merge pull request #2537 from crosbymichael/mutable
Image and snapshot key are mutable
2018-08-09 11:21:47 -04:00
Michael Crosby
9a4c61ccb5
Merge pull request #2502 from fuweid/bugfix_support_more_overlayfs_layers
support more overlayfs layers
2018-08-09 10:31:06 -04:00
Michael Crosby
3be457d7d6 Move content.Fetch configuration to struct
This makes it easier for callers to call this function and populate the
config without relying on specific flags across commands.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-09 10:26:31 -04:00
Michael Crosby
b9eeaa1ce8
Merge pull request #2536 from jterry75/fix_log_pipe_windows
switch shim log Windows client/server direction
2018-08-08 17:10:04 -04:00
Justin Terry (VM)
8362d9aa48 switch shim log Windows client/server direction
Switches the client/server direction of the shim-log pipe on Windows so
that the shim is the listener. This allows the containerd client to
reconnect as needed to the log streams.

Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>
2018-08-08 12:58:45 -07:00
Michael Crosby
cc6d261e1a Image and snapshot key are mutable
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-08 15:55:30 -04:00
Michael Crosby
2c85ae2828
Merge pull request #2535 from ijc/WithUserID-docs
oci: Update docs for `oci.WithUserID`
2018-08-08 11:09:52 -04:00
Phil Estes
e8c80f37e2
Merge pull request #2530 from dmcgowan/update-release-tool
Update release tool
2018-08-08 10:35:24 -04:00
Ian Campbell
4a74731cd0 oci: Update docs for oci.WithUserID
The behaviour was changed in 99df1a9e11 ("Set gid 0 when no group is
specified"), part of #2529.

Take the opportunity to tighten up the grammar a bit too.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2018-08-08 15:32:59 +01:00
Phil Estes
97473edb99
Merge pull request #2534 from cyphar/manpage-rename
docs: man: rename config.toml(5) to be more descriptive
2018-08-08 10:26:25 -04:00
Aleksa Sarai
7aa132ffc7
docs: man: rename config.toml(5) to be more descriptive
The man page namespace is global, so in order to avoid colliding with
other man pages named "config.toml" rename ours to be more descriptive.
This also helps with discoverability (now tab-completion of 'man
containerd<tab>' will return the config man page), as well as making it
much cleaner from the perspective of distributions that want to package
containerd.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2018-08-08 18:33:29 +10:00
Derek McGowan
1ba4aa04b4
Merge pull request #2528 from crosbymichael/shim-debug
Add shim log pipe for log forwarding to the daemon
2018-08-07 14:14:01 -07:00
Michael Crosby
6ba4ddfdda Add shim log pipe for log forwarding to the daemon
A fifo on unix or named pipe on Windows will be provided to the shim.
It can be located inside the `cwd` of the shim named "log".
The shims can use the existing `github.com/containerd/containerd/log` package to log debug messages.
Messages will automatically be output in the containerd's daemon logs with the correct fiels and runtime set.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-07 15:31:00 -04:00
Wei Fu
67b54c6670 Support >= 128 layers in overlayfs snapshots
Auto-detect longest common dir in lowerdir option and compact it if the
option size is hitting one page size. If does, Use chdir + CLONE to do
mount thing to avoid hitting one page argument buffer in linux kernel
mount.

Signed-off-by: Wei Fu <fhfuwei@163.com>
2018-08-07 10:59:36 +08:00
Derek McGowan
aeb322d87d
Update release tool
Allow inclusion of sub-project changes
Order contributors by number of contributions
Add mailmap

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2018-08-06 17:51:10 -07:00
Phil Estes
4fb92300fe
Merge pull request #2526 from crosbymichael/managed-opt
Add docs for managed opts dir
2018-08-06 17:46:57 -04:00
Phil Estes
6bf15fa867
Merge pull request #2529 from crosbymichael/missing-gids
Set gid 0 when no group is specified
2018-08-06 17:45:42 -04:00
Michael Crosby
99df1a9e11 Set gid 0 when no group is specified
This change is to match Docker's implementaion of setting gid and groups
to 0 when no gid is specified but an explicit uid is set.

Fixes #2527

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-06 15:08:59 -04:00
Derek McGowan
dd97a11b6f
Merge pull request #2523 from jterry75/windows_v2_tasks_service
Refactors the TasksService requires per platform
2018-08-06 10:33:46 -07:00
Michael Crosby
2742238909 Add docs for managed opts dir
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-03 11:50:02 -04:00
Phil Estes
2783a19b10
Merge pull request #2518 from crosbymichael/install
Add install support for binary images
2018-08-03 08:45:02 -04:00
Akihiro Suda
74b036491a
Merge pull request #2524 from samuelkarp/time.Hour
replace 3600 seconds with 1 hour
2018-08-03 12:41:20 +09:00
Michael Crosby
5a47c5ec1d Add lib support as an option
Some images like `criu` will have extra libs that it requires.  This
adds lib support via LD_LIBRARY_PATH and InstallOpts

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-02 17:11:29 -04:00
Evan Hazlett
1537f31381 Add install support for binary images
This adds a way for users to programatically install containerd binary
dependencies.

With runtime v2 and new shim's being built, it will be a challenge to
get those onto machines.  Users would have to find the link, download,
place it in their path, yada yada yada.

With this functionality of a managed `/opt` directory, containerd can
use existing image and distribution infra. to get binarys, shims, etc
onto the system.

Configuration:

*default:* `/opt/containerd`

*containerd config:*
```toml
[plugins.opt]
	path = "/opt/mypath"

```

Usage:

*code:*

```go
image, err := client.Pull(ctx, "docker.io/crosbymichael/runc:latest")
client.Install(ctx, image)
```

*ctr:*

```bash
ctr content fetch docker.io/crosbymichael/runc:latest
ctr install docker.io/crosbymichael/runc:latest
```

You can manage versions and see what is running via standard image
commands.

Images:

These images MUST be small and only contain binaries.

```Dockerfile
FROM scratch
Add runc /bin/runc
```

Containerd will only extract files in `/bin` of the image.

Later on, we can add support for `/lib`.

The code adds a service to manage an `/opt/containerd` directory and
provide that path to callers via the introspection service.

How to Test:

Delete runc from your system.

```bash
> sudo ctr run --rm  docker.io/library/redis:alpine redis
ctr: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v1.linux/default/redis/log.json: no such file or directory): exec: "runc": executable file not found in $PATH: unknown

> sudo ctr content fetch docker.io/crosbymichael/runc:latest
> sudo ctr  install docker.io/crosbymichael/runc:latest

> sudo ctr run --rm  docker.io/library/redis:alpine redis
1:C 01 Aug 15:59:52.864 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 01 Aug 15:59:52.864 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 01 Aug 15:59:52.864 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 01 Aug 15:59:52.866 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
1:M 01 Aug 15:59:52.866 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
1:M 01 Aug 15:59:52.866 # Current maximum open files is 1024. maxclients has been reduced to 992 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
1:M 01 Aug 15:59:52.870 * Running mode=standalone, port=6379.
1:M 01 Aug 15:59:52.870 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 01 Aug 15:59:52.870 # Server initialized
1:M 01 Aug 15:59:52.870 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 01 Aug 15:59:52.870 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
1:M 01 Aug 15:59:52.870 * Ready to accept connections
^C1:signal-handler (1533139193) Received SIGINT scheduling shutdown...
1:M 01 Aug 15:59:53.472 # User requested shutdown...
1:M 01 Aug 15:59:53.472 * Saving the final RDB snapshot before exiting.
1:M 01 Aug 15:59:53.484 * DB saved on disk
1:M 01 Aug 15:59:53.484 # Redis is now ready to exit, bye bye...
```

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-08-02 17:11:29 -04:00