Documentation ¶
Overview ¶
Package restart enables containers to have labels added and monitored to keep the container's task running if it is killed.
Setting the StatusLabel on a container instructs the restart monitor to keep that container's task in a specific status. Setting the LogPathLabel on a container will setup the task's IO to be redirected to a log file when running a task within the restart manager.
The restart labels can be cleared off of a container using the WithNoRestarts Opt.
The restart monitor has one option in the containerd config under the [plugins.restart] section. `interval = "10s" sets the reconcile interval that the restart monitor checks for task state and reconciles the desired status for that task.
Index ¶
- Constants
- func Reconcile(status containerd.Status, labels map[string]string) bool
- func WithBinaryLogURI(binary string, args map[string]string) func(context.Context, *containerd.Client, *containers.Container) error
- func WithFileLogURI(path string) func(context.Context, *containerd.Client, *containers.Container) error
- func WithLogPath(path string) func(context.Context, *containerd.Client, *containers.Container) error
- func WithLogURI(uri *url.URL) func(context.Context, *containerd.Client, *containers.Container) error
- func WithLogURIString(uriString string) func(context.Context, *containerd.Client, *containers.Container) error
- func WithNoRestarts(_ context.Context, _ *containerd.Client, c *containers.Container) error
- func WithPolicy(policy *Policy) func(context.Context, *containerd.Client, *containers.Container) error
- func WithStatus(status containerd.ProcessStatus) func(context.Context, *containerd.Client, *containers.Container) error
- type Policy
Constants ¶
const ( // StatusLabel sets the restart status label for a container StatusLabel = "containerd.io/restart.status" // LogURILabel sets the restart log uri label for a container LogURILabel = "containerd.io/restart.loguri" // PolicyLabel sets the restart policy label for a container PolicyLabel = "containerd.io/restart.policy" // CountLabel sets the restart count label for a container CountLabel = "containerd.io/restart.count" // ExplicitlyStoppedLabel sets the restart explicitly stopped label for a container ExplicitlyStoppedLabel = "containerd.io/restart.explicitly-stopped" // LogPathLabel sets the restart log path label for a container // // Deprecated(in release 1.5): use LogURILabel LogPathLabel = "containerd.io/restart.logpath" )
Variables ¶
This section is empty.
Functions ¶
func Reconcile ¶ added in v1.7.0
func Reconcile(status containerd.Status, labels map[string]string) bool
Reconcile reconciles the restart policy of a container.
func WithBinaryLogURI ¶ added in v1.4.0
func WithBinaryLogURI(binary string, args map[string]string) func(context.Context, *containerd.Client, *containers.Container) error
WithBinaryLogURI sets the binary-type log uri for a container.
Deprecated(in release 1.5): use WithLogURI
func WithFileLogURI ¶ added in v1.4.0
func WithFileLogURI(path string) func(context.Context, *containerd.Client, *containers.Container) error
WithFileLogURI sets the file-type log uri for a container.
Deprecated(in release 1.5): use WithLogURI
func WithLogPath ¶
func WithLogPath(path string) func(context.Context, *containerd.Client, *containers.Container) error
WithLogPath sets the log path for a container
Deprecated(in release 1.5): use WithLogURI with "file://<path>" URI.
func WithLogURI ¶ added in v1.5.0
func WithLogURI(uri *url.URL) func(context.Context, *containerd.Client, *containers.Container) error
WithLogURI sets the specified log uri for a container.
func WithLogURIString ¶ added in v1.5.0
func WithLogURIString(uriString string) func(context.Context, *containerd.Client, *containers.Container) error
WithLogURIString sets the specified log uri string for a container.
func WithNoRestarts ¶
func WithNoRestarts(_ context.Context, _ *containerd.Client, c *containers.Container) error
WithNoRestarts clears any restart information from the container
func WithPolicy ¶ added in v1.7.0
func WithPolicy(policy *Policy) func(context.Context, *containerd.Client, *containers.Container) error
WithPolicy sets the restart policy for a container
func WithStatus ¶
func WithStatus(status containerd.ProcessStatus) func(context.Context, *containerd.Client, *containers.Container) error
WithStatus sets the status for a container
Types ¶
type Policy ¶ added in v1.7.0
type Policy struct {
// contains filtered or unexported fields
}
Policy represents the restart policies of a container.
func NewPolicy ¶ added in v1.7.0
NewPolicy creates a restart policy with the specified name. supports the following restart policies: - no, Do not restart the container. - always, Always restart the container regardless of the exit status. - on-failure[:max-retries], Restart only if the container exits with a non-zero exit status. - unless-stopped, Always restart the container unless it is stopped.