Skip to content

Commit

Permalink
Merge pull request containerd#3518 from crosbymichael/processors
Browse files Browse the repository at this point in the history
Add docs for stream processors
  • Loading branch information
crosbymichael committed Aug 9, 2019
2 parents f06e605 + 0dadef1 commit ea13c9f
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions docs/stream_processors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Stream Processors

## Processor API

Processors are a binary API that works off of content streams.

The incoming content stream will be provided to the binary via `STDIN`
and the stream processor is expected to output the processed stream on
`STDOUT`. If errors are encountered, errors MUST be returned via `STDERR`
with a non-zero exit status.

Additional information can be provided to stream processors via a payload.
Payloads are marshaled as `protobuf.Any` types and can wrap any type of
serialized data structure.

On Unix systems, the payload, if available, is provided on `fd 3` for the process.

On Windows systems, the payload, if available, is provided via a named pipe with the
pipe's path set as the value of the environment variable `STREAM_PROCESSOR_PIPE`.

## Configuration

To configure stream processors for containerd, entries in the config file need to be made.
The `stream_processors` field is an array so that users can chain together multiple processors
to mutate content streams.

Processor Fields:

* `id` - ID of the processor, used for passing a specific payload to the processor.
* `accepts` - Accepted media-types for the processor that it can handle.
* `returns` - The media-type that the processor returns.
* `path` - Path to the processor binary.
* `args` - Arguments passed to the processor binary.

```toml
[[stream_processors]]
id = "io.containerd.processor.v1.pigz"
accepts = ["application/vnd.docker.image.rootfs.diff.tar.gzip"]
returns = "application/vnd.oci.image.layer.v1.tar"
path = "unpigz"
args = ["-d", "-c"]
```

0 comments on commit ea13c9f

Please sign in to comment.