Documentation ¶
Index ¶
- Constants
- func NewCRILogger(path string, w io.Writer, stream StreamType, maxLen int) (io.WriteCloser, <-chan struct{})
- func NewDiscardLogger() io.WriteCloser
- type AttachOptions
- type ContainerIO
- func (c *ContainerIO) AddOutput(name string, stdout, stderr io.WriteCloser) (io.WriteCloser, io.WriteCloser)
- func (c *ContainerIO) Attach(opts AttachOptions)
- func (c *ContainerIO) Cancel()
- func (c *ContainerIO) Close() error
- func (c *ContainerIO) Config() cio.Config
- func (c *ContainerIO) Pipe()
- func (c *ContainerIO) Wait()
- type ContainerIOOpts
- type ExecIO
- type StreamType
Constants ¶
const ( // Stdin stream type. Stdin StreamType = "stdin" // Stdout stream type. Stdout = StreamType(runtime.Stdout) // Stderr stream type. Stderr = StreamType(runtime.Stderr) )
Variables ¶
This section is empty.
Functions ¶
func NewCRILogger ¶
func NewCRILogger(path string, w io.Writer, stream StreamType, maxLen int) (io.WriteCloser, <-chan struct{})
NewCRILogger returns a write closer which redirect container log into log file, and decorate the log line into CRI defined format. It also returns a channel which indicates whether the logger is stopped. maxLen is the max length limit of a line. A line longer than the limit will be cut into multiple lines.
func NewDiscardLogger ¶
func NewDiscardLogger() io.WriteCloser
NewDiscardLogger creates logger which discards all the input.
Types ¶
type AttachOptions ¶
type AttachOptions struct { Stdin io.Reader Stdout io.WriteCloser Stderr io.WriteCloser Tty bool StdinOnce bool // CloseStdin is the function to close container stdin. CloseStdin func() error }
AttachOptions specifies how to attach to a container.
type ContainerIO ¶
type ContainerIO struct {
// contains filtered or unexported fields
}
ContainerIO holds the container io.
func NewContainerIO ¶
func NewContainerIO(id string, opts ...ContainerIOOpts) (_ *ContainerIO, err error)
NewContainerIO creates container io.
func (*ContainerIO) AddOutput ¶
func (c *ContainerIO) AddOutput(name string, stdout, stderr io.WriteCloser) (io.WriteCloser, io.WriteCloser)
AddOutput adds new write closers to the container stream, and returns existing write closers if there are any.
func (*ContainerIO) Attach ¶
func (c *ContainerIO) Attach(opts AttachOptions)
Attach attaches container stdio. TODO(random-liu): Use pools.Copy in docker to reduce memory usage?
func (*ContainerIO) Pipe ¶
func (c *ContainerIO) Pipe()
Pipe creates container fifos and pipe container output to output stream.
type ContainerIOOpts ¶
type ContainerIOOpts func(*ContainerIO) error
ContainerIOOpts sets specific information to newly created ContainerIO.
func WithFIFOs ¶
func WithFIFOs(fifos *cio.FIFOSet) ContainerIOOpts
WithFIFOs specifies existing fifos for the container io.
func WithNewFIFOs ¶
func WithNewFIFOs(root string, tty, stdin bool) ContainerIOOpts
WithNewFIFOs creates new fifos for the container io.
type ExecIO ¶
type ExecIO struct {
// contains filtered or unexported fields
}
ExecIO holds the exec io.
func (*ExecIO) Attach ¶
func (e *ExecIO) Attach(opts AttachOptions) <-chan struct{}
Attach attaches exec stdio. The logic is similar with container io attach.