mirror

package
v2.0.0-...-443e6bf Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2023 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Overview

go: build !windows build !windows

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CommandAction

func CommandAction(handler func(args []string, stdout io.Writer) error) func(cmd *cobra.Command, args []string) error

commandAction intermediates between the RunE interface and the real handler, primarily to ensure that cobra.Command is not available to the handler, which in turn makes sure that the cmd.Flags() etc. flag access functions are not used, and everything is done using the *Options structures and the *Var() methods of cmd.Flag(). handler may return errorShouldDisplayUsage to cause c.Help to be called.

func HelloFromV2

func HelloFromV2() string

func ImageDestFlags

func ImageDestFlags(global *GlobalOptions, shared *SharedImageOptions, deprecatedTLSVerify *DeprecatedTLSVerifyOption, flagPrefix, credsOptionAlias string) (pflag.FlagSet, *imageDestOptions)

imageDestFlags prepares a collection of CLI flags writing into imageDestOptions, and the managed imageDestOptions structure.

func ImageSrcFlags

func ImageSrcFlags(global *GlobalOptions, shared *SharedImageOptions, deprecatedTLSVerify *DeprecatedTLSVerifyOption, flagPrefix, credsOptionAlias string) (pflag.FlagSet, *imageOptions)

imageFlags prepares a collection of CLI flags writing into imageOptions, and the managed imageOptions structure.

func NoteCloseFailure

func NoteCloseFailure(err error, description string, closeErr error) error

noteCloseFailure returns (possibly-nil) err modified to account for (non-nil) closeErr. The error for closeErr is annotated with description (which is not a format string) Typical usage:

defer func() {
	if err := something.Close(); err != nil {
		returnedErr = noteCloseFailure(returnedErr, "closing something", err)
	}
}

func ParseManifestFormat

func ParseManifestFormat(manifestFormat string) (string, error)

parseManifestFormat parses format parameter for copy and sync command. It returns string value to use as manifest MIME type

func PromptForPassphrase

func PromptForPassphrase(privateKeyFile string, stdin, stdout *os.File) (string, error)

promptForPassphrase interactively prompts for a passphrase related to privateKeyFile

func ReexecIfNecessaryForImages

func ReexecIfNecessaryForImages(imageNames ...string) error

func RetryFlags

func RetryFlags() (pflag.FlagSet, *retry.Options)

Types

type CopyOptions

type CopyOptions struct {
	Global                   *GlobalOptions
	DeprecatedTLSVerify      *DeprecatedTLSVerifyOption
	SrcImage                 *imageOptions
	DestImage                *imageDestOptions
	RetryOpts                *retry.Options
	AdditionalTags           []string  // For docker-archive: destinations, in addition to the name:tag specified as destination, also add these
	RemoveSignatures         bool      // Do not copy signatures from the source image
	SignByFingerprint        string    // Sign the image using a GPG key with the specified fingerprint
	SignBySigstorePrivateKey string    // Sign the image using a sigstore private key
	SignPassphraseFile       string    // Path pointing to a passphrase file when signing (for either signature format, but only one of them)
	SignIdentity             string    // Identity of the signed image, must be a fully specified docker reference
	DigestFile               string    // Write digest to this file
	Format                   string    // Force conversion of the image to a specified format
	All                      bool      // Copy all of the images if the source is a list
	MultiArch                string    // How to handle multi architecture images
	PreserveDigests          bool      // Preserve digests during copy
	EncryptLayer             []int     // The list of layers to encrypt
	EncryptionKeys           []string  // Keys needed to encrypt the image
	DecryptionKeys           []string  // Keys needed to decrypt the image
	Mode                     string    // 2 options disktoMirror or mirrorToDisk (for now)
	Dev                      bool      // developer mode - will be removed when completed
	Destination              string    // what to target to
	UUID                     uuid.UUID // set uuid
	ImageType                string    // release, catalog-operator, additionalImage
}

type DeprecatedTLSVerifyOption

type DeprecatedTLSVerifyOption struct {
	// contains filtered or unexported fields
}

deprecatedTLSVerifyOption represents a deprecated --tls-verify option, which was accepted for all subcommands, for a time. Every user should call deprecatedTLSVerifyOption.warnIfUsed() as part of handling the CLI, whether or not the value actually ends up being used. DO NOT ADD ANY NEW USES OF THIS; just call dockerImageFlags with an appropriate, possibly empty, flagPrefix.

func DeprecatedTLSVerifyFlags

func DeprecatedTLSVerifyFlags() (pflag.FlagSet, *DeprecatedTLSVerifyOption)

deprecatedTLSVerifyFlags prepares the CLI flag writing into deprecatedTLSVerifyOption, and the managed deprecatedTLSVerifyOption structure. DO NOT ADD ANY NEW USES OF THIS; just call dockerImageFlags with an appropriate, possibly empty, flagPrefix.

func (*DeprecatedTLSVerifyOption) WarnIfUsed

func (opts *DeprecatedTLSVerifyOption) WarnIfUsed(alternatives []string)

warnIfUsed warns if tlsVerify was set by the user, and suggests alternatives (which should start with "--"). Every user should call this as part of handling the CLI, whether or not the value actually ends up being used.

type ErrorShouldDisplayUsage

type ErrorShouldDisplayUsage struct {
	Error error
}

errorShouldDisplayUsage is a subtype of error used by command handlers to indicate that cli.ShowSubcommandHelp should be called.

type GlobalOptions

type GlobalOptions struct {
	LogLevel           string        // one of info, debug, trace
	TlsVerify          bool          // Require HTTPS and verify certificates (for docker: and docker-daemon:)
	PolicyPath         string        // Path to a signature verification policy file
	InsecurePolicy     bool          // Use an "allow everything" signature verification policy
	RegistriesDirPath  string        // Path to a "registries.d" registry configuration directory
	OverrideArch       string        // Architecture to use for choosing images, instead of the runtime one
	OverrideOS         string        // OS to use for choosing images, instead of the runtime one
	OverrideVariant    string        // Architecture variant to use for choosing images, instead of the runtime one
	CommandTimeout     time.Duration // Timeout for the command execution
	RegistriesConfPath string        // Path to the "registries.conf" file
	TmpDir             string        // Path to use for big temporary files
	Dir                string        // working directory
	From               string        // local storage for diskToMirror workflow
	Port               uint16        // HTTP port used by oc-mirror's local storage instance
	ConfigPath         string        // Path to use for imagesetconfig
	ReleaseFrom        string        // Used for release mirroring (diskToMirror)
	OperatorsFrom      string        // Used for operators mirroring (diskToMirror)
	AdditionalFrom     string        // Used for additionalImages mirroring (diskToMirror)
	Quiet              bool          // Suppress output information when copying images
	Force              bool          // Force the copy/mirror even if there is nothing to update
	V2                 bool          // Redirect the flow to oc-mirror v2 - PLEASE DO NOT USE that. V2 is still under development and it is not ready to be used.
}

func (*GlobalOptions) CommandTimeoutContext

func (opts *GlobalOptions) CommandTimeoutContext() (context.Context, context.CancelFunc)

commandTimeoutContext returns a context.Context and a cancellation callback based on opts. The caller should usually "defer cancel()" immediately after calling this.

func (*GlobalOptions) GetPolicyContext

func (opts *GlobalOptions) GetPolicyContext() (*signature.PolicyContext, error)

getPolicyContext returns a *signature.PolicyContext based on opts.

func (*GlobalOptions) NewSystemContext

func (opts *GlobalOptions) NewSystemContext() *types.SystemContext

newSystemContext returns a *types.SystemContext corresponding to opts. It is guaranteed to return a fresh instance, so it is safe to make additional updates to it.

type Mirror

type Mirror struct {
	Mode string
	// contains filtered or unexported fields
}

Mirror

func (*Mirror) Check

func (o *Mirror) Check(ctx context.Context, image string, opts *CopyOptions) (bool, error)

check exists - checks if image exists

func (*Mirror) Run

func (o *Mirror) Run(ctx context.Context, src, dest string, mode Mode, opts *CopyOptions, stdout bufio.Writer) (retErr error)

Run - method to copy images from source to destination

type MirrorCopy

type MirrorCopy struct{}

func (*MirrorCopy) CopyImage

func (o *MirrorCopy) CopyImage(ctx context.Context, pc *signature.PolicyContext, destRef, srcRef types.ImageReference, co *copy.Options) ([]byte, error)

type MirrorCopyInterface

type MirrorCopyInterface interface {
	CopyImage(ctx context.Context, pc *signature.PolicyContext, destRef, srcRef types.ImageReference, opts *copy.Options) ([]byte, error)
}

func NewMirrorCopy

func NewMirrorCopy() MirrorCopyInterface

type MirrorDelete

type MirrorDelete struct{}

func (*MirrorDelete) DeleteImage

func (o *MirrorDelete) DeleteImage(ctx context.Context, image string, co *CopyOptions) error

type MirrorDeleteInterface

type MirrorDeleteInterface interface {
	DeleteImage(ctx context.Context, image string, opts *CopyOptions) error
}

func NewMirrorDelete

func NewMirrorDelete() MirrorDeleteInterface

type MirrorInterface

type MirrorInterface interface {
	Run(ctx context.Context, src, dest string, mode Mode, opts *CopyOptions, stdout bufio.Writer) (retErr error)
	Check(ctx context.Context, image string, opts *CopyOptions) (bool, error)
}

MirrorInterface used to mirror images with container/images (skopeo)

func New

New returns new Mirror instance

type Mode

type Mode string
const (
	CopyMode   Mode = "copy"
	DeleteMode Mode = "delete"
	CheckMode  Mode = "check"
)

type SharedImageOptions

type SharedImageOptions struct {
	// contains filtered or unexported fields
}

sharedImageOptions collects CLI flags which are image-related, but do not change across images. This really should be a part of globalOptions, but that would break existing users of (skopeo copy --authfile=).

func SharedImageFlags

func SharedImageFlags() (pflag.FlagSet, *SharedImageOptions)

sharedImageFlags prepares a collection of CLI flags writing into sharedImageOptions, and the managed sharedImageOptions structure.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL