cli

package
v2.9.0 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Command = &cli.Command{
		Name:        "cli",
		Description: "CLI commands that can be executed everywhere, currently just restore is supported",
		Subcommands: []*cli.Command{
			{
				Name:   "restore",
				Action: RunRestore,
				Flags: []cli.Flag{
					&cli.StringFlag{
						Destination: &restore.Cfg.Snapshot,
						Required:    false,
						Name:        "snapshot",
						Value:       "latest",
						Usage:       "Optional ; ID of the snapshot `kubectl get snapshots`, if left empty 'latest' will be used, set it via cli or via env: ",
						EnvVars: []string{
							"SNAPSHOT",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.SecretRef,
						Required:    true,
						Name:        "secretRef",
						Usage:       "Required ; Set secret name from which You want to take S3 credentials, via cli or via env: ",
						EnvVars: []string{
							"SECRET_REF",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.S3Endpoint,
						Required:    true,
						Name:        "s3endpoint",
						Usage:       "Required ; Set s3endpoint from which backup will be taken, via cli or via env: ",
						EnvVars: []string{
							"S3ENDPOINT",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.S3Bucket,
						Required:    true,
						Name:        "s3bucket",
						Usage:       "Required ; Set s3bucket from which backup will be taken, via cli or via env: ",
						EnvVars: []string{
							"S3BUCKET",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.S3SecretRef,
						Required:    true,
						Name:        "s3secretRef",
						Usage:       "Required ; Set secret name, where S3 username & password are stored from which backup will be taken, via cli or via env: ",
						EnvVars: []string{
							"S3SECRETREF",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.RestoreMethod,
						Required:    true,
						Name:        "restoreMethod",
						Value:       "pvc",
						Usage:       "Required ; Set restore method [ pvc|s3 ], via cli or via env: ",
						Action: func(ctx *cli.Context, s string) error {
							if s != "pvc" && s != "s3" {
								return fmt.Errorf("--restoreMethod must be set to either 'pvc' or 's3'")
							}
							return nil
						},
						EnvVars: []string{
							"RESTOREMETHOD",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.SecretRefKey,
						Required:    false,
						Name:        "secretRefKey",
						Value:       "password",
						Usage:       "Optional ; Set key name, where restic password is stored, via cli or via env: ",
						EnvVars: []string{
							"SECRETREFKEY",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.ClaimName,
						Required:    false,
						Name:        "claimName",
						Usage:       "Required ; Set claimName field, via cli or via env: ",
						EnvVars: []string{
							"CLAIMNAME",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.S3SecretRefUsernameKey,
						Required:    false,
						Value:       "username",
						Name:        "S3SecretRefUsernameKey",
						Usage:       "Optional ; Set S3SecretRefUsernameKey, key inside secret, under which S3 username is stored, via cli or via env: ",
						EnvVars: []string{
							"S3SECRETREFUSERNAMEKEY",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.S3SecretRefPasswordKey,
						Required:    false,
						Value:       "password",
						Name:        "S3SecretRefPasswordKey",
						Usage:       "Optional ; Set S3SecretRefPasswordKey, key inside secret, under which Restic repo password is stored, via cli or via env: ",
						EnvVars: []string{
							"S3SECRETREFPASSWORDKEY",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.RestoreName,
						Required:    false,
						Name:        "restoreName",
						Usage:       "Optional ; Set restoreName - metadata.Name field, if empty, k8up will generate name, via cli or via env: ",
						EnvVars: []string{
							"RESTORENAME",
						},
					},
					&cli.Int64Flag{
						Destination: &restore.Cfg.RunAsUser,
						Required:    false,
						Name:        "runAsUser",
						Usage:       "Optional ; Set user UID, via cli or via env: ",
						EnvVars: []string{
							"RUNASUSER",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.RestoreToS3Endpoint,
						Required:    false,
						Name:        "restoreToS3Endpoint",
						Usage:       "Optional ; Set restore endpoint, only when using s3 restore method, via cli or via env: ",
						EnvVars: []string{
							"RESTORETOS3ENDPOINT",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.RestoreToS3Bucket,
						Required:    false,
						Name:        "restoreToS3Bucket",
						Usage:       "Optional ; Set restore bucket, only when using s3 restore method, via cli or via env: ",
						EnvVars: []string{
							"RESTORETOS3BUCKET",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.RestoreToS3Secret,
						Required:    false,
						Name:        "restoreToS3Secret",
						Usage:       "Optional ; Set restore Secret, only when using s3 restore method, expecting secret name containing key value pair with 'username' and 'password' keys, via cli or via env: ",
						EnvVars: []string{
							"RESTORETOS3SECRET",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.RestoreToS3SecretUsernameKey,
						Required:    false,
						Value:       "username",
						Name:        "RestoreToS3SecretUsernameKey",
						Usage:       "Optional ; Set RestoreToS3SecretUsernameKey, key inside secret, under which S3 username is stored, via cli or via env: ",
						EnvVars: []string{
							"RESTORETOS3SECRETUSERNAMEKEY",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.RestoreToS3SecretPasswordKey,
						Required:    false,
						Value:       "password",
						Name:        "RestoreToS3SecretPasswordKey",
						Usage:       "Optional ; Set RestoreToS3SecretPasswordKey, key inside secret, under which Restic repo password is stored, via cli or via env: ",
						EnvVars: []string{
							"RESTORETOS3SECRETPASSWORDKEY",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.Namespace,
						Required:    false,
						Value:       "default",
						Aliases:     []string{"n"},
						Name:        "namespace",
						Usage:       "Optional ; Set namespace in which You want to execute restore, via cli or via env: ",
						EnvVars: []string{
							"NAMESPACE",
						},
					},
					&cli.StringFlag{
						Destination: &restore.Cfg.Kubeconfig,
						Required:    false,
						Value:       "~/.kube/config",
						Name:        "kubeconfig",
						Usage:       "Optional ; Set kubeconfig to connect to cluster, via cli or via env:",
						EnvVars: []string{
							"KUBECONFIG",
						},
					},
				},
			},
		},
	}
)

Functions

func RunRestore

func RunRestore(ctx *cli.Context) error

Types

This section is empty.

Jump to

Keyboard shortcuts

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