Browse code

Add `docker-` prefix to runc and containerd binaries

Signed-off-by: Tibor Vass <tibor@docker.com>

Tibor Vass authored on 2016/03/23 09:55:47
Showing 17 changed files
... ...
@@ -253,19 +253,23 @@ RUN set -x \
253 253
 ENV RUNC_COMMIT bbde9c426ff363d813b8722f0744115c13b408b6
254 254
 RUN set -x \
255 255
 	&& export GOPATH="$(mktemp -d)" \
256
-  && git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
256
+	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
257 257
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
258 258
 	&& git checkout -q "$RUNC_COMMIT" \
259
-	&& make BUILDTAGS="seccomp apparmor selinux" && make install
259
+	&& make static BUILDTAGS="seccomp apparmor selinux" \
260
+	&& cp runc /usr/local/bin/docker-runc
260 261
 
261 262
 # Install containerd
262
-ENV CONTAINERD_COMMIT 7146b01a3d7aaa146414cdfb0a6c96cfba5d9091
263
+ENV CONTAINERD_COMMIT 142e22a4dce86f3b8ce068a0b043489d21976bb8
263 264
 RUN set -x \
264 265
 	&& export GOPATH="$(mktemp -d)" \
265
-  && git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
266
+	&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
266 267
 	&& cd "$GOPATH/src/github.com/docker/containerd" \
267 268
 	&& git checkout -q "$CONTAINERD_COMMIT" \
268
-	&& make && make install
269
+	&& make static \
270
+	&& cp bin/containerd /usr/local/bin/docker-containerd \
271
+	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
272
+	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
269 273
 
270 274
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
271 275
 ENTRYPOINT ["hack/dind"]
... ...
@@ -190,19 +190,23 @@ RUN set -x \
190 190
 ENV RUNC_COMMIT bbde9c426ff363d813b8722f0744115c13b408b6
191 191
 RUN set -x \
192 192
 	&& export GOPATH="$(mktemp -d)" \
193
-  && git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
193
+	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
194 194
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
195 195
 	&& git checkout -q "$RUNC_COMMIT" \
196
-	&& make BUILDTAGS="seccomp apparmor selinux" && make install
196
+	&& make static BUILDTAGS="seccomp apparmor selinux" \
197
+	&& cp runc /usr/local/bin/docker-runc
197 198
 
198 199
 # Install containerd
199
-ENV CONTAINERD_COMMIT 7146b01a3d7aaa146414cdfb0a6c96cfba5d9091
200
+ENV CONTAINERD_COMMIT 142e22a4dce86f3b8ce068a0b043489d21976bb8
200 201
 RUN set -x \
201 202
 	&& export GOPATH="$(mktemp -d)" \
202
-  && git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
203
+	&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
203 204
 	&& cd "$GOPATH/src/github.com/docker/containerd" \
204 205
 	&& git checkout -q "$CONTAINERD_COMMIT" \
205
-	&& make && make install
206
+	&& make static \
207
+	&& cp bin/containerd /usr/local/bin/docker-containerd \
208
+	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
209
+	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
206 210
 
207 211
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
208 212
 ENTRYPOINT ["hack/dind"]
... ...
@@ -209,21 +209,24 @@ RUN set -x \
209 209
 ENV RUNC_COMMIT bbde9c426ff363d813b8722f0744115c13b408b6
210 210
 RUN set -x \
211 211
 	&& export GOPATH="$(mktemp -d)" \
212
-  && git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
212
+	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
213 213
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
214 214
 	&& git checkout -q "$RUNC_COMMIT" \
215
-	&& make BUILDTAGS="seccomp apparmor selinux" && make install
215
+	&& make static BUILDTAGS="seccomp apparmor selinux" \
216
+	&& cp runc /usr/local/bin/docker-runc
216 217
 
217 218
 # Install containerd
218
-ENV CONTAINERD_COMMIT 7146b01a3d7aaa146414cdfb0a6c96cfba5d9091
219
+ENV CONTAINERD_COMMIT 142e22a4dce86f3b8ce068a0b043489d21976bb8
219 220
 RUN set -x \
220 221
 	&& export GOPATH="$(mktemp -d)" \
221
-  && git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
222
+	&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
222 223
 	&& cd "$GOPATH/src/github.com/docker/containerd" \
223 224
 	&& git checkout -q "$CONTAINERD_COMMIT" \
224
-	&& make && make install
225
+	&& make static \
226
+	&& cp bin/containerd /usr/local/bin/docker-containerd \
227
+	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
228
+	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
225 229
 
226
-# Wrap all commands in the "docker-in-docker" script to allow nested containers
227 230
 ENTRYPOINT ["hack/dind"]
228 231
 
229 232
 # Upload docker source
... ...
@@ -77,19 +77,23 @@ ENV DOCKER_BUILDTAGS apparmor seccomp selinux
77 77
 ENV RUNC_COMMIT bbde9c426ff363d813b8722f0744115c13b408b6
78 78
 RUN set -x \
79 79
 	&& export GOPATH="$(mktemp -d)" \
80
-  && git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
80
+	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
81 81
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
82 82
 	&& git checkout -q "$RUNC_COMMIT" \
83
-	&& make BUILDTAGS="seccomp apparmor selinux" && make install
83
+	&& make static BUILDTAGS="seccomp apparmor selinux" \
84
+	&& cp runc /usr/local/bin/docker-runc
84 85
 
85 86
 # Install containerd
86
-ENV CONTAINERD_COMMIT 7146b01a3d7aaa146414cdfb0a6c96cfba5d9091
87
+ENV CONTAINERD_COMMIT 142e22a4dce86f3b8ce068a0b043489d21976bb8
87 88
 RUN set -x \
88 89
 	&& export GOPATH="$(mktemp -d)" \
89
-  && git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
90
+	&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
90 91
 	&& cd "$GOPATH/src/github.com/docker/containerd" \
91 92
 	&& git checkout -q "$CONTAINERD_COMMIT" \
92
-	&& make && make install
93
+	&& make static \
94
+	&& cp bin/containerd /usr/local/bin/docker-containerd \
95
+	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
96
+	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
93 97
 
94 98
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
95 99
 ENTRYPOINT ["hack/dind"]
... ...
@@ -201,19 +201,23 @@ RUN set -x \
201 201
 ENV RUNC_COMMIT bbde9c426ff363d813b8722f0744115c13b408b6
202 202
 RUN set -x \
203 203
 	&& export GOPATH="$(mktemp -d)" \
204
-  && git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
204
+	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
205 205
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
206 206
 	&& git checkout -q "$RUNC_COMMIT" \
207
-	&& make BUILDTAGS="seccomp apparmor selinux" && make install
207
+	&& make static BUILDTAGS="seccomp apparmor selinux" \
208
+	&& cp runc /usr/local/bin/docker-runc
208 209
 
209 210
 # Install containerd
210
-ENV CONTAINERD_COMMIT 7146b01a3d7aaa146414cdfb0a6c96cfba5d9091
211
+ENV CONTAINERD_COMMIT 142e22a4dce86f3b8ce068a0b043489d21976bb8
211 212
 RUN set -x \
212 213
 	&& export GOPATH="$(mktemp -d)" \
213
-  && git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
214
+	&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
214 215
 	&& cd "$GOPATH/src/github.com/docker/containerd" \
215 216
 	&& git checkout -q "$CONTAINERD_COMMIT" \
216
-	&& make && make install
217
+	&& make static \
218
+	&& cp bin/containerd /usr/local/bin/docker-containerd \
219
+	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
220
+	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
217 221
 
218 222
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
219 223
 ENTRYPOINT ["hack/dind"]
... ...
@@ -180,19 +180,23 @@ RUN set -x \
180 180
 ENV RUNC_COMMIT bbde9c426ff363d813b8722f0744115c13b408b6
181 181
 RUN set -x \
182 182
 	&& export GOPATH="$(mktemp -d)" \
183
-  && git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
183
+	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
184 184
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
185 185
 	&& git checkout -q "$RUNC_COMMIT" \
186
-	&& make BUILDTAGS="seccomp apparmor selinux" && make install
186
+	&& make static BUILDTAGS="seccomp apparmor selinux" \
187
+	&& cp runc /usr/local/bin/docker-runc
187 188
 
188 189
 # Install containerd
189
-ENV CONTAINERD_COMMIT 7146b01a3d7aaa146414cdfb0a6c96cfba5d9091
190
+ENV CONTAINERD_COMMIT 142e22a4dce86f3b8ce068a0b043489d21976bb8
190 191
 RUN set -x \
191 192
 	&& export GOPATH="$(mktemp -d)" \
192
-  && git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
193
+	&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
193 194
 	&& cd "$GOPATH/src/github.com/docker/containerd" \
194 195
 	&& git checkout -q "$CONTAINERD_COMMIT" \
195
-	&& make && make install
196
+	&& make static \
197
+	&& cp bin/containerd /usr/local/bin/docker-containerd \
198
+	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
199
+	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
196 200
 
197 201
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
198 202
 ENTRYPOINT ["hack/dind"]
... ...
@@ -33,19 +33,23 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
33 33
 ENV RUNC_COMMIT bbde9c426ff363d813b8722f0744115c13b408b6
34 34
 RUN set -x \
35 35
 	&& export GOPATH="$(mktemp -d)" \
36
-  && git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
36
+	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
37 37
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
38 38
 	&& git checkout -q "$RUNC_COMMIT" \
39
-	&& make BUILDTAGS="seccomp apparmor selinux" && make install
39
+	&& make static BUILDTAGS="seccomp apparmor selinux" \
40
+	&& cp runc /usr/local/bin/docker-runc
40 41
 
41 42
 # Install containerd
42
-ENV CONTAINERD_COMMIT 7146b01a3d7aaa146414cdfb0a6c96cfba5d9091
43
+ENV CONTAINERD_COMMIT 142e22a4dce86f3b8ce068a0b043489d21976bb8
43 44
 RUN set -x \
44 45
 	&& export GOPATH="$(mktemp -d)" \
45
-  && git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
46
+	&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
46 47
 	&& cd "$GOPATH/src/github.com/docker/containerd" \
47 48
 	&& git checkout -q "$CONTAINERD_COMMIT" \
48
-	&& make && make install
49
+	&& make static \
50
+	&& cp bin/containerd /usr/local/bin/docker-containerd \
51
+	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
52
+	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
49 53
 
50 54
 ENV AUTO_GOPATH 1
51 55
 WORKDIR /usr/src/docker
... ...
@@ -298,16 +298,12 @@ copy_containerd() {
298 298
         (set -x
299 299
         if [ -x /usr/local/bin/runc ]; then
300 300
             echo "Copying nested executables into $dir"
301
-            cp /usr/local/bin/runc "$dir/"
302
-            cp /usr/local/bin/ctr "$dir/"
303
-            cp /usr/local/bin/containerd "$dir/"
304
-            cp /usr/local/bin/containerd-shim "$dir/"
305
-            if [ "$2" == "hash" ]; then
306
-                hash_files "$dir/runc"
307
-                hash_files "$dir/ctr"
308
-                hash_files "$dir/containerd"
309
-                hash_files "$dir/containerd-shim"
310
-            fi
301
+	    for file in containerd containerd-shim containerd-ctr runc; do
302
+                cp "/usr/local/bin/docker-$file" "$dir/"
303
+                if [ "$2" == "hash" ]; then
304
+                    hash_files "$dir/docker-$file"
305
+		fi
306
+            done
311 307
         fi
312 308
         )
313 309
     fi
... ...
@@ -89,5 +89,5 @@ clone git google.golang.org/api dc6d2353af16e2a2b0ff6986af051d473a4ed468 https:/
89 89
 clone git google.golang.org/cloud dae7e3d993bc3812a2185af60552bb6b847e52a0 https://code.googlesource.com/gocloud
90 90
 
91 91
 # containerd
92
-clone git github.com/docker/containerd ab5eae56bf3a800e062c6d63fb94f766a732813f
92
+clone git github.com/docker/containerd 142e22a4dce86f3b8ce068a0b043489d21976bb8
93 93
 clean
... ...
@@ -142,7 +142,7 @@ func (d *Daemon) StartWithLogFile(out *os.File, providedArgs ...string) error {
142 142
 
143 143
 	args := append(d.GlobalFlags,
144 144
 		d.Command,
145
-		"--containerd", "/var/run/docker/libcontainerd/containerd.sock",
145
+		"--containerd", "/var/run/docker/libcontainerd/docker-containerd.sock",
146 146
 		"--graph", d.root,
147 147
 		"--pidfile", fmt.Sprintf("%s/docker.pid", d.folder),
148 148
 		fmt.Sprintf("--userland-proxy=%t", d.userlandProxy),
... ...
@@ -31,7 +31,7 @@ func (s *DockerDaemonSuite) TestDaemonRestartWithKilledRunningContainer(t *check
31 31
 	}
32 32
 
33 33
 	// kill the container
34
-	runCmd := exec.Command("ctr", "--address", "/var/run/docker/libcontainerd/containerd.sock", "containers", "kill", cid)
34
+	runCmd := exec.Command(ctrBinary, "--address", "/var/run/docker/libcontainerd/docker-containerd.sock", "containers", "kill", cid)
35 35
 	if out, ec, err := runCommandWithOutput(runCmd); err != nil {
36 36
 		t.Fatalf("Failed to run ctr, ExitCode: %d, err: '%v' output: '%s' cid: '%s'\n", ec, err, out, cid)
37 37
 	}
... ...
@@ -75,7 +75,7 @@ func (s *DockerDaemonSuite) TestDaemonRestartWithPausedRunningContainer(t *check
75 75
 	}
76 76
 
77 77
 	// kill the container
78
-	runCmd := exec.Command("ctr", "--address", "/var/run/docker/libcontainerd/containerd.sock", "containers", "pause", cid)
78
+	runCmd := exec.Command(ctrBinary, "--address", "/var/run/docker/libcontainerd/docker-containerd.sock", "containers", "pause", cid)
79 79
 	if out, ec, err := runCommandWithOutput(runCmd); err != nil {
80 80
 		t.Fatalf("Failed to run ctr, ExitCode: %d, err: '%v' output: '%s' cid: '%s'\n", ec, err, out, cid)
81 81
 	}
... ...
@@ -125,7 +125,7 @@ func (s *DockerDaemonSuite) TestDaemonRestartWithUnpausedRunningContainer(t *che
125 125
 	}
126 126
 
127 127
 	// resume the container
128
-	runCmd := exec.Command("ctr", "--address", "/var/run/docker/libcontainerd/containerd.sock", "containers", "resume", cid)
128
+	runCmd := exec.Command(ctrBinary, "--address", "/var/run/docker/libcontainerd/docker-containerd.sock", "containers", "resume", cid)
129 129
 	if out, ec, err := runCommandWithOutput(runCmd); err != nil {
130 130
 		t.Fatalf("Failed to run ctr, ExitCode: %d, err: '%v' output: '%s' cid: '%s'\n", ec, err, out, cid)
131 131
 	}
... ...
@@ -1510,7 +1510,7 @@ func (s *DockerDaemonSuite) TestCleanupMountsAfterCrash(c *check.C) {
1510 1510
 	c.Assert(s.d.Kill(), check.IsNil)
1511 1511
 
1512 1512
 	// kill the container
1513
-	runCmd := exec.Command("ctr", "--address", "/var/run/docker/libcontainerd/containerd.sock", "containers", "kill", id)
1513
+	runCmd := exec.Command(ctrBinary, "--address", "/var/run/docker/libcontainerd/docker-containerd.sock", "containers", "kill", id)
1514 1514
 	if out, ec, err := runCommandWithOutput(runCmd); err != nil {
1515 1515
 		c.Fatalf("Failed to run ctr, ExitCode: %d, err: '%v' output: '%s' cid: '%s'\n", ec, err, out, id)
1516 1516
 	}
... ...
@@ -13,6 +13,9 @@ var (
13 13
 	// the docker binary to use
14 14
 	dockerBinary = "docker"
15 15
 
16
+	// path to containerd's ctr binary
17
+	ctrBinary = "docker-containerd-ctr"
18
+
16 19
 	// the private registry image to use for tests involving the registry
17 20
 	registryImageName = "registry"
18 21
 
... ...
@@ -24,9 +24,9 @@ const (
24 24
 	maxConnectionRetryCount   = 3
25 25
 	connectionRetryDelay      = 3 * time.Second
26 26
 	containerdShutdownTimeout = 15 * time.Second
27
-	containerdBinary          = "containerd"
28
-	containerdPidFilename     = "containerd.pid"
29
-	containerdSockFilename    = "containerd.sock"
27
+	containerdBinary          = "docker-containerd"
28
+	containerdPidFilename     = "docker-containerd.pid"
29
+	containerdSockFilename    = "docker-containerd.sock"
30 30
 	eventTimestampFilename    = "event.ts"
31 31
 )
32 32
 
... ...
@@ -333,7 +333,7 @@ func (r *remote) runContainerdDaemon() error {
333 333
 	}
334 334
 
335 335
 	// Start a new instance
336
-	args := []string{"-l", r.rpcAddr}
336
+	args := []string{"-l", r.rpcAddr, "--runtime", "docker-runc"}
337 337
 	if r.debugLog {
338 338
 		args = append(args, "--debug", "true")
339 339
 	}
... ...
@@ -176,7 +176,7 @@
176 176
 
177 177
    END OF TERMS AND CONDITIONS
178 178
 
179
-   Copyright 2013-2015 Docker, Inc.
179
+   Copyright 2013-2016 Docker, Inc.
180 180
 
181 181
    Licensed under the Apache License, Version 2.0 (the "License");
182 182
    you may not use this file except in compliance with the License.
... ...
@@ -16,6 +16,7 @@ It has these top-level messages:
16 16
 	SignalRequest
17 17
 	SignalResponse
18 18
 	AddProcessRequest
19
+	Rlimit
19 20
 	User
20 21
 	AddProcessResponse
21 22
 	CreateCheckpointRequest
... ...
@@ -138,20 +139,21 @@ func (*SignalResponse) ProtoMessage()               {}
138 138
 func (*SignalResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
139 139
 
140 140
 type AddProcessRequest struct {
141
-	Id              string   `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
142
-	Terminal        bool     `protobuf:"varint,2,opt,name=terminal" json:"terminal,omitempty"`
143
-	User            *User    `protobuf:"bytes,3,opt,name=user" json:"user,omitempty"`
144
-	Args            []string `protobuf:"bytes,4,rep,name=args" json:"args,omitempty"`
145
-	Env             []string `protobuf:"bytes,5,rep,name=env" json:"env,omitempty"`
146
-	Cwd             string   `protobuf:"bytes,6,opt,name=cwd" json:"cwd,omitempty"`
147
-	Pid             string   `protobuf:"bytes,7,opt,name=pid" json:"pid,omitempty"`
148
-	Stdin           string   `protobuf:"bytes,8,opt,name=stdin" json:"stdin,omitempty"`
149
-	Stdout          string   `protobuf:"bytes,9,opt,name=stdout" json:"stdout,omitempty"`
150
-	Stderr          string   `protobuf:"bytes,10,opt,name=stderr" json:"stderr,omitempty"`
151
-	Capabilities    []string `protobuf:"bytes,11,rep,name=capabilities" json:"capabilities,omitempty"`
152
-	ApparmorProfile string   `protobuf:"bytes,12,opt,name=apparmorProfile" json:"apparmorProfile,omitempty"`
153
-	SelinuxLabel    string   `protobuf:"bytes,13,opt,name=selinuxLabel" json:"selinuxLabel,omitempty"`
154
-	NoNewPrivileges bool     `protobuf:"varint,14,opt,name=noNewPrivileges" json:"noNewPrivileges,omitempty"`
141
+	Id              string    `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
142
+	Terminal        bool      `protobuf:"varint,2,opt,name=terminal" json:"terminal,omitempty"`
143
+	User            *User     `protobuf:"bytes,3,opt,name=user" json:"user,omitempty"`
144
+	Args            []string  `protobuf:"bytes,4,rep,name=args" json:"args,omitempty"`
145
+	Env             []string  `protobuf:"bytes,5,rep,name=env" json:"env,omitempty"`
146
+	Cwd             string    `protobuf:"bytes,6,opt,name=cwd" json:"cwd,omitempty"`
147
+	Pid             string    `protobuf:"bytes,7,opt,name=pid" json:"pid,omitempty"`
148
+	Stdin           string    `protobuf:"bytes,8,opt,name=stdin" json:"stdin,omitempty"`
149
+	Stdout          string    `protobuf:"bytes,9,opt,name=stdout" json:"stdout,omitempty"`
150
+	Stderr          string    `protobuf:"bytes,10,opt,name=stderr" json:"stderr,omitempty"`
151
+	Capabilities    []string  `protobuf:"bytes,11,rep,name=capabilities" json:"capabilities,omitempty"`
152
+	ApparmorProfile string    `protobuf:"bytes,12,opt,name=apparmorProfile" json:"apparmorProfile,omitempty"`
153
+	SelinuxLabel    string    `protobuf:"bytes,13,opt,name=selinuxLabel" json:"selinuxLabel,omitempty"`
154
+	NoNewPrivileges bool      `protobuf:"varint,14,opt,name=noNewPrivileges" json:"noNewPrivileges,omitempty"`
155
+	Rlimits         []*Rlimit `protobuf:"bytes,15,rep,name=rlimits" json:"rlimits,omitempty"`
155 156
 }
156 157
 
157 158
 func (m *AddProcessRequest) Reset()                    { *m = AddProcessRequest{} }
... ...
@@ -166,6 +168,24 @@ func (m *AddProcessRequest) GetUser() *User {
166 166
 	return nil
167 167
 }
168 168
 
169
+func (m *AddProcessRequest) GetRlimits() []*Rlimit {
170
+	if m != nil {
171
+		return m.Rlimits
172
+	}
173
+	return nil
174
+}
175
+
176
+type Rlimit struct {
177
+	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
178
+	Soft uint64 `protobuf:"varint,2,opt,name=soft" json:"soft,omitempty"`
179
+	Hard uint64 `protobuf:"varint,3,opt,name=hard" json:"hard,omitempty"`
180
+}
181
+
182
+func (m *Rlimit) Reset()                    { *m = Rlimit{} }
183
+func (m *Rlimit) String() string            { return proto.CompactTextString(m) }
184
+func (*Rlimit) ProtoMessage()               {}
185
+func (*Rlimit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
186
+
169 187
 type User struct {
170 188
 	Uid            uint32   `protobuf:"varint,1,opt,name=uid" json:"uid,omitempty"`
171 189
 	Gid            uint32   `protobuf:"varint,2,opt,name=gid" json:"gid,omitempty"`
... ...
@@ -175,7 +195,7 @@ type User struct {
175 175
 func (m *User) Reset()                    { *m = User{} }
176 176
 func (m *User) String() string            { return proto.CompactTextString(m) }
177 177
 func (*User) ProtoMessage()               {}
178
-func (*User) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
178
+func (*User) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
179 179
 
180 180
 type AddProcessResponse struct {
181 181
 }
... ...
@@ -183,7 +203,7 @@ type AddProcessResponse struct {
183 183
 func (m *AddProcessResponse) Reset()                    { *m = AddProcessResponse{} }
184 184
 func (m *AddProcessResponse) String() string            { return proto.CompactTextString(m) }
185 185
 func (*AddProcessResponse) ProtoMessage()               {}
186
-func (*AddProcessResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
186
+func (*AddProcessResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
187 187
 
188 188
 type CreateCheckpointRequest struct {
189 189
 	Id         string      `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
... ...
@@ -193,7 +213,7 @@ type CreateCheckpointRequest struct {
193 193
 func (m *CreateCheckpointRequest) Reset()                    { *m = CreateCheckpointRequest{} }
194 194
 func (m *CreateCheckpointRequest) String() string            { return proto.CompactTextString(m) }
195 195
 func (*CreateCheckpointRequest) ProtoMessage()               {}
196
-func (*CreateCheckpointRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
196
+func (*CreateCheckpointRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
197 197
 
198 198
 func (m *CreateCheckpointRequest) GetCheckpoint() *Checkpoint {
199 199
 	if m != nil {
... ...
@@ -208,7 +228,7 @@ type CreateCheckpointResponse struct {
208 208
 func (m *CreateCheckpointResponse) Reset()                    { *m = CreateCheckpointResponse{} }
209 209
 func (m *CreateCheckpointResponse) String() string            { return proto.CompactTextString(m) }
210 210
 func (*CreateCheckpointResponse) ProtoMessage()               {}
211
-func (*CreateCheckpointResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
211
+func (*CreateCheckpointResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
212 212
 
213 213
 type DeleteCheckpointRequest struct {
214 214
 	Id   string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
... ...
@@ -218,7 +238,7 @@ type DeleteCheckpointRequest struct {
218 218
 func (m *DeleteCheckpointRequest) Reset()                    { *m = DeleteCheckpointRequest{} }
219 219
 func (m *DeleteCheckpointRequest) String() string            { return proto.CompactTextString(m) }
220 220
 func (*DeleteCheckpointRequest) ProtoMessage()               {}
221
-func (*DeleteCheckpointRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
221
+func (*DeleteCheckpointRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
222 222
 
223 223
 type DeleteCheckpointResponse struct {
224 224
 }
... ...
@@ -226,7 +246,7 @@ type DeleteCheckpointResponse struct {
226 226
 func (m *DeleteCheckpointResponse) Reset()                    { *m = DeleteCheckpointResponse{} }
227 227
 func (m *DeleteCheckpointResponse) String() string            { return proto.CompactTextString(m) }
228 228
 func (*DeleteCheckpointResponse) ProtoMessage()               {}
229
-func (*DeleteCheckpointResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
229
+func (*DeleteCheckpointResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
230 230
 
231 231
 type ListCheckpointRequest struct {
232 232
 	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
... ...
@@ -235,7 +255,7 @@ type ListCheckpointRequest struct {
235 235
 func (m *ListCheckpointRequest) Reset()                    { *m = ListCheckpointRequest{} }
236 236
 func (m *ListCheckpointRequest) String() string            { return proto.CompactTextString(m) }
237 237
 func (*ListCheckpointRequest) ProtoMessage()               {}
238
-func (*ListCheckpointRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
238
+func (*ListCheckpointRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
239 239
 
240 240
 type Checkpoint struct {
241 241
 	Name        string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
... ...
@@ -248,7 +268,7 @@ type Checkpoint struct {
248 248
 func (m *Checkpoint) Reset()                    { *m = Checkpoint{} }
249 249
 func (m *Checkpoint) String() string            { return proto.CompactTextString(m) }
250 250
 func (*Checkpoint) ProtoMessage()               {}
251
-func (*Checkpoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
251
+func (*Checkpoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
252 252
 
253 253
 type ListCheckpointResponse struct {
254 254
 	Checkpoints []*Checkpoint `protobuf:"bytes,1,rep,name=checkpoints" json:"checkpoints,omitempty"`
... ...
@@ -257,7 +277,7 @@ type ListCheckpointResponse struct {
257 257
 func (m *ListCheckpointResponse) Reset()                    { *m = ListCheckpointResponse{} }
258 258
 func (m *ListCheckpointResponse) String() string            { return proto.CompactTextString(m) }
259 259
 func (*ListCheckpointResponse) ProtoMessage()               {}
260
-func (*ListCheckpointResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
260
+func (*ListCheckpointResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
261 261
 
262 262
 func (m *ListCheckpointResponse) GetCheckpoints() []*Checkpoint {
263 263
 	if m != nil {
... ...
@@ -273,7 +293,7 @@ type StateRequest struct {
273 273
 func (m *StateRequest) Reset()                    { *m = StateRequest{} }
274 274
 func (m *StateRequest) String() string            { return proto.CompactTextString(m) }
275 275
 func (*StateRequest) ProtoMessage()               {}
276
-func (*StateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
276
+func (*StateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
277 277
 
278 278
 type ContainerState struct {
279 279
 	Status string `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
... ...
@@ -282,29 +302,30 @@ type ContainerState struct {
282 282
 func (m *ContainerState) Reset()                    { *m = ContainerState{} }
283 283
 func (m *ContainerState) String() string            { return proto.CompactTextString(m) }
284 284
 func (*ContainerState) ProtoMessage()               {}
285
-func (*ContainerState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
285
+func (*ContainerState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
286 286
 
287 287
 type Process struct {
288
-	Pid             string   `protobuf:"bytes,1,opt,name=pid" json:"pid,omitempty"`
289
-	Terminal        bool     `protobuf:"varint,2,opt,name=terminal" json:"terminal,omitempty"`
290
-	User            *User    `protobuf:"bytes,3,opt,name=user" json:"user,omitempty"`
291
-	Args            []string `protobuf:"bytes,4,rep,name=args" json:"args,omitempty"`
292
-	Env             []string `protobuf:"bytes,5,rep,name=env" json:"env,omitempty"`
293
-	Cwd             string   `protobuf:"bytes,6,opt,name=cwd" json:"cwd,omitempty"`
294
-	SystemPid       uint32   `protobuf:"varint,7,opt,name=systemPid" json:"systemPid,omitempty"`
295
-	Stdin           string   `protobuf:"bytes,8,opt,name=stdin" json:"stdin,omitempty"`
296
-	Stdout          string   `protobuf:"bytes,9,opt,name=stdout" json:"stdout,omitempty"`
297
-	Stderr          string   `protobuf:"bytes,10,opt,name=stderr" json:"stderr,omitempty"`
298
-	Capabilities    []string `protobuf:"bytes,11,rep,name=capabilities" json:"capabilities,omitempty"`
299
-	ApparmorProfile string   `protobuf:"bytes,12,opt,name=apparmorProfile" json:"apparmorProfile,omitempty"`
300
-	SelinuxLabel    string   `protobuf:"bytes,13,opt,name=selinuxLabel" json:"selinuxLabel,omitempty"`
301
-	NoNewPrivileges bool     `protobuf:"varint,14,opt,name=noNewPrivileges" json:"noNewPrivileges,omitempty"`
288
+	Pid             string    `protobuf:"bytes,1,opt,name=pid" json:"pid,omitempty"`
289
+	Terminal        bool      `protobuf:"varint,2,opt,name=terminal" json:"terminal,omitempty"`
290
+	User            *User     `protobuf:"bytes,3,opt,name=user" json:"user,omitempty"`
291
+	Args            []string  `protobuf:"bytes,4,rep,name=args" json:"args,omitempty"`
292
+	Env             []string  `protobuf:"bytes,5,rep,name=env" json:"env,omitempty"`
293
+	Cwd             string    `protobuf:"bytes,6,opt,name=cwd" json:"cwd,omitempty"`
294
+	SystemPid       uint32    `protobuf:"varint,7,opt,name=systemPid" json:"systemPid,omitempty"`
295
+	Stdin           string    `protobuf:"bytes,8,opt,name=stdin" json:"stdin,omitempty"`
296
+	Stdout          string    `protobuf:"bytes,9,opt,name=stdout" json:"stdout,omitempty"`
297
+	Stderr          string    `protobuf:"bytes,10,opt,name=stderr" json:"stderr,omitempty"`
298
+	Capabilities    []string  `protobuf:"bytes,11,rep,name=capabilities" json:"capabilities,omitempty"`
299
+	ApparmorProfile string    `protobuf:"bytes,12,opt,name=apparmorProfile" json:"apparmorProfile,omitempty"`
300
+	SelinuxLabel    string    `protobuf:"bytes,13,opt,name=selinuxLabel" json:"selinuxLabel,omitempty"`
301
+	NoNewPrivileges bool      `protobuf:"varint,14,opt,name=noNewPrivileges" json:"noNewPrivileges,omitempty"`
302
+	Rlimits         []*Rlimit `protobuf:"bytes,15,rep,name=rlimits" json:"rlimits,omitempty"`
302 303
 }
303 304
 
304 305
 func (m *Process) Reset()                    { *m = Process{} }
305 306
 func (m *Process) String() string            { return proto.CompactTextString(m) }
306 307
 func (*Process) ProtoMessage()               {}
307
-func (*Process) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
308
+func (*Process) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
308 309
 
309 310
 func (m *Process) GetUser() *User {
310 311
 	if m != nil {
... ...
@@ -313,6 +334,13 @@ func (m *Process) GetUser() *User {
313 313
 	return nil
314 314
 }
315 315
 
316
+func (m *Process) GetRlimits() []*Rlimit {
317
+	if m != nil {
318
+		return m.Rlimits
319
+	}
320
+	return nil
321
+}
322
+
316 323
 type Container struct {
317 324
 	Id         string     `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
318 325
 	BundlePath string     `protobuf:"bytes,2,opt,name=bundlePath" json:"bundlePath,omitempty"`
... ...
@@ -326,7 +354,7 @@ type Container struct {
326 326
 func (m *Container) Reset()                    { *m = Container{} }
327 327
 func (m *Container) String() string            { return proto.CompactTextString(m) }
328 328
 func (*Container) ProtoMessage()               {}
329
-func (*Container) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
329
+func (*Container) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
330 330
 
331 331
 func (m *Container) GetProcesses() []*Process {
332 332
 	if m != nil {
... ...
@@ -344,7 +372,7 @@ type Machine struct {
344 344
 func (m *Machine) Reset()                    { *m = Machine{} }
345 345
 func (m *Machine) String() string            { return proto.CompactTextString(m) }
346 346
 func (*Machine) ProtoMessage()               {}
347
-func (*Machine) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
347
+func (*Machine) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
348 348
 
349 349
 // StateResponse is information about containerd daemon
350 350
 type StateResponse struct {
... ...
@@ -355,7 +383,7 @@ type StateResponse struct {
355 355
 func (m *StateResponse) Reset()                    { *m = StateResponse{} }
356 356
 func (m *StateResponse) String() string            { return proto.CompactTextString(m) }
357 357
 func (*StateResponse) ProtoMessage()               {}
358
-func (*StateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
358
+func (*StateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
359 359
 
360 360
 func (m *StateResponse) GetContainers() []*Container {
361 361
 	if m != nil {
... ...
@@ -381,7 +409,7 @@ type UpdateContainerRequest struct {
381 381
 func (m *UpdateContainerRequest) Reset()                    { *m = UpdateContainerRequest{} }
382 382
 func (m *UpdateContainerRequest) String() string            { return proto.CompactTextString(m) }
383 383
 func (*UpdateContainerRequest) ProtoMessage()               {}
384
-func (*UpdateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
384
+func (*UpdateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
385 385
 
386 386
 func (m *UpdateContainerRequest) GetResources() *UpdateResource {
387 387
 	if m != nil {
... ...
@@ -406,7 +434,7 @@ type UpdateResource struct {
406 406
 func (m *UpdateResource) Reset()                    { *m = UpdateResource{} }
407 407
 func (m *UpdateResource) String() string            { return proto.CompactTextString(m) }
408 408
 func (*UpdateResource) ProtoMessage()               {}
409
-func (*UpdateResource) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
409
+func (*UpdateResource) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
410 410
 
411 411
 type UpdateContainerResponse struct {
412 412
 }
... ...
@@ -414,7 +442,7 @@ type UpdateContainerResponse struct {
414 414
 func (m *UpdateContainerResponse) Reset()                    { *m = UpdateContainerResponse{} }
415 415
 func (m *UpdateContainerResponse) String() string            { return proto.CompactTextString(m) }
416 416
 func (*UpdateContainerResponse) ProtoMessage()               {}
417
-func (*UpdateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
417
+func (*UpdateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
418 418
 
419 419
 type EventsRequest struct {
420 420
 	Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"`
... ...
@@ -423,7 +451,7 @@ type EventsRequest struct {
423 423
 func (m *EventsRequest) Reset()                    { *m = EventsRequest{} }
424 424
 func (m *EventsRequest) String() string            { return proto.CompactTextString(m) }
425 425
 func (*EventsRequest) ProtoMessage()               {}
426
-func (*EventsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
426
+func (*EventsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
427 427
 
428 428
 type Event struct {
429 429
 	Type      string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
... ...
@@ -436,7 +464,7 @@ type Event struct {
436 436
 func (m *Event) Reset()                    { *m = Event{} }
437 437
 func (m *Event) String() string            { return proto.CompactTextString(m) }
438 438
 func (*Event) ProtoMessage()               {}
439
-func (*Event) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
439
+func (*Event) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
440 440
 
441 441
 type NetworkStats struct {
442 442
 	Name       string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
... ...
@@ -453,7 +481,7 @@ type NetworkStats struct {
453 453
 func (m *NetworkStats) Reset()                    { *m = NetworkStats{} }
454 454
 func (m *NetworkStats) String() string            { return proto.CompactTextString(m) }
455 455
 func (*NetworkStats) ProtoMessage()               {}
456
-func (*NetworkStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
456
+func (*NetworkStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
457 457
 
458 458
 type CpuUsage struct {
459 459
 	TotalUsage        uint64   `protobuf:"varint,1,opt,name=total_usage" json:"total_usage,omitempty"`
... ...
@@ -465,7 +493,7 @@ type CpuUsage struct {
465 465
 func (m *CpuUsage) Reset()                    { *m = CpuUsage{} }
466 466
 func (m *CpuUsage) String() string            { return proto.CompactTextString(m) }
467 467
 func (*CpuUsage) ProtoMessage()               {}
468
-func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
468
+func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
469 469
 
470 470
 type ThrottlingData struct {
471 471
 	Periods          uint64 `protobuf:"varint,1,opt,name=periods" json:"periods,omitempty"`
... ...
@@ -476,7 +504,7 @@ type ThrottlingData struct {
476 476
 func (m *ThrottlingData) Reset()                    { *m = ThrottlingData{} }
477 477
 func (m *ThrottlingData) String() string            { return proto.CompactTextString(m) }
478 478
 func (*ThrottlingData) ProtoMessage()               {}
479
-func (*ThrottlingData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
479
+func (*ThrottlingData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
480 480
 
481 481
 type CpuStats struct {
482 482
 	CpuUsage       *CpuUsage       `protobuf:"bytes,1,opt,name=cpu_usage" json:"cpu_usage,omitempty"`
... ...
@@ -487,7 +515,7 @@ type CpuStats struct {
487 487
 func (m *CpuStats) Reset()                    { *m = CpuStats{} }
488 488
 func (m *CpuStats) String() string            { return proto.CompactTextString(m) }
489 489
 func (*CpuStats) ProtoMessage()               {}
490
-func (*CpuStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
490
+func (*CpuStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
491 491
 
492 492
 func (m *CpuStats) GetCpuUsage() *CpuUsage {
493 493
 	if m != nil {
... ...
@@ -510,7 +538,7 @@ type PidsStats struct {
510 510
 func (m *PidsStats) Reset()                    { *m = PidsStats{} }
511 511
 func (m *PidsStats) String() string            { return proto.CompactTextString(m) }
512 512
 func (*PidsStats) ProtoMessage()               {}
513
-func (*PidsStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
513
+func (*PidsStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
514 514
 
515 515
 type MemoryData struct {
516 516
 	Usage    uint64 `protobuf:"varint,1,opt,name=usage" json:"usage,omitempty"`
... ...
@@ -522,7 +550,7 @@ type MemoryData struct {
522 522
 func (m *MemoryData) Reset()                    { *m = MemoryData{} }
523 523
 func (m *MemoryData) String() string            { return proto.CompactTextString(m) }
524 524
 func (*MemoryData) ProtoMessage()               {}
525
-func (*MemoryData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
525
+func (*MemoryData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }
526 526
 
527 527
 type MemoryStats struct {
528 528
 	Cache       uint64            `protobuf:"varint,1,opt,name=cache" json:"cache,omitempty"`
... ...
@@ -535,7 +563,7 @@ type MemoryStats struct {
535 535
 func (m *MemoryStats) Reset()                    { *m = MemoryStats{} }
536 536
 func (m *MemoryStats) String() string            { return proto.CompactTextString(m) }
537 537
 func (*MemoryStats) ProtoMessage()               {}
538
-func (*MemoryStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }
538
+func (*MemoryStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }
539 539
 
540 540
 func (m *MemoryStats) GetUsage() *MemoryData {
541 541
 	if m != nil {
... ...
@@ -575,7 +603,7 @@ type BlkioStatsEntry struct {
575 575
 func (m *BlkioStatsEntry) Reset()                    { *m = BlkioStatsEntry{} }
576 576
 func (m *BlkioStatsEntry) String() string            { return proto.CompactTextString(m) }
577 577
 func (*BlkioStatsEntry) ProtoMessage()               {}
578
-func (*BlkioStatsEntry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }
578
+func (*BlkioStatsEntry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
579 579
 
580 580
 type BlkioStats struct {
581 581
 	IoServiceBytesRecursive []*BlkioStatsEntry `protobuf:"bytes,1,rep,name=io_service_bytes_recursive" json:"io_service_bytes_recursive,omitempty"`
... ...
@@ -591,7 +619,7 @@ type BlkioStats struct {
591 591
 func (m *BlkioStats) Reset()                    { *m = BlkioStats{} }
592 592
 func (m *BlkioStats) String() string            { return proto.CompactTextString(m) }
593 593
 func (*BlkioStats) ProtoMessage()               {}
594
-func (*BlkioStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
594
+func (*BlkioStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
595 595
 
596 596
 func (m *BlkioStats) GetIoServiceBytesRecursive() []*BlkioStatsEntry {
597 597
 	if m != nil {
... ...
@@ -659,7 +687,7 @@ type HugetlbStats struct {
659 659
 func (m *HugetlbStats) Reset()                    { *m = HugetlbStats{} }
660 660
 func (m *HugetlbStats) String() string            { return proto.CompactTextString(m) }
661 661
 func (*HugetlbStats) ProtoMessage()               {}
662
-func (*HugetlbStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
662
+func (*HugetlbStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
663 663
 
664 664
 type CgroupStats struct {
665 665
 	CpuStats     *CpuStats                `protobuf:"bytes,1,opt,name=cpu_stats" json:"cpu_stats,omitempty"`
... ...
@@ -672,7 +700,7 @@ type CgroupStats struct {
672 672
 func (m *CgroupStats) Reset()                    { *m = CgroupStats{} }
673 673
 func (m *CgroupStats) String() string            { return proto.CompactTextString(m) }
674 674
 func (*CgroupStats) ProtoMessage()               {}
675
-func (*CgroupStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
675
+func (*CgroupStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
676 676
 
677 677
 func (m *CgroupStats) GetCpuStats() *CpuStats {
678 678
 	if m != nil {
... ...
@@ -718,7 +746,7 @@ type StatsResponse struct {
718 718
 func (m *StatsResponse) Reset()                    { *m = StatsResponse{} }
719 719
 func (m *StatsResponse) String() string            { return proto.CompactTextString(m) }
720 720
 func (*StatsResponse) ProtoMessage()               {}
721
-func (*StatsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
721
+func (*StatsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
722 722
 
723 723
 func (m *StatsResponse) GetNetworkStats() []*NetworkStats {
724 724
 	if m != nil {
... ...
@@ -741,7 +769,7 @@ type StatsRequest struct {
741 741
 func (m *StatsRequest) Reset()                    { *m = StatsRequest{} }
742 742
 func (m *StatsRequest) String() string            { return proto.CompactTextString(m) }
743 743
 func (*StatsRequest) ProtoMessage()               {}
744
-func (*StatsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
744
+func (*StatsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
745 745
 
746 746
 func init() {
747 747
 	proto.RegisterType((*UpdateProcessRequest)(nil), "types.UpdateProcessRequest")
... ...
@@ -751,6 +779,7 @@ func init() {
751 751
 	proto.RegisterType((*SignalRequest)(nil), "types.SignalRequest")
752 752
 	proto.RegisterType((*SignalResponse)(nil), "types.SignalResponse")
753 753
 	proto.RegisterType((*AddProcessRequest)(nil), "types.AddProcessRequest")
754
+	proto.RegisterType((*Rlimit)(nil), "types.Rlimit")
754 755
 	proto.RegisterType((*User)(nil), "types.User")
755 756
 	proto.RegisterType((*AddProcessResponse)(nil), "types.AddProcessResponse")
756 757
 	proto.RegisterType((*CreateCheckpointRequest)(nil), "types.CreateCheckpointRequest")
... ...
@@ -1152,139 +1181,117 @@ var _API_serviceDesc = grpc.ServiceDesc{
1152 1152
 }
1153 1153
 
1154 1154
 var fileDescriptor0 = []byte{
1155
-	// 2142 bytes of a gzipped FileDescriptorProto
1156
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe4, 0x19, 0x4d, 0x6f, 0x23, 0x49,
1157
-	0x75, 0xfc, 0x11, 0xc7, 0x7e, 0xfe, 0x48, 0xdc, 0x93, 0x0f, 0x8f, 0x77, 0x67, 0x76, 0x68, 0xb1,
1158
-	0xec, 0x00, 0x4b, 0x18, 0x32, 0xbb, 0x62, 0x84, 0x04, 0xd2, 0x4e, 0x66, 0x80, 0x61, 0x27, 0x4b,
1159
-	0xa6, 0x93, 0x68, 0x2f, 0x48, 0x56, 0xc7, 0x5d, 0x6b, 0x37, 0x69, 0x77, 0xf7, 0x76, 0xb7, 0x13,
1160
-	0xe7, 0xc2, 0x11, 0x2e, 0x08, 0x71, 0xe2, 0x82, 0xc4, 0x85, 0x1b, 0x3f, 0x04, 0xfe, 0x09, 0xe2,
1161
-	0x27, 0x70, 0xe4, 0x55, 0xbd, 0xaa, 0xea, 0xea, 0xb6, 0x9d, 0x2c, 0x07, 0xc4, 0x61, 0x2f, 0x56,
1162
-	0xbd, 0x8f, 0x7a, 0xdf, 0xef, 0x55, 0x75, 0x19, 0x5a, 0x6e, 0xec, 0x1f, 0xc4, 0x49, 0x94, 0x45,
1163
-	0xd6, 0x46, 0x76, 0x13, 0xb3, 0xd4, 0xfe, 0x6d, 0x05, 0x76, 0xce, 0x63, 0xcf, 0xcd, 0xd8, 0x49,
1164
-	0x12, 0x8d, 0x59, 0x9a, 0x3a, 0xec, 0xcb, 0x39, 0x4b, 0x33, 0xab, 0x07, 0x55, 0xdf, 0x1b, 0x54,
1165
-	0x1e, 0x57, 0x9e, 0xb4, 0x1c, 0x5c, 0x59, 0xdb, 0x50, 0x8b, 0x11, 0x51, 0x15, 0x08, 0xbe, 0xb4,
1166
-	0x1e, 0x01, 0x8c, 0x83, 0x28, 0x65, 0xa7, 0x99, 0xe7, 0x87, 0x83, 0x1a, 0x12, 0x9a, 0x8e, 0x81,
1167
-	0xb1, 0x76, 0x60, 0xe3, 0xda, 0xf7, 0xb2, 0xe9, 0xa0, 0x8e, 0xa4, 0xae, 0x43, 0x80, 0xb5, 0x07,
1168
-	0x8d, 0x29, 0xf3, 0x27, 0xd3, 0x6c, 0xb0, 0x21, 0xd0, 0x12, 0xb2, 0xf7, 0x61, 0xb7, 0x64, 0x47,
1169
-	0x1a, 0x47, 0x61, 0xca, 0xec, 0xbf, 0x57, 0x60, 0xef, 0x28, 0x61, 0x48, 0x39, 0x8a, 0xc2, 0xcc,
1170
-	0xf5, 0x43, 0x96, 0xac, 0xb3, 0x11, 0x2d, 0xba, 0x98, 0x87, 0x5e, 0xc0, 0x4e, 0x5c, 0x54, 0x4b,
1171
-	0xa6, 0x1a, 0x18, 0x61, 0xf1, 0x94, 0x8d, 0x2f, 0xe3, 0xc8, 0x0f, 0x33, 0x61, 0x31, 0xd2, 0x73,
1172
-	0x0c, 0xb7, 0x38, 0x15, 0xce, 0xd4, 0x05, 0x89, 0x00, 0x6e, 0x31, 0x2e, 0xa2, 0x39, 0x59, 0xdc,
1173
-	0x72, 0x24, 0x24, 0xf1, 0x2c, 0x49, 0x06, 0x0d, 0x8d, 0x47, 0x88, 0xe3, 0x03, 0xf7, 0x82, 0x05,
1174
-	0xe9, 0x60, 0xf3, 0x71, 0x8d, 0xe3, 0x09, 0xb2, 0x5f, 0xc3, 0xfe, 0x92, 0x1f, 0xe4, 0xa3, 0x75,
1175
-	0x00, 0xad, 0xb1, 0x42, 0x0a, 0x7f, 0xda, 0x87, 0xdb, 0x07, 0x22, 0x41, 0x07, 0x39, 0x73, 0xce,
1176
-	0x82, 0xa2, 0xba, 0xa7, 0xfe, 0x24, 0x74, 0x83, 0xaf, 0x9e, 0x2d, 0x6e, 0xad, 0xd8, 0x22, 0xfc,
1177
-	0xc6, 0xb8, 0x13, 0x64, 0x6f, 0x43, 0x4f, 0x89, 0x92, 0x01, 0xff, 0x7d, 0x0d, 0xfa, 0x9f, 0x78,
1178
-	0xde, 0x1d, 0xf5, 0x30, 0x84, 0x66, 0xc6, 0x92, 0x99, 0xcf, 0x25, 0x56, 0x45, 0xee, 0x35, 0x6c,
1179
-	0xbd, 0x07, 0xf5, 0x79, 0x8a, 0x9e, 0xd4, 0x84, 0x27, 0x6d, 0xe9, 0xc9, 0x39, 0xa2, 0x1c, 0x41,
1180
-	0xb0, 0x2c, 0xa8, 0xbb, 0xc9, 0x24, 0xc5, 0x38, 0xf3, 0x00, 0x89, 0x35, 0x37, 0x99, 0x85, 0x57,
1181
-	0x18, 0x63, 0x8e, 0xe2, 0x4b, 0x8e, 0x19, 0x5f, 0x7b, 0x32, 0xba, 0x7c, 0xa9, 0xdc, 0xda, 0xcc,
1182
-	0xdd, 0xd2, 0x29, 0x6b, 0xae, 0x4e, 0x59, 0x6b, 0x4d, 0xca, 0xa0, 0x90, 0x32, 0x1b, 0x3a, 0x63,
1183
-	0x37, 0x76, 0x2f, 0xfc, 0xc0, 0xcf, 0x7c, 0x96, 0x0e, 0xda, 0xc2, 0x88, 0x02, 0xce, 0x7a, 0x02,
1184
-	0x5b, 0x6e, 0x1c, 0xbb, 0xc9, 0x2c, 0x4a, 0x30, 0x34, 0x5f, 0xf8, 0x01, 0x1b, 0x74, 0x84, 0x90,
1185
-	0x32, 0x9a, 0x4b, 0x4b, 0x59, 0xe0, 0x87, 0xf3, 0xc5, 0x1b, 0x9e, 0xf9, 0x41, 0x57, 0xb0, 0x15,
1186
-	0x70, 0x5c, 0x5a, 0x18, 0x7d, 0xc6, 0xae, 0x4f, 0x12, 0xff, 0x0a, 0xf7, 0x4c, 0x50, 0x69, 0x4f,
1187
-	0x44, 0xb1, 0x8c, 0xb6, 0x1d, 0xa8, 0xf3, 0xc8, 0x71, 0xdf, 0xe7, 0x32, 0x03, 0x5d, 0x87, 0x2f,
1188
-	0x39, 0x66, 0x22, 0x93, 0x8c, 0x18, 0x5c, 0x5a, 0xdf, 0x82, 0x9e, 0xeb, 0x79, 0x68, 0x6f, 0x84,
1189
-	0x69, 0xf8, 0x99, 0xef, 0xa5, 0x98, 0x82, 0x1a, 0x12, 0x4b, 0x58, 0x7b, 0x07, 0x2c, 0x33, 0xc3,
1190
-	0x32, 0xf1, 0xbf, 0xd2, 0x05, 0xaa, 0x5b, 0x62, 0x5d, 0xf6, 0x7f, 0x50, 0xe8, 0xa4, 0xaa, 0xc8,
1191
-	0x73, 0x5f, 0x55, 0x6c, 0xbe, 0xdb, 0x60, 0xb2, 0x87, 0x30, 0x58, 0x96, 0x2e, 0x35, 0xff, 0x18,
1192
-	0xf6, 0x5f, 0xb2, 0x80, 0x7d, 0x15, 0xcd, 0x58, 0x3a, 0xa1, 0x3b, 0x63, 0xb2, 0xb4, 0xc5, 0x9a,
1193
-	0x8b, 0x5e, 0xde, 0x2e, 0x45, 0x7f, 0x00, 0xbb, 0x6f, 0xfc, 0x34, 0xbb, 0x53, 0xb0, 0xfd, 0x1b,
1194
-	0x80, 0x9c, 0x49, 0xab, 0xa9, 0xe4, 0x6a, 0x38, 0x8e, 0x2d, 0xfc, 0x4c, 0x96, 0xbb, 0x58, 0xf3,
1195
-	0x1c, 0x64, 0xe3, 0x58, 0x4e, 0x3f, 0xbe, 0xb4, 0x1e, 0x43, 0x7b, 0x1e, 0xfa, 0x8b, 0xd3, 0x68,
1196
-	0x7c, 0xc9, 0xb2, 0x54, 0x8c, 0x92, 0xa6, 0x63, 0xa2, 0x44, 0xcd, 0x4e, 0x59, 0x10, 0x88, 0x79,
1197
-	0xd2, 0x74, 0x08, 0xb0, 0x8f, 0x61, 0xaf, 0x6c, 0xa8, 0x9c, 0x0e, 0xcf, 0xa0, 0x9d, 0xc7, 0x31,
1198
-	0x45, 0x93, 0x6a, 0xab, 0xa3, 0x6d, 0x72, 0xd9, 0x8f, 0xa0, 0x73, 0x9a, 0x61, 0xb4, 0xd7, 0xb9,
1199
-	0xfb, 0x04, 0x7a, 0x7a, 0xb4, 0x08, 0x46, 0x6a, 0x0e, 0x37, 0x9b, 0xa7, 0x92, 0x4b, 0x42, 0xf6,
1200
-	0x1f, 0x6b, 0xb0, 0x29, 0x4b, 0x45, 0x35, 0x60, 0x25, 0x6f, 0xc0, 0xff, 0xcb, 0x1c, 0x78, 0x17,
1201
-	0x5a, 0xe9, 0x4d, 0x9a, 0xb1, 0xd9, 0x89, 0x9c, 0x06, 0x5d, 0x27, 0x47, 0x7c, 0x0d, 0x66, 0xc2,
1202
-	0x3f, 0x2a, 0xd0, 0xd2, 0xd9, 0xfb, 0xaf, 0x8f, 0xc1, 0x0f, 0xa1, 0x15, 0x53, 0x3e, 0x19, 0x0d,
1203
-	0x88, 0xf6, 0x61, 0x4f, 0xe6, 0x46, 0x8d, 0x84, 0x9c, 0xc1, 0x28, 0x8b, 0xba, 0x59, 0x16, 0xc6,
1204
-	0x31, 0xb7, 0x61, 0x1e, 0x73, 0x3c, 0xa7, 0x31, 0x9f, 0x3c, 0x0d, 0x31, 0x79, 0xc4, 0xda, 0x1a,
1205
-	0xc0, 0x66, 0x32, 0x0f, 0x33, 0x1f, 0x1b, 0x8a, 0x66, 0xb7, 0x02, 0xed, 0x8f, 0x61, 0xf3, 0xd8,
1206
-	0x1d, 0x4f, 0xd1, 0x0f, 0xbe, 0x71, 0x1c, 0xcb, 0xea, 0xc3, 0x8d, 0x7c, 0xcd, 0x95, 0xcc, 0x18,
1207
-	0x86, 0xf1, 0x46, 0xb8, 0x51, 0x77, 0x24, 0x64, 0x5f, 0xe2, 0x01, 0x48, 0xd5, 0x2d, 0x7b, 0xe4,
1208
-	0x29, 0x0e, 0x24, 0x15, 0x10, 0xd5, 0x22, 0xcb, 0x47, 0xa8, 0xc1, 0x83, 0xd1, 0xde, 0x9c, 0x91,
1209
-	0x66, 0x39, 0xbf, 0x54, 0x0c, 0xa4, 0x3d, 0x8e, 0x22, 0xdb, 0xbf, 0xc3, 0x1b, 0x08, 0xdd, 0x4d,
1210
-	0xee, 0xbc, 0x81, 0xac, 0x3e, 0x77, 0x29, 0x7c, 0xb5, 0x42, 0xf8, 0x9e, 0x41, 0x2b, 0x61, 0x69,
1211
-	0x34, 0x4f, 0x30, 0xcc, 0x22, 0xb2, 0xed, 0xc3, 0x5d, 0xd5, 0x20, 0x42, 0x97, 0x23, 0xa9, 0x4e,
1212
-	0xce, 0x67, 0xff, 0xab, 0x0a, 0xbd, 0x22, 0x95, 0x8f, 0x9b, 0x8b, 0xe0, 0xd2, 0x8f, 0x3e, 0xa7,
1213
-	0x4b, 0x15, 0x05, 0xcf, 0x44, 0xf1, 0x66, 0xc1, 0x58, 0x9e, 0x4e, 0x5d, 0x94, 0x23, 0x0f, 0x8b,
1214
-	0x1c, 0x21, 0xa9, 0x27, 0x2c, 0xf1, 0x23, 0x4f, 0x5e, 0x0d, 0x72, 0x04, 0xef, 0x6e, 0x04, 0xde,
1215
-	0xce, 0xa3, 0xcc, 0x95, 0xd7, 0x38, 0x0d, 0x8b, 0xdb, 0x14, 0xe6, 0x88, 0x65, 0x47, 0x3c, 0x6b,
1216
-	0x1b, 0xf2, 0x36, 0xa5, 0x31, 0x39, 0xfd, 0x98, 0xcd, 0x52, 0xd9, 0xbd, 0x06, 0x86, 0x5b, 0x4e,
1217
-	0xd9, 0x7c, 0xe3, 0xcf, 0x70, 0xaa, 0x52, 0x1b, 0x9b, 0x28, 0x2e, 0x81, 0xc0, 0xd3, 0x6b, 0x37,
1218
-	0x16, 0xdd, 0xdc, 0x75, 0x0c, 0x0c, 0x16, 0x72, 0x9f, 0x20, 0x8c, 0x06, 0x4b, 0xae, 0x5c, 0x7e,
1219
-	0xc2, 0x89, 0xee, 0xee, 0x3a, 0xcb, 0x04, 0xce, 0x7d, 0xc9, 0x92, 0x90, 0x05, 0xc7, 0x86, 0x56,
1220
-	0x20, 0xee, 0x25, 0x82, 0xfd, 0x00, 0xf6, 0x97, 0x72, 0x2e, 0x8f, 0x94, 0xef, 0x41, 0xf7, 0xd5,
1221
-	0x15, 0xc3, 0x21, 0xab, 0xaa, 0x00, 0x63, 0xc8, 0x8b, 0x19, 0x33, 0x3b, 0x8b, 0x45, 0x06, 0xea,
1222
-	0x4e, 0x8e, 0xb0, 0x53, 0xd8, 0x10, 0xec, 0xbc, 0xc0, 0x79, 0x82, 0xd5, 0x99, 0xc2, 0xd7, 0xb2,
1223
-	0x80, 0xaa, 0xba, 0x80, 0x8a, 0xe5, 0xd2, 0xd5, 0xe5, 0x22, 0x0b, 0xab, 0x9e, 0x17, 0x56, 0x41,
1224
-	0xe9, 0x46, 0x59, 0xe9, 0x1f, 0xaa, 0xd0, 0xf9, 0x8c, 0x65, 0xd7, 0x51, 0x72, 0xc9, 0x1b, 0x25,
1225
-	0x5d, 0x79, 0xa0, 0x3d, 0x80, 0x66, 0xb2, 0x18, 0x5d, 0xdc, 0x64, 0xb2, 0x30, 0xea, 0xd8, 0x97,
1226
-	0x8b, 0x17, 0x1c, 0xb4, 0x1e, 0x02, 0x20, 0xe9, 0xc4, 0xa5, 0x43, 0xac, 0x46, 0xe2, 0x93, 0x85,
1227
-	0x44, 0x58, 0xef, 0x40, 0xcb, 0x59, 0x8c, 0x70, 0x4c, 0x46, 0x09, 0x55, 0x6f, 0xdd, 0x41, 0x51,
1228
-	0xaf, 0x04, 0xcc, 0xf7, 0x22, 0xd1, 0x4b, 0xa2, 0x38, 0x66, 0x9e, 0x32, 0x2d, 0x59, 0xbc, 0x24,
1229
-	0x04, 0xd7, 0x7a, 0xa6, 0xb4, 0x36, 0x48, 0x6b, 0x96, 0x6b, 0x45, 0x52, 0x2c, 0xb5, 0x6e, 0x4a,
1230
-	0xa7, 0x4c, 0xad, 0x67, 0x5a, 0x6b, 0x93, 0xb4, 0x66, 0x86, 0xd6, 0xb3, 0x5c, 0x6b, 0x4b, 0xed,
1231
-	0x95, 0x5a, 0xed, 0xbf, 0x55, 0xa0, 0x89, 0x65, 0x79, 0x9e, 0xba, 0x13, 0x86, 0x07, 0x53, 0x3b,
1232
-	0xc3, 0x12, 0x0e, 0x46, 0x73, 0x0e, 0xca, 0x94, 0x81, 0x40, 0x11, 0xc3, 0x37, 0xa0, 0x13, 0xb3,
1233
-	0x04, 0x8b, 0x55, 0x72, 0x54, 0x71, 0xa0, 0xd4, 0x9d, 0x36, 0xe1, 0x88, 0xe5, 0x00, 0xee, 0x0b,
1234
-	0xda, 0xc8, 0x0f, 0x47, 0x54, 0x3e, 0xb3, 0xc8, 0x63, 0x32, 0x54, 0x7d, 0x41, 0x7a, 0x1d, 0x7e,
1235
-	0xaa, 0x09, 0xd6, 0x77, 0xa0, 0xaf, 0xf9, 0xf9, 0xe1, 0x27, 0xb8, 0x29, 0x74, 0x5b, 0x92, 0xfb,
1236
-	0x5c, 0xa2, 0xf1, 0x2e, 0xd2, 0x3b, 0x9b, 0xe2, 0x67, 0x5a, 0x86, 0xa7, 0xc3, 0xe4, 0xa5, 0x8b,
1237
-	0xcd, 0x86, 0x13, 0x34, 0x16, 0x2d, 0x99, 0x4a, 0x6b, 0x15, 0x68, 0x7d, 0x17, 0xfa, 0x19, 0xf1,
1238
-	0x32, 0x6f, 0xa4, 0x78, 0x28, 0x9b, 0xdb, 0x9a, 0x70, 0x22, 0x99, 0xdf, 0x87, 0x5e, 0xce, 0x2c,
1239
-	0xe6, 0x31, 0xd9, 0xdb, 0xd5, 0xd8, 0x33, 0x3e, 0x95, 0xff, 0x4c, 0xc1, 0xa2, 0xca, 0xf9, 0x50,
1240
-	0x4c, 0x08, 0x23, 0x54, 0xed, 0xc3, 0x2d, 0x35, 0x59, 0x65, 0x30, 0xc4, 0x54, 0xa0, 0xb0, 0xfc,
1241
-	0x04, 0xb6, 0x32, 0x6d, 0xfa, 0x08, 0x1b, 0xc8, 0x95, 0xe3, 0x55, 0x4d, 0xb7, 0xa2, 0x63, 0x4e,
1242
-	0x2f, 0x2b, 0x3a, 0x8a, 0x91, 0xa7, 0x93, 0x5c, 0x2a, 0x24, 0xfb, 0xda, 0x84, 0x13, 0x2a, 0xec,
1243
-	0xf7, 0xa1, 0x85, 0xc7, 0x7c, 0x4a, 0xd6, 0x61, 0x60, 0xc6, 0xf3, 0x24, 0xc1, 0xfe, 0x52, 0x81,
1244
-	0x91, 0xa0, 0x1d, 0x01, 0x50, 0x43, 0x0b, 0xb9, 0x78, 0x29, 0x30, 0x93, 0x4d, 0x00, 0xaf, 0xa8,
1245
-	0x99, 0xbb, 0xd0, 0x49, 0x16, 0x15, 0x85, 0x08, 0x72, 0x05, 0x45, 0x7f, 0xe1, 0xfa, 0xc1, 0x58,
1246
-	0x7e, 0x2b, 0xa2, 0x68, 0x09, 0x72, 0x61, 0x81, 0x18, 0x1f, 0x94, 0x3f, 0x02, 0xec, 0xbf, 0x56,
1247
-	0xa1, 0x4d, 0x1a, 0xc9, 0x34, 0xe4, 0x1a, 0xe3, 0x11, 0xa2, 0x55, 0x0a, 0xc0, 0xfa, 0x40, 0x19,
1248
-	0x52, 0xbc, 0x35, 0xe7, 0xa6, 0x2a, 0xdb, 0xf0, 0x48, 0x4b, 0x71, 0xca, 0x19, 0x71, 0x58, 0xc9,
1249
-	0xdd, 0xe2, 0x4c, 0x64, 0xf0, 0x47, 0xd0, 0xa1, 0x4a, 0x94, 0x7b, 0xea, 0xeb, 0xf6, 0xb4, 0x89,
1250
-	0x8d, 0x76, 0x3d, 0xe3, 0xd7, 0x25, 0xb4, 0x57, 0x9c, 0xe3, 0xed, 0xc3, 0x87, 0x05, 0x76, 0xe1,
1251
-	0xc9, 0x81, 0xf8, 0x7d, 0x15, 0x66, 0x38, 0x50, 0x89, 0x77, 0xf8, 0x1c, 0x20, 0x47, 0xf2, 0xe9,
1252
-	0x74, 0xc9, 0x6e, 0xd4, 0xb5, 0x10, 0x97, 0xdc, 0xf7, 0x2b, 0x37, 0x98, 0xab, 0xa0, 0x12, 0xf0,
1253
-	0xa3, 0xea, 0xf3, 0x8a, 0x3d, 0x86, 0xad, 0x17, 0xfc, 0x74, 0x32, 0xb6, 0x23, 0xf3, 0xcc, 0xfd,
1254
-	0x75, 0x94, 0xa8, 0x40, 0x09, 0x40, 0x60, 0xfd, 0x10, 0xb1, 0x52, 0x84, 0x00, 0xf8, 0xc0, 0x8c,
1255
-	0x62, 0x79, 0x96, 0xe2, 0x2a, 0x57, 0x54, 0x37, 0x14, 0xd9, 0xff, 0xac, 0x03, 0xe4, 0x5a, 0xac,
1256
-	0x53, 0x18, 0xfa, 0xd1, 0x88, 0x1f, 0x05, 0xfe, 0x98, 0xd1, 0xe8, 0x19, 0x25, 0x0c, 0x0b, 0x25,
1257
-	0xf5, 0xaf, 0x98, 0xbc, 0x2d, 0xec, 0x49, 0xbf, 0x4b, 0xc6, 0x39, 0xfb, 0x08, 0xd1, 0x46, 0x31,
1258
-	0xa3, 0x1c, 0xb5, 0xcd, 0xfa, 0x05, 0xec, 0xe6, 0x42, 0x3d, 0x43, 0x5e, 0xf5, 0x56, 0x79, 0xf7,
1259
-	0xb5, 0x3c, 0x2f, 0x97, 0xf5, 0x53, 0x40, 0xf4, 0x08, 0x4f, 0x93, 0x79, 0x41, 0x52, 0xed, 0x56,
1260
-	0x49, 0x7d, 0x3f, 0x7a, 0x2b, 0x76, 0xe4, 0x72, 0xde, 0xc2, 0x03, 0xc3, 0x51, 0xde, 0xe0, 0x86,
1261
-	0xb4, 0xfa, 0xad, 0xd2, 0xf6, 0xb4, 0x5d, 0x7c, 0x04, 0xe4, 0x22, 0x3f, 0x05, 0xa4, 0x8c, 0xae,
1262
-	0x5d, 0x3f, 0x2b, 0xcb, 0xdb, 0xb8, 0xcb, 0xcf, 0xcf, 0x71, 0x53, 0x51, 0x18, 0xf9, 0x39, 0x63,
1263
-	0xc9, 0xa4, 0xe0, 0x67, 0xe3, 0x2e, 0x3f, 0x8f, 0xc5, 0x8e, 0x5c, 0xce, 0x0b, 0x40, 0x64, 0xd9,
1264
-	0x9e, 0xcd, 0x5b, 0xa5, 0x6c, 0xf9, 0x51, 0xd1, 0x96, 0x23, 0xe8, 0xa7, 0x6c, 0x9c, 0xe1, 0xd9,
1265
-	0x61, 0xc8, 0x68, 0xde, 0x2a, 0x63, 0x5b, 0x6e, 0xd0, 0x42, 0xec, 0x2f, 0xa1, 0xf3, 0xf3, 0xf9,
1266
-	0x84, 0x65, 0xc1, 0x85, 0xee, 0xf9, 0xff, 0xf5, 0x98, 0xf9, 0x37, 0x8e, 0x99, 0xa3, 0x49, 0x12,
1267
-	0xcd, 0xe3, 0xc2, 0x7c, 0xa6, 0x1e, 0x5e, 0x9a, 0xcf, 0x82, 0x47, 0xcc, 0x67, 0xe2, 0xfe, 0x18,
1268
-	0x3a, 0x74, 0x35, 0x92, 0x1b, 0x68, 0x0a, 0x59, 0xcb, 0x4d, 0xaf, 0xae, 0x62, 0xb4, 0xed, 0x50,
1269
-	0x5e, 0x33, 0xe5, 0xae, 0xe2, 0x34, 0xca, 0xc3, 0x84, 0xdf, 0x19, 0x79, 0xd7, 0xbd, 0x86, 0xee,
1270
-	0x94, 0x62, 0x23, 0x77, 0x51, 0x01, 0x7e, 0x53, 0x19, 0x97, 0xfb, 0x70, 0x60, 0xc6, 0x90, 0x42,
1271
-	0xdd, 0x99, 0x9a, 0x61, 0xfd, 0x3e, 0x00, 0xff, 0x90, 0x18, 0xa9, 0x41, 0x65, 0xbe, 0x90, 0xe9,
1272
-	0xb3, 0x00, 0xbf, 0x5a, 0xd4, 0x72, 0x78, 0x06, 0xfd, 0x25, 0x99, 0x2b, 0xc6, 0xd4, 0xb7, 0xcd,
1273
-	0x31, 0xd5, 0x3e, 0xbc, 0x2f, 0x45, 0x9a, 0x5b, 0xcd, 0xd9, 0xf5, 0x97, 0x0a, 0x7d, 0x77, 0xe8,
1274
-	0x37, 0x13, 0xeb, 0x39, 0x74, 0x43, 0xba, 0x66, 0xe9, 0x04, 0xd4, 0x0c, 0x41, 0xe6, 0x15, 0xcc,
1275
-	0xe9, 0x84, 0xe6, 0x85, 0x0c, 0x13, 0x31, 0x16, 0x11, 0x58, 0x99, 0x08, 0x23, 0x38, 0xf8, 0x5d,
1276
-	0x6f, 0x64, 0xbb, 0x70, 0xed, 0xab, 0x95, 0xaf, 0x7d, 0xf2, 0xab, 0x7f, 0xdd, 0xab, 0xdd, 0xe1,
1277
-	0x9f, 0x1a, 0x50, 0xfb, 0xe4, 0xe4, 0xb5, 0xe5, 0xc0, 0x56, 0xe9, 0x2d, 0xd2, 0x52, 0x73, 0x7f,
1278
-	0xf5, 0x5b, 0xeb, 0xf0, 0xd1, 0x3a, 0xb2, 0xbc, 0x14, 0xdf, 0xe3, 0x32, 0x4b, 0x37, 0x66, 0x2d,
1279
-	0x73, 0xf5, 0xd7, 0x93, 0x96, 0xb9, 0xee, 0xa2, 0x7d, 0xcf, 0xfa, 0x21, 0x34, 0xe8, 0x75, 0xd2,
1280
-	0xda, 0x91, 0xbc, 0x85, 0x77, 0xcf, 0xe1, 0x6e, 0x09, 0xab, 0x37, 0xbe, 0x81, 0x6e, 0xe1, 0x39,
1281
-	0xd9, 0x7a, 0xa7, 0xa0, 0xab, 0xf8, 0xb8, 0x39, 0x7c, 0x77, 0x35, 0x51, 0x4b, 0x3b, 0x02, 0xc8,
1282
-	0xdf, 0xcb, 0xac, 0x81, 0xe4, 0x5e, 0x7a, 0x24, 0x1d, 0x3e, 0x58, 0x41, 0xd1, 0x42, 0xce, 0x61,
1283
-	0xbb, 0xfc, 0x00, 0x66, 0x95, 0xa2, 0x5a, 0x7e, 0xa4, 0x1a, 0xbe, 0xb7, 0x96, 0x6e, 0x8a, 0x2d,
1284
-	0x3f, 0x7e, 0x69, 0xb1, 0x6b, 0x1e, 0xd5, 0xb4, 0xd8, 0xb5, 0xaf, 0x66, 0xf7, 0xac, 0x5f, 0x42,
1285
-	0xaf, 0xf8, 0x1c, 0x65, 0xa9, 0x20, 0xad, 0x7c, 0x4e, 0x1b, 0x3e, 0x5c, 0x43, 0xd5, 0x02, 0x3f,
1286
-	0x82, 0x0d, 0x7a, 0x67, 0x52, 0xbd, 0x61, 0x3e, 0x4f, 0x0d, 0x77, 0x8a, 0x48, 0xbd, 0xeb, 0x29,
1287
-	0x34, 0xe8, 0x5b, 0x4b, 0x17, 0x40, 0xe1, 0xd3, 0x6b, 0xd8, 0x31, 0xb1, 0xf6, 0xbd, 0xa7, 0x15,
1288
-	0xa5, 0x27, 0x2d, 0xe8, 0x49, 0x57, 0xe9, 0x31, 0x92, 0x73, 0xd1, 0x10, 0xff, 0x8a, 0x3c, 0xfb,
1289
-	0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x4e, 0xb6, 0x6b, 0x22, 0x19, 0x00, 0x00,
1155
+	// 1791 bytes of a gzipped FileDescriptorProto
1156
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xd4, 0x58, 0xd9, 0x8e, 0xdb, 0x54,
1157
+	0x18, 0x9e, 0xec, 0x93, 0x3f, 0x71, 0x66, 0xc6, 0xb3, 0x65, 0xd2, 0x6d, 0x70, 0x0b, 0x1d, 0xa1,
1158
+	0x6a, 0x54, 0x52, 0x96, 0x52, 0x24, 0x44, 0x99, 0x56, 0x14, 0x34, 0x2d, 0xe9, 0x2c, 0x20, 0xae,
1159
+	0x22, 0xc7, 0x3e, 0x4d, 0xcc, 0x38, 0xb6, 0xf1, 0x39, 0x9e, 0xe5, 0x19, 0x10, 0xb7, 0xbc, 0x04,
1160
+	0x12, 0xe2, 0x8a, 0x07, 0xe0, 0x59, 0xb8, 0xe2, 0x29, 0xf8, 0xcf, 0x62, 0xc7, 0x76, 0x96, 0x41,
1161
+	0x42, 0x5c, 0x70, 0x13, 0xe5, 0x9c, 0xf3, 0xaf, 0xdf, 0xbf, 0x9d, 0x63, 0xa8, 0x9b, 0x81, 0xb3,
1162
+	0x1f, 0x84, 0x3e, 0xf3, 0xf5, 0x0a, 0xbb, 0x0a, 0x08, 0x35, 0x06, 0xb0, 0x71, 0x1a, 0xd8, 0x26,
1163
+	0x23, 0xbd, 0xd0, 0xb7, 0x08, 0xa5, 0x47, 0xe4, 0x87, 0x88, 0x50, 0xa6, 0x03, 0x14, 0x1d, 0xbb,
1164
+	0x5d, 0xd8, 0x2d, 0xec, 0xd5, 0xf5, 0x06, 0x94, 0x02, 0x5c, 0x14, 0xc5, 0x02, 0x4f, 0x2c, 0xd7,
1165
+	0xa7, 0xe4, 0x98, 0xd9, 0x8e, 0xd7, 0x2e, 0xe1, 0xde, 0xb2, 0xae, 0x41, 0xe5, 0xc2, 0xb1, 0xd9,
1166
+	0xa8, 0x5d, 0xc6, 0xa5, 0xa6, 0xb7, 0xa0, 0x3a, 0x22, 0xce, 0x70, 0xc4, 0xda, 0x15, 0xbe, 0x36,
1167
+	0xb6, 0x61, 0x33, 0xa7, 0x83, 0x06, 0xbe, 0x47, 0x89, 0xf1, 0x63, 0x01, 0xb6, 0x0e, 0x42, 0x82,
1168
+	0x27, 0x07, 0xbe, 0xc7, 0x4c, 0xc7, 0x23, 0xe1, 0x2c, 0xfd, 0xb8, 0x18, 0x44, 0x9e, 0xed, 0x92,
1169
+	0x9e, 0x89, 0x3a, 0x26, 0x66, 0x8c, 0x88, 0x75, 0x16, 0xf8, 0x8e, 0xc7, 0x84, 0x19, 0x75, 0x6e,
1170
+	0x06, 0x15, 0x56, 0x95, 0xc5, 0x12, 0xcd, 0xc0, 0xa5, 0x1f, 0x49, 0x33, 0xe2, 0x35, 0x09, 0xc3,
1171
+	0x76, 0x35, 0x5e, 0xbb, 0xe6, 0x80, 0xb8, 0xb4, 0x5d, 0xdb, 0x2d, 0xed, 0xd5, 0x8d, 0x4f, 0x61,
1172
+	0x7b, 0xca, 0x18, 0x69, 0xa8, 0x7e, 0x17, 0xea, 0x56, 0xbc, 0x29, 0x8c, 0x6a, 0x74, 0x57, 0xf7,
1173
+	0x05, 0x80, 0xfb, 0x09, 0xb1, 0xf1, 0x18, 0xb4, 0x63, 0x67, 0xe8, 0x99, 0xee, 0xb5, 0x18, 0x72,
1174
+	0x4b, 0x04, 0xa5, 0x30, 0x5c, 0x33, 0x56, 0xa1, 0x15, 0x73, 0x2a, 0x64, 0x7e, 0x2d, 0xc2, 0xda,
1175
+	0x53, 0xdb, 0x5e, 0x10, 0x94, 0x55, 0x58, 0x66, 0x24, 0x1c, 0x3b, 0x5c, 0x4a, 0x51, 0x44, 0x61,
1176
+	0x07, 0xca, 0x11, 0x45, 0xfb, 0x4a, 0xc2, 0xbe, 0x86, 0xb2, 0xef, 0x14, 0xb7, 0xf4, 0x26, 0x94,
1177
+	0xcd, 0x70, 0x48, 0x11, 0x98, 0x92, 0xb4, 0x85, 0x78, 0xe7, 0x88, 0x8a, 0x5a, 0x58, 0x17, 0xb6,
1178
+	0x82, 0x44, 0x59, 0x59, 0xcb, 0xc2, 0xb9, 0x9c, 0x83, 0xb3, 0x9e, 0x83, 0x13, 0xc4, 0x7a, 0x03,
1179
+	0x9a, 0x96, 0x19, 0x98, 0x03, 0xc7, 0x75, 0x98, 0x43, 0x68, 0xbb, 0x21, 0xc4, 0x6f, 0xc3, 0x8a,
1180
+	0x19, 0x04, 0x66, 0x38, 0xf6, 0x43, 0x74, 0xe6, 0x8d, 0xe3, 0x92, 0x76, 0x33, 0x26, 0xa7, 0xc4,
1181
+	0x75, 0xbc, 0xe8, 0xf2, 0x90, 0x07, 0xa1, 0xad, 0x89, 0x5d, 0x24, 0xf7, 0xfc, 0x57, 0xe4, 0xa2,
1182
+	0x17, 0x3a, 0xe7, 0x48, 0x3b, 0x44, 0x39, 0x2d, 0xe1, 0xdc, 0x6d, 0xa8, 0x85, 0xae, 0x33, 0x76,
1183
+	0x18, 0x6d, 0xaf, 0xa0, 0xe0, 0x46, 0x57, 0x53, 0xfe, 0x1d, 0x89, 0x5d, 0xa3, 0x0b, 0x55, 0xf9,
1184
+	0x8f, 0xfb, 0xca, 0x4f, 0x14, 0x4c, 0xb8, 0xa2, 0xfe, 0x1b, 0x26, 0x20, 0x2a, 0xf3, 0xd5, 0xc8,
1185
+	0x0c, 0x6d, 0x01, 0x51, 0x19, 0x03, 0x56, 0x16, 0xe8, 0xa0, 0xd7, 0x91, 0xc2, 0x55, 0xe3, 0x8b,
1186
+	0xa1, 0x0a, 0x94, 0xa6, 0x6f, 0x41, 0xcb, 0xb4, 0x6d, 0xf4, 0xc7, 0x47, 0x98, 0xbf, 0x70, 0x6c,
1187
+	0x8a, 0x9c, 0x25, 0x0c, 0xd8, 0x06, 0xe8, 0xe9, 0xe8, 0xa8, 0xa0, 0x1d, 0x26, 0x09, 0x94, 0x64,
1188
+	0xe6, 0xac, 0xc8, 0xbd, 0x9d, 0x49, 0xdd, 0xa2, 0x88, 0xd6, 0x5a, 0x9c, 0x4d, 0xc9, 0x81, 0xd1,
1189
+	0x81, 0xf6, 0xb4, 0x34, 0xa5, 0xe9, 0x11, 0x6c, 0x3f, 0x23, 0x2e, 0xb9, 0x4e, 0x13, 0xba, 0xeb,
1190
+	0x99, 0x63, 0x22, 0xb3, 0x8e, 0x0b, 0x9c, 0x66, 0x52, 0x02, 0xef, 0xc2, 0xe6, 0xa1, 0x43, 0xd9,
1191
+	0x42, 0x71, 0xc6, 0x77, 0x00, 0x13, 0x82, 0x44, 0x78, 0xa2, 0x8a, 0x5c, 0x3a, 0x4c, 0xa5, 0x22,
1192
+	0x82, 0xc8, 0xac, 0x40, 0x75, 0x87, 0x75, 0x68, 0x44, 0x9e, 0x73, 0x79, 0xec, 0x5b, 0x67, 0x84,
1193
+	0x51, 0x51, 0x9c, 0xa2, 0x65, 0xd0, 0x11, 0x71, 0x5d, 0x51, 0x9b, 0xcb, 0xc6, 0x67, 0xb0, 0x95,
1194
+	0xd7, 0xaf, 0x4a, 0xef, 0x1d, 0x68, 0x4c, 0xd0, 0xa2, 0xa8, 0xad, 0x34, 0x0f, 0xae, 0xe6, 0x31,
1195
+	0x43, 0xb4, 0x66, 0x19, 0xbe, 0x0b, 0xad, 0xa4, 0x4c, 0x05, 0x91, 0x4c, 0x5e, 0x93, 0x45, 0x54,
1196
+	0x51, 0xfc, 0x52, 0x84, 0x9a, 0x0a, 0x67, 0x5c, 0x04, 0xff, 0x61, 0x99, 0xad, 0x41, 0x9d, 0x5e,
1197
+	0x51, 0x46, 0xc6, 0x3d, 0x55, 0x6c, 0xda, 0xff, 0xab, 0xd8, 0x7e, 0x2a, 0x40, 0x3d, 0x01, 0xf4,
1198
+	0xda, 0x56, 0xfd, 0x16, 0xd4, 0x03, 0x09, 0x2d, 0x91, 0xf5, 0xd3, 0xe8, 0xb6, 0x94, 0xbc, 0x18,
1199
+	0xf2, 0x49, 0x38, 0xca, 0xb9, 0xd6, 0x2c, 0xd1, 0x43, 0x60, 0x03, 0x5e, 0x7d, 0x55, 0x5e, 0x7d,
1200
+	0xfa, 0x0a, 0x9a, 0x17, 0x79, 0xcc, 0xc1, 0xe4, 0x13, 0x9d, 0xca, 0xb8, 0x0f, 0xb5, 0x97, 0xa6,
1201
+	0x35, 0x42, 0x6b, 0x38, 0xa5, 0x15, 0xa8, 0xb0, 0x8a, 0x49, 0x34, 0x26, 0x88, 0xc6, 0x95, 0xac,
1202
+	0x7f, 0xe3, 0x1b, 0x6c, 0xd1, 0x32, 0x49, 0x54, 0x76, 0xdd, 0xc3, 0x5a, 0x8c, 0x1d, 0x89, 0x93,
1203
+	0x6b, 0xaa, 0xb3, 0xeb, 0x77, 0xa0, 0x36, 0x96, 0xf2, 0x55, 0xb9, 0xc6, 0xf6, 0x2b, 0xad, 0xc6,
1204
+	0x19, 0x6c, 0xc9, 0x09, 0xb7, 0x70, 0x8e, 0x4d, 0xcd, 0x00, 0xe9, 0xb2, 0x1c, 0x5e, 0x7b, 0x50,
1205
+	0x0f, 0x09, 0xf5, 0xa3, 0x10, 0x01, 0x11, 0x28, 0x34, 0xba, 0x9b, 0x71, 0x6e, 0x09, 0xd1, 0x47,
1206
+	0xea, 0xd4, 0xf8, 0xb3, 0x00, 0xad, 0xec, 0x16, 0x2f, 0xb1, 0x81, 0x7b, 0xe6, 0xf8, 0xdf, 0xca,
1207
+	0xb1, 0x2b, 0x9d, 0xc7, 0x2c, 0x43, 0x28, 0x8e, 0xb1, 0xe1, 0xa1, 0xc4, 0x62, 0x6a, 0xab, 0x47,
1208
+	0x42, 0xc7, 0x97, 0x4d, 0x50, 0xe3, 0x09, 0x8e, 0x5b, 0xaf, 0x23, 0x9f, 0x99, 0x6a, 0x7c, 0xf3,
1209
+	0xd1, 0x8a, 0x10, 0x12, 0x76, 0xc0, 0x81, 0xac, 0x24, 0xe3, 0x56, 0xec, 0xbd, 0x24, 0x63, 0xaa,
1210
+	0xb2, 0x18, 0x95, 0x4a, 0x70, 0x0f, 0x79, 0x52, 0xa8, 0x3c, 0x46, 0x42, 0xb9, 0x79, 0x7c, 0x61,
1211
+	0x06, 0x22, 0x99, 0x35, 0xac, 0x98, 0x35, 0xb9, 0x87, 0xf6, 0x92, 0xf0, 0xdc, 0xe4, 0xed, 0x54,
1212
+	0xe4, 0xb5, 0x38, 0x3a, 0x23, 0xa1, 0x47, 0xdc, 0x97, 0x29, 0x49, 0x20, 0x86, 0xe2, 0x0e, 0x6c,
1213
+	0x4f, 0x61, 0xaa, 0xba, 0x95, 0x01, 0xda, 0xf3, 0x73, 0x82, 0xed, 0x20, 0x46, 0x19, 0xfd, 0xe2,
1214
+	0xe9, 0x80, 0x80, 0x8e, 0x03, 0xe1, 0x7d, 0xd9, 0x78, 0x0d, 0x15, 0x41, 0x93, 0x9b, 0x07, 0x32,
1215
+	0x1e, 0xb3, 0x42, 0xa0, 0xc5, 0xf1, 0x29, 0xc7, 0x35, 0x3a, 0x11, 0x59, 0x11, 0x22, 0x7f, 0x2f,
1216
+	0x40, 0xf3, 0x15, 0x61, 0x17, 0x7e, 0x78, 0xc6, 0xb3, 0x88, 0xe6, 0x5a, 0x20, 0x22, 0x19, 0x5e,
1217
+	0xf6, 0x07, 0x57, 0x4c, 0xc1, 0x5d, 0xe6, 0x60, 0xe0, 0x4e, 0xcf, 0x94, 0x8d, 0x4f, 0x0c, 0x1d,
1218
+	0x2e, 0xf7, 0xe8, 0xb2, 0x8f, 0x95, 0xec, 0x87, 0x32, 0xce, 0x82, 0x0c, 0xb7, 0xec, 0xd0, 0x0f,
1219
+	0x02, 0x62, 0x4b, 0x5d, 0x5c, 0xd8, 0x49, 0x2c, 0xac, 0x1a, 0x53, 0xe1, 0x4e, 0xa0, 0x84, 0xd5,
1220
+	0x62, 0x61, 0x27, 0x89, 0xb0, 0xe5, 0x14, 0x59, 0x2c, 0xac, 0x2e, 0x0c, 0x1f, 0xc3, 0x32, 0xc6,
1221
+	0xf2, 0x94, 0x9a, 0x43, 0x91, 0x2a, 0x0c, 0x63, 0xed, 0xf6, 0x23, 0xbe, 0x94, 0x60, 0xf1, 0xfe,
1222
+	0x10, 0x90, 0x10, 0x23, 0xac, 0x76, 0x8b, 0x58, 0x08, 0x65, 0xfd, 0x06, 0xac, 0x8b, 0x65, 0xdf,
1223
+	0xf1, 0xfa, 0x32, 0x4a, 0x63, 0xdf, 0x26, 0xca, 0x0f, 0x8c, 0x5c, 0x72, 0xc8, 0xfb, 0xa1, 0x38,
1224
+	0x12, 0xfe, 0x18, 0x27, 0xd0, 0x3a, 0x19, 0xe1, 0x25, 0x93, 0x61, 0xc7, 0x19, 0x3e, 0x33, 0x99,
1225
+	0xc9, 0x2b, 0x36, 0x10, 0x49, 0x47, 0x95, 0x42, 0xe4, 0x66, 0x92, 0x84, 0xd8, 0xfd, 0xf8, 0x48,
1226
+	0x82, 0x86, 0x33, 0x77, 0x72, 0x24, 0x8a, 0x5c, 0x4e, 0x6b, 0x26, 0x9c, 0x90, 0xc0, 0x1b, 0x22,
1227
+	0x8f, 0x53, 0x2e, 0x34, 0xba, 0x2b, 0x71, 0xd5, 0xc6, 0x8e, 0xee, 0xc3, 0x0a, 0x4b, 0xac, 0xe8,
1228
+	0x63, 0x22, 0x99, 0xaa, 0x78, 0xe3, 0xb2, 0xca, 0xd9, 0xc8, 0x7b, 0xa4, 0x68, 0xca, 0x4a, 0xac,
1229
+	0xd4, 0x7a, 0x13, 0xea, 0xd8, 0xa4, 0xa9, 0x54, 0x8b, 0x6e, 0x58, 0x51, 0x18, 0x62, 0x56, 0xa9,
1230
+	0x24, 0x7b, 0x05, 0x20, 0x13, 0x57, 0x48, 0xc0, 0x1e, 0x9e, 0x06, 0x15, 0x83, 0x33, 0x36, 0x2f,
1231
+	0x13, 0x44, 0xf9, 0x16, 0x0a, 0x78, 0x63, 0x3a, 0xae, 0xa5, 0xae, 0xac, 0x65, 0xce, 0x22, 0x5a,
1232
+	0xaa, 0x42, 0xee, 0xaf, 0x02, 0x34, 0xa4, 0x40, 0xa9, 0x10, 0x8f, 0x2d, 0x6c, 0x31, 0xb1, 0xc4,
1233
+	0xdd, 0x58, 0x41, 0xf6, 0xd2, 0x90, 0x32, 0x01, 0xef, 0x16, 0x14, 0x0b, 0x2f, 0xe5, 0xc2, 0x4c,
1234
+	0xb2, 0xfb, 0xd0, 0x94, 0x01, 0x55, 0x84, 0xe5, 0x79, 0x84, 0x0f, 0xf8, 0x58, 0x42, 0x4b, 0x44,
1235
+	0x1f, 0x6e, 0x74, 0x6f, 0x65, 0x28, 0x84, 0x8d, 0xfb, 0xe2, 0xf7, 0xb9, 0xc7, 0xc2, 0xab, 0xce,
1236
+	0x03, 0x80, 0xc9, 0x8a, 0x97, 0xd3, 0x19, 0xb9, 0x52, 0xc5, 0x81, 0x9e, 0x9c, 0x9b, 0x6e, 0xa4,
1237
+	0x80, 0x78, 0x52, 0x7c, 0x5c, 0x30, 0xbe, 0x82, 0x95, 0xcf, 0x79, 0xd3, 0x4a, 0xb1, 0x20, 0xd5,
1238
+	0xd8, 0xfc, 0xde, 0x0f, 0x95, 0xbf, 0x7c, 0xe9, 0x78, 0xb8, 0x94, 0xe8, 0x61, 0xed, 0xfa, 0xc1,
1239
+	0xe4, 0xae, 0x2f, 0xe5, 0x49, 0xe0, 0xfe, 0x28, 0x01, 0x4c, 0x84, 0xe9, 0x4f, 0xa0, 0xe3, 0xf8,
1240
+	0x7d, 0xde, 0x6c, 0x1c, 0x8b, 0xc8, 0x2a, 0xea, 0x87, 0x04, 0x63, 0x47, 0x9d, 0x73, 0xa2, 0xda,
1241
+	0xfc, 0x96, 0xf2, 0x25, 0x6f, 0xc3, 0x07, 0xb0, 0x39, 0xe1, 0xb5, 0x53, 0x6c, 0xc5, 0x85, 0x6c,
1242
+	0x8f, 0x60, 0x1d, 0xd9, 0xb0, 0x1d, 0x45, 0x19, 0xa6, 0xd2, 0x42, 0xa6, 0x8f, 0x61, 0x27, 0x65,
1243
+	0x27, 0x4f, 0xf6, 0x14, 0x6b, 0x79, 0x21, 0xeb, 0x87, 0xb0, 0x85, 0xac, 0x17, 0xa6, 0xc3, 0xf2,
1244
+	0x7c, 0x95, 0x7f, 0x60, 0xe7, 0x98, 0x84, 0xc3, 0x8c, 0x9d, 0xd5, 0x85, 0x4c, 0xef, 0xc1, 0x1a,
1245
+	0x32, 0xe5, 0xf4, 0xd4, 0xae, 0x63, 0xa1, 0xc4, 0x62, 0xd8, 0x98, 0x52, 0x2c, 0xcb, 0x8b, 0x58,
1246
+	0x8c, 0x1e, 0x34, 0x5f, 0x44, 0x43, 0xc2, 0xdc, 0x41, 0x92, 0xfd, 0xff, 0xb2, 0x9e, 0x7e, 0x2b,
1247
+	0x42, 0xe3, 0x60, 0x18, 0xfa, 0x51, 0x90, 0xe9, 0x1b, 0x32, 0xa5, 0xa7, 0xfa, 0x86, 0xa4, 0xd9,
1248
+	0x83, 0xa6, 0x9c, 0x56, 0x8a, 0x4c, 0xd6, 0x9a, 0x3e, 0x9d, 0xf9, 0xfc, 0x6a, 0x2a, 0xa6, 0xae,
1249
+	0x22, 0xcc, 0x56, 0x5b, 0x2a, 0x1b, 0x3f, 0x01, 0x6d, 0x24, 0xfd, 0x52, 0x94, 0x32, 0xb2, 0xf7,
1250
+	0x62, 0xcd, 0x13, 0x03, 0xf7, 0xd3, 0xfe, 0x4b, 0x1c, 0xf1, 0x86, 0xc2, 0xaf, 0x3e, 0xfd, 0xb8,
1251
+	0x0c, 0xd3, 0x6f, 0xcf, 0xa4, 0x33, 0x75, 0x5e, 0xc0, 0xda, 0x34, 0x6b, 0xa6, 0x00, 0x8d, 0x74,
1252
+	0x01, 0x36, 0xba, 0xeb, 0x4a, 0x44, 0x9a, 0x4b, 0x54, 0xe5, 0xa5, 0xbc, 0x22, 0x25, 0xaf, 0x1a,
1253
+	0xfd, 0x5d, 0xd0, 0x3c, 0x39, 0xf4, 0x12, 0xdc, 0x4a, 0x29, 0x01, 0x99, 0x81, 0x88, 0xd8, 0x59,
1254
+	0xc2, 0x9b, 0x99, 0xd8, 0xa5, 0x23, 0x91, 0x19, 0xaf, 0xb2, 0xd5, 0xaa, 0x1b, 0xfc, 0xac, 0xd7,
1255
+	0x6e, 0xf7, 0xe7, 0x2a, 0x94, 0x9e, 0xf6, 0xbe, 0xd4, 0x8f, 0x60, 0x25, 0xf7, 0x46, 0xd7, 0xe3,
1256
+	0x9e, 0x34, 0xfb, 0x43, 0x42, 0xe7, 0xf6, 0xbc, 0x63, 0x75, 0x97, 0x58, 0xe2, 0x32, 0x73, 0x17,
1257
+	0x8d, 0x44, 0xe6, 0xec, 0x4b, 0x5d, 0x22, 0x73, 0xde, 0xfd, 0x64, 0x49, 0xff, 0x08, 0xaa, 0xf2,
1258
+	0x45, 0xaf, 0x6f, 0x28, 0xda, 0xcc, 0xa7, 0x81, 0xce, 0x66, 0x6e, 0x37, 0x61, 0x3c, 0x04, 0x2d,
1259
+	0xf3, 0xad, 0x44, 0xbf, 0x91, 0xd1, 0x95, 0xfd, 0x20, 0xd0, 0xb9, 0x39, 0xfb, 0x30, 0x91, 0x76,
1260
+	0x00, 0x30, 0x79, 0xa7, 0xea, 0x6d, 0x45, 0x3d, 0xf5, 0x61, 0xa1, 0xb3, 0x33, 0xe3, 0x24, 0x11,
1261
+	0x72, 0x0a, 0xab, 0xf9, 0x87, 0xa8, 0x9e, 0x43, 0x35, 0xff, 0x6c, 0xec, 0xdc, 0x99, 0x7b, 0x9e,
1262
+	0x16, 0x9b, 0x7f, 0x8e, 0x26, 0x62, 0xe7, 0x3c, 0x6e, 0x13, 0xb1, 0x73, 0xdf, 0xb1, 0x4b, 0xfa,
1263
+	0xd7, 0xd0, 0xca, 0xbe, 0x24, 0xf5, 0x18, 0xa4, 0x99, 0x0f, 0xdc, 0xce, 0xad, 0x39, 0xa7, 0x89,
1264
+	0xc0, 0xf7, 0xa1, 0x22, 0xdf, 0x8c, 0x71, 0xc6, 0xa7, 0x9f, 0x99, 0x9d, 0x8d, 0xec, 0x66, 0xc2,
1265
+	0xf5, 0x10, 0xaa, 0xf2, 0x8a, 0x9a, 0x24, 0x40, 0xe6, 0xc6, 0xda, 0x69, 0xa6, 0x77, 0x8d, 0xa5,
1266
+	0x87, 0x85, 0x58, 0x0f, 0xcd, 0xe8, 0xa1, 0xb3, 0xf4, 0xa4, 0x82, 0x33, 0xa8, 0x8a, 0xaf, 0x79,
1267
+	0x8f, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xfa, 0x78, 0x6c, 0xcd, 0xda, 0x13, 0x00, 0x00,
1290 1268
 }
... ...
@@ -6,7 +6,7 @@ service API {
6 6
 	rpc CreateContainer(CreateContainerRequest) returns (CreateContainerResponse) {}
7 7
 	rpc UpdateContainer(UpdateContainerRequest) returns (UpdateContainerResponse) {}
8 8
 	rpc Signal(SignalRequest) returns (SignalResponse) {}
9
-    rpc UpdateProcess(UpdateProcessRequest) returns (UpdateProcessResponse) {}
9
+	rpc UpdateProcess(UpdateProcessRequest) returns (UpdateProcessResponse) {}
10 10
 	rpc AddProcess(AddProcessRequest) returns (AddProcessResponse) {}
11 11
 	rpc CreateCheckpoint(CreateCheckpointRequest) returns (CreateCheckpointResponse) {}
12 12
 	rpc DeleteCheckpoint(DeleteCheckpointRequest) returns (DeleteCheckpointResponse) {}
... ...
@@ -17,11 +17,11 @@ service API {
17 17
 }
18 18
 
19 19
 message UpdateProcessRequest {
20
-    string id = 1;
21
-    string pid = 2;
22
-    bool closeStdin = 3; // Close stdin of the container
23
-    uint32 width = 4;
24
-    uint32 height = 5;
20
+	string id = 1;
21
+	string pid = 2;
22
+	bool closeStdin = 3; // Close stdin of the container
23
+	uint32 width = 4;
24
+	uint32 height = 5;
25 25
 }
26 26
 
27 27
 message UpdateProcessResponse {
... ...
@@ -31,14 +31,14 @@ message CreateContainerRequest {
31 31
 	string id = 1; // ID of container
32 32
 	string bundlePath = 2; // path to OCI bundle
33 33
 	string checkpoint = 3; // checkpoint name if you want to create immediate checkpoint (optional)
34
-    string stdin = 4; // path to the file where stdin will be read (optional)
34
+	string stdin = 4; // path to the file where stdin will be read (optional)
35 35
 	string stdout = 5; // path to file where stdout will be written (optional)
36 36
 	string stderr = 6; // path to file where stderr will be written (optional)
37
-    repeated string labels = 7;
37
+	repeated string labels = 7;
38 38
 }
39 39
 
40 40
 message CreateContainerResponse {
41
-    Container container = 1;
41
+	Container container = 1;
42 42
 }
43 43
 
44 44
 message SignalRequest {
... ...
@@ -57,14 +57,21 @@ message AddProcessRequest {
57 57
 	repeated string args = 4; // Arguments for process, first is binary path itself
58 58
 	repeated string env = 5; // List of environment variables for process
59 59
 	string cwd = 6; // Workind directory of process
60
-    string pid = 7; // Process ID
61
-    string stdin = 8; // path to the file where stdin will be read (optional)
60
+	string pid = 7; // Process ID
61
+	string stdin = 8; // path to the file where stdin will be read (optional)
62 62
 	string stdout = 9; // path to file where stdout will be written (optional)
63 63
 	string stderr = 10; // path to file where stderr will be written (optional)
64
-    repeated string capabilities = 11;
65
-    string apparmorProfile = 12;
66
-    string selinuxLabel = 13;
67
-    bool noNewPrivileges = 14;
64
+	repeated string capabilities = 11;
65
+	string apparmorProfile = 12;
66
+	string selinuxLabel = 13;
67
+	bool noNewPrivileges = 14;
68
+	repeated Rlimit rlimits = 15;
69
+}
70
+
71
+message Rlimit {
72
+	string type = 1;
73
+	uint64 soft = 2;
74
+	uint64 hard = 3;
68 75
 }
69 76
 
70 77
 message User {
... ...
@@ -109,7 +116,7 @@ message ListCheckpointResponse {
109 109
 }
110 110
 
111 111
 message StateRequest {
112
-    string id = 1; // container id for a single container
112
+	string id = 1; // container id for a single container
113 113
 }
114 114
 
115 115
 message ContainerState {
... ...
@@ -123,14 +130,15 @@ message Process {
123 123
 	repeated string args = 4; // Arguments for process, first is binary path itself
124 124
 	repeated string env = 5; // List of environment variables for process
125 125
 	string cwd = 6; // Workind directory of process
126
-    uint32 systemPid = 7;
127
-    string stdin = 8; // path to the file where stdin will be read (optional)
126
+	uint32 systemPid = 7;
127
+	string stdin = 8; // path to the file where stdin will be read (optional)
128 128
 	string stdout = 9; // path to file where stdout will be written (optional)
129 129
 	string stderr = 10; // path to file where stderr will be written (optional)
130
-repeated string capabilities = 11;
131
-    string apparmorProfile = 12;
132
-    string selinuxLabel = 13;
133
-    bool noNewPrivileges = 14;
130
+	repeated string capabilities = 11;
131
+	string apparmorProfile = 12;
132
+	string selinuxLabel = 13;
133
+	bool noNewPrivileges = 14;
134
+	repeated Rlimit rlimits = 15;
134 135
 }
135 136
 
136 137
 message Container {
... ...
@@ -138,9 +146,9 @@ message Container {
138 138
 	string bundlePath = 2; // Path to OCI bundle
139 139
 	repeated Process processes = 3; // List of processes which run in container
140 140
 	string status = 4; // Container status ("running", "paused", etc.)
141
-    repeated string labels = 5;
142
-    repeated uint32 pids = 6;
143
-    string runtime = 7; // runtime used to execute the container
141
+	repeated string labels = 5;
142
+	repeated uint32 pids = 6;
143
+	string runtime = 7; // runtime used to execute the container
144 144
 }
145 145
 
146 146
 // Machine is information about machine on which containerd is run
... ...
@@ -157,29 +165,29 @@ message StateResponse {
157 157
 
158 158
 message UpdateContainerRequest {
159 159
 	string id = 1; // ID of container
160
-    string pid = 2;
160
+	string pid = 2;
161 161
 	string status = 3; // Status to whcih containerd will try to change
162
-    UpdateResource resources =4;
162
+	UpdateResource resources =4;
163 163
 }
164 164
 
165 165
 message UpdateResource {
166
-    uint32 blkioWeight =1;
167
-    uint32 cpuShares = 2;
168
-    uint32 cpuPeriod = 3;
169
-    uint32 cpuQuota = 4;
170
-    string cpusetCpus = 5;
171
-    string cpusetMems = 6;
172
-    uint32 memoryLimit = 7;
173
-    uint32 memorySwap = 8;
174
-    uint32 memoryReservation = 9;
175
-    uint32 kernelMemoryLimit = 10;
166
+	uint32 blkioWeight =1;
167
+	uint32 cpuShares = 2;
168
+	uint32 cpuPeriod = 3;
169
+	uint32 cpuQuota = 4;
170
+	string cpusetCpus = 5;
171
+	string cpusetMems = 6;
172
+	uint32 memoryLimit = 7;
173
+	uint32 memorySwap = 8;
174
+	uint32 memoryReservation = 9;
175
+	uint32 kernelMemoryLimit = 10;
176 176
 }
177 177
 
178 178
 message UpdateContainerResponse {
179 179
 }
180 180
 
181 181
 message EventsRequest {
182
-    uint64 timestamp = 1;
182
+	uint64 timestamp = 1;
183 183
 }
184 184
 
185 185
 message Event {
... ...
@@ -187,7 +195,7 @@ message Event {
187 187
 	string id = 2;
188 188
 	uint32 status = 3;
189 189
 	string pid = 4;
190
-    uint64 timestamp = 5;
190
+	uint64 timestamp = 5;
191 191
 }
192 192
 
193 193
 message NetworkStats {