manager

package
v27.4.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2024 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CommandAnnotationPlugin is added to every stub command added by
	// AddPluginCommandStubs with the value "true" and so can be
	// used to distinguish plugin stubs from regular commands.
	CommandAnnotationPlugin = "com.docker.cli.plugin"

	// CommandAnnotationPluginVendor is added to every stub command
	// added by AddPluginCommandStubs and contains the vendor of
	// that plugin.
	CommandAnnotationPluginVendor = "com.docker.cli.plugin.vendor"

	// CommandAnnotationPluginVersion is added to every stub command
	// added by AddPluginCommandStubs and contains the version of
	// that plugin.
	CommandAnnotationPluginVersion = "com.docker.cli.plugin.version"

	// CommandAnnotationPluginInvalid is added to any stub command
	// added by AddPluginCommandStubs for an invalid command (that
	// is, one which failed it's candidate test) and contains the
	// reason for the failure.
	CommandAnnotationPluginInvalid = "com.docker.cli.plugin-invalid"

	// CommandAnnotationPluginCommandPath is added to overwrite the
	// command path for a plugin invocation.
	CommandAnnotationPluginCommandPath = "com.docker.cli.plugin.command_path"
)
View Source
const (
	// ReexecEnvvar is the name of an ennvar which is set to the command
	// used to originally invoke the docker CLI when executing a
	// plugin. Assuming $PATH and $CWD remain unchanged this should allow
	// the plugin to re-execute the original CLI.
	ReexecEnvvar = "DOCKER_CLI_PLUGIN_ORIGINAL_CLI_COMMAND"

	// ResourceAttributesEnvvar is the name of the envvar that includes additional
	// resource attributes for OTEL.
	ResourceAttributesEnvvar = "OTEL_RESOURCE_ATTRIBUTES"
)
View Source
const (
	// NamePrefix is the prefix required on all plugin binary names
	NamePrefix = "docker-"

	// MetadataSubcommandName is the name of the plugin subcommand
	// which must be supported by every plugin and returns the
	// plugin metadata.
	MetadataSubcommandName = "docker-cli-plugin-metadata"

	// HookSubcommandName is the name of the plugin subcommand
	// which must be implemented by plugins declaring support
	// for hooks in their metadata.
	HookSubcommandName = "docker-cli-plugin-hooks"
)

Variables

This section is empty.

Functions

func AddPluginCommandStubs

func AddPluginCommandStubs(dockerCli command.Cli, rootCmd *cobra.Command) (err error)

AddPluginCommandStubs adds a stub cobra.Commands for each valid and invalid plugin. The command stubs will have several annotations added, see `CommandAnnotationPlugin*`.

func IsNotFound

func IsNotFound(err error) bool

IsNotFound is true if the given error is due to a plugin not being found.

func IsPluginCommand

func IsPluginCommand(cmd *cobra.Command) bool

IsPluginCommand checks if the given cmd is a plugin-stub.

func NewPluginError

func NewPluginError(msg string, args ...any) error

NewPluginError creates a new pluginError, analogous to errors.Errorf.

func PluginRunCommand

func PluginRunCommand(dockerCli command.Cli, name string, rootcmd *cobra.Command) (*exec.Cmd, error)

PluginRunCommand returns an "os/exec".Cmd which when .Run() will execute the named plugin. The rootcmd argument is referenced to determine the set of builtin commands in order to detect conficts. The error returned satisfies the IsNotFound() predicate if no plugin was found or if the first candidate plugin was invalid somehow.

func RunCLICommandHooks

func RunCLICommandHooks(ctx context.Context, dockerCli command.Cli, rootCmd, subCommand *cobra.Command, cmdErrorMessage string)

RunCLICommandHooks is the entrypoint into the hooks execution flow after a main CLI command was executed. It calls the hook subcommand for all present CLI plugins that declare support for hooks in their metadata and parses/prints their responses.

func RunPluginHooks

func RunPluginHooks(ctx context.Context, dockerCli command.Cli, rootCmd, subCommand *cobra.