17.4.1. Digital Rebar CLI (drpcli)

A CLI application for interacting with the DigitalRebar Provision API

17.4.1.1. Synopsis

drpcli is a general-purpose command for interacting with a dr-provision endpoint. It has several subcommands which have their own help.

It also has several environment variables that control aspects of its operation:

  • RS_OBJECT_ERRORS_ARE_FATAL: Have drpcli exit with a non-zero exit status if a returned object has an Errors field that is not empty. Normally it will only exit with a non-zero exit status when the API returns with an error or fatal status code.

  • RS_ENDPOINTS: A space-separated list of URLS that drpcli should try to communicate with. The first one that authenticates will be used.

  • RS_ENDPOINT: The URL that drpcli should try to communicate. Ignored if RS_ENDPOINTS exists in the environment. Default to https://127.0.0.1:8092

  • RS_URL_PROXY: The HTTP proxy drpcli should use when communicating with the dr-provision endpoint. It functions like the standard http_proxy environment variable.

  • RS_TOKEN: The token to use for authentication with the dr-provision endpoint. Overrides RS_KEY.

  • RS_CATALOG: The URL to use to fetch the artifact catalog. All commands in the ‘drpcli catalog’ group of commands use this. Defaults to https://repo.rackn.io

  • RS_FORMAT: The output format drpcli will use. Defaults to json

  • RS_PRINT_FIELDS: The fields of an object to display in text or table format. Defaults to all of them.

  • RS_DOWNLOAD_PROXY: The http proxy to use when downloading bootenv ISO files. If this is not set we will look for the https_proxy and http_proxy env vars.

  • RS_NO_HEADER: Controls whether to print column headers in text or table output mode.

  • RS_NO_COLOR: Controls whether output to a terminal should be stripped.

  • RS_COLORS: Controls the 8 ANSI colors that should be used in colorized output.

  • RS_TRUNCATE_LENGTH: The max length of an individual column in text or table mode.

  • RS_FORCE_NEW_SESSION: Should the client always create a new session

  • RS_IGNORE_UNIX_PROXY: Should the client ignore the unix domain socket to the server.

  • RS_CLIENT_KEY: The path to a client private key. Used with RS_CLIENT_CERT.

  • RS_CLIENT_CERT: The path to a client certificate. Used with RS_CLIENT_KEY.

  • RS_SERVER_VERIFY: Should the client verify the server’s certificate.

  • RS_CA_CERT: The path to an additional CA certificate.

  • RS_KEY: The default username:password to use when missing a token.

17.4.1.2. Options

    --ca-cert string          CA certificate used to verify the server certs (with the system set)
-c, --catalog string          The catalog file to use to get product information (default "https://repo.rackn.io")
-S, --catalog-source string   A location from which catalog items can be downloaded. For example, in airgapped mode it would be the local catalog
    --client-cert string      Client certificate to use for communicating to the server - replaces RS_KEY, RS_TOKEN, RS_USERNAME, RS_PASSWORD
    --client-key string       Client key to use for communicating to the server - replaces RS_KEY, RS_TOKEN, RS_USERNAME, RS_PASSWORD
-C, --colors string           The colors for JSON and Table/Text colorization.  8 values in the for 0=val,val;1=val,val2... (default "0=32;1=33;2=36;3=90;4=34,1;5=35;6=95;7=32;8=92")
-d, --debug                   Whether the CLI should run in debug mode
-D, --download-proxy string   HTTP Proxy to use for downloading catalog and content
-E, --endpoint string         The Digital Rebar Provision API endpoint to talk to (default "https://127.0.0.1:8092")
-X, --exit-early              Cause drpcli to exit if a command results in an object that has errors
-f, --force                   When needed, attempt to force the operation - used on some update/patch calls
    --force-new-session       Should the client always create a new session
-F, --format string           The serialization we expect for output.  Can be "json" or "yaml" or "text" or "table" (default "json")
-h, --help                    help for drpcli
    --ignore-unix-proxy       Should the client ignore unix proxies
-N, --no-color                Whether the CLI should output colorized strings
-H, --no-header               Should header be shown in "text" or "table" mode
-x, --no-token                Do not use token auth or token cache
-P, --password string         password of the Digital Rebar Provision user (default "r0cketsk8ts")
-p, --platform string         Platform to filter details by. Defaults to current system. Format: arch/os
-J, --print-fields string     The fields of the object to display in "text" or "table" mode. Comma separated
-r, --ref string              A reference object for update commands that can be a file name, yaml, or json blob
    --server-verify           Should the client verify the server cert
-T, --token string            token of the Digital Rebar Provision access
-t, --trace string            The log level API requests should be logged at on the server side
-Z, --trace-token string      A token that individual traced requests should report in the server logs
-j, --truncate-length int     Truncate columns at this length (default 40)
-u, --url-proxy string        URL Proxy for passing actions through another DRP
-U, --username string         Name of the Digital Rebar Provision user to talk to (default "rocketskates")

17.4.1.3. SEE ALSO