vmware-tanzu / velero

Backup and migrate Kubernetes applications and their persistent volumes
https://velero.io
Apache License 2.0
8.64k stars 1.39k forks source link

Add a documentation page which details all the CLI commands and their flags #3046

Closed blueelvis closed 3 years ago

blueelvis commented 3 years ago

Describe the problem/challenge you have I am trying to see a reference of all the command line arguments and their flags on the website documentation.

Describe the solution you'd like We need to have a section which provides a reference for all the options and flags. This can be automated.

Vote on this issue!

This is an invitation to the Velero community to vote on issues, you can see the project's top voted issues listed here.
Use the "reaction smiley face" up to the right of this comment to vote.

ashish-amarnath commented 3 years ago

@blueelvis Is this documentation that you are asking for different from the velero help command? Here is what the output of velero help looks like

$ velero help
Velero is a tool for managing disaster recovery, specifically for Kubernetes
cluster resources. It provides a simple, configurable, and operationally robust
way to back up your application state and associated data.

If you're familiar with kubectl, Velero supports a similar model, allowing you to
execute commands such as 'velero get backup' and 'velero create schedule'. The same
operations can also be performed as 'velero backup get' and 'velero schedule create'.

Usage:
  velero [command]

Available Commands:
  backup            Work with backups
  backup-location   Work with backup storage locations
  bug               Report a Velero bug
  client            Velero client related commands
  completion        Output shell completion code for the specified shell (bash or zsh).
  create            Create velero resources
  delete            Delete velero resources
  describe          Describe velero resources
  get               Get velero resources
  help              Help about any command
  install           Install Velero
  plugin            Work with plugins
  restic            Work with restic
  restore           Work with restores
  schedule          Work with schedules
  snapshot-location Work with snapshot locations
  version           Print the velero version and associated image

Flags:
      --add_dir_header                   If true, adds the file directory to the header
      --alsologtostderr                  log to standard error as well as files
      --features stringArray             Comma-separated list of features to enable for this Velero process. Combines with values from $HOME/.config/velero/config.json if present
  -h, --help                             help for velero
      --kubeconfig string                Path to the kubeconfig file to use to talk to the Kubernetes apiserver. If unset, try the environment variable KUBECONFIG, as well as in-cluster configuration
      --kubecontext string               The context to use to talk to the Kubernetes apiserver. If unset defaults to whatever your current-context is (kubectl config current-context)
      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
      --log_dir string                   If non-empty, write log files in this directory
      --log_file string                  If non-empty, use this log file
      --log_file_max_size uint           Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
      --logtostderr                      log to standard error instead of files (default true)
      --master --kubeconfig              (Deprecated: switch to --kubeconfig) The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.
  -n, --namespace string                 The namespace in which Velero should operate (default "velero")
      --skip_headers                     If true, avoid header prefixes in the log messages
      --skip_log_headers                 If true, avoid headers when opening log files
      --stderrthreshold severity         logs at or above this threshold go to stderr (default 2)
  -v, --v Level                          number for the log level verbosity
      --vmodule moduleSpec               comma-separated list of pattern=N settings for file-filtered logging

Use "velero [command] --help" for more information about a command.

Further, you can also run velero [command] --help to get more info about a command. For example, here is what the help message for the velero backup create command looks like

$ velero backup create --help
Create a backup

Usage:
  velero backup create NAME [flags]

Examples:
    # Create a backup containing all resources.
    velero backup create backup1

    # Create a backup including only the nginx namespace.
    velero backup create nginx-backup --include-namespaces nginx

    # Create a backup excluding the velero and default namespaces.
    velero backup create backup2 --exclude-namespaces velero,default

    # Create a backup based on a schedule named daily-backup.
    velero backup create --from-schedule daily-backup

    # View the YAML for a backup that doesn't snapshot volumes, without sending it to the server.
    velero backup create backup3 --snapshot-volumes=false -o yaml

    # Wait for a backup to complete before returning from the command.
    velero backup create backup4 --wait

Flags:
      --default-volumes-to-restic optionalBool[=true]   Use restic by default to backup all pod volumes
      --exclude-namespaces stringArray                  Namespaces to exclude from the backup.
      --exclude-resources stringArray                   Resources to exclude from the backup, formatted as resource.group, such as storageclasses.storage.k8s.io.
      --from-schedule string                            Create a backup from the template of an existing schedule. Cannot be used with any other filters. Backup name is optional if used.
  -h, --help                                            help for create
      --include-cluster-resources optionalBool[=true]   Include cluster-scoped resources in the backup
      --include-namespaces stringArray                  Namespaces to include in the backup (use '*' for all namespaces). (default *)
      --include-resources stringArray                   Resources to include in the backup, formatted as resource.group, such as storageclasses.storage.k8s.io (use '*' for all resources).
      --label-columns stringArray                       a comma-separated list of labels to be displayed as columns
      --labels mapStringString                          Labels to apply to the backup.
      --ordered-resources string                        mapping Kinds to an ordered list of specific resources of that Kind.  Resource names are separated by commas and their names are in format 'namespace/resourcename'. For cluster scope resource, simply use resource name. Key-value pairs in the mapping are separated by semi-colon.  Example: 'pods=ns1/pod1,ns1/pod2;persistentvolumeclaims=ns1/pvc4,ns1/pvc8'.  Optional.
  -o, --output string                                   Output display format. For create commands, display the object but do not send it to the server. Valid formats are 'table', 'json', and 'yaml'. 'table' is not valid for the install command.
  -l, --selector labelSelector                          Only back up resources matching this label selector. (default <none>)
      --show-labels                                     show labels in the last column
      --snapshot-volumes optionalBool[=true]            Take snapshots of PersistentVolumes as part of the backup.
      --storage-location string                         Location in which to store the backup.
      --ttl duration                                    How long before the backup can be garbage collected. (default 720h0m0s)
      --volume-snapshot-locations strings               List of locations (at most one per provider) where volume snapshots should be stored.
  -w, --wait                                            Wait for the operation to complete.

Global Flags:
      --add_dir_header                   If true, adds the file directory to the header
      --alsologtostderr                  log to standard error as well as files
      --features stringArray             Comma-separated list of features to enable for this Velero process. Combines with values from $HOME/.config/velero/config.json if present
      --kubeconfig string                Path to the kubeconfig file to use to talk to the Kubernetes apiserver. If unset, try the environment variable KUBECONFIG, as well as in-cluster configuration
      --kubecontext string               The context to use to talk to the Kubernetes apiserver. If unset defaults to whatever your current-context is (kubectl config current-context)
      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
      --log_dir string                   If non-empty, write log files in this directory
      --log_file string                  If non-empty, use this log file
      --log_file_max_size uint           Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
      --logtostderr                      log to standard error instead of files (default true)
      --master --kubeconfig              (Deprecated: switch to --kubeconfig) The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.
  -n, --namespace string                 The namespace in which Velero should operate (default "velero")
      --skip_headers                     If true, avoid header prefixes in the log messages
      --skip_log_headers                 If true, avoid headers when opening log files
      --stderrthreshold severity         logs at or above this threshold go to stderr (default 2)
  -v, --v Level                          number for the log level verbosity
      --vmodule moduleSpec               comma-separated list of pattern=N settings for file-filtered logging
ashish-amarnath commented 3 years ago

Thank you for opening this issue.

I understand having this reference on the website can be useful. But, having the reference on the command line is generally more useful as it serves as a reference where you need it.

Taking that into consideration, I am going to close this issue as a WONT_FIX.