stackablectl cache

The cache command let’s you interact with locally cached files. The stackablectl tool retrieves release, demo, and stack definitions from a dedicated GitHub repository. It additionally retrieves Helm / YAML manifests from various other sources. These files are downloaded once and then cached for one hour. In this time period, the files are not downloaded again, but instead the locally cached (stored on disk) files are used. Users can opt out of caching by providing the --no-cache flag.

General Usage

Interact with locally cached files

Usage: stackablectl cache [OPTIONS] <COMMAND>

Commands:
  list   List cached files
  clean  Clean cached files
  help   Print this message or the help of the given subcommand(s)

Options:
  -l, --log-level <LOG_LEVEL>
          Log level this application uses

      --no-cache
          Do not cache the remote (default) demo, stack and release files

          Cached files are saved at '$XDG_CACHE_HOME/stackablectl', which is usually
          '$HOME/.cache/stackablectl' when not explicitly set.

      --offline
          Do not request any remote files via the network

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

File options:
  -d, --demo-file <DEMO_FILE>
          Provide one or more additional (custom) demo file(s)

          Demos are loaded in the following order: Remote (default) demo file, custom
          demo files provided via the 'STACKABLE_DEMO_FILES' environment variable, and
          lastly demo files provided via the '-d/--demo-file' argument(s). If there are
          demos with the same name, the last demo definition will be used.

          Use "stackablectl [OPTIONS] <COMMAND> -d path/to/demos1.yaml -d path/to/demos2.yaml"
          to provide multiple additional demo files.

  -s, --stack-file <STACK_FILE>
          Provide one or more additional (custom) stack file(s)

          Stacks are loaded in the following order: Remote (default) stack file, custom
          stack files provided via the 'STACKABLE_STACK_FILES' environment variable, and
          lastly demo files provided via the '-s/--stack-file' argument(s). If there are
          stacks with the same name, the last stack definition will be used.

          Use "stackablectl [OPTIONS] <COMMAND> -s path/to/stacks1.yaml -s path/to/stacks2.yaml"
          to provide multiple additional stack files.

  -r, --release-file <RELEASE_FILE>
          Provide one or more additional (custom) release file(s)

          Releases are loaded in the following order: Remote (default) release file,
          custom release files provided via the 'STACKABLE_RELEASE_FILES' environment
          variable, and lastly release files provided via the '-r/--release-file'
          argument(s). If there are releases with the same name, the last release
          definition will be used.

          Use "stackablectl [OPTIONS] <COMMAND> -r path/to/releases1.yaml -r path/to/releases2.yaml"
          to provide multiple additional release files.

Helm repository options:
      --helm-repo-stable <URL>
          Provide a custom Helm stable repository URL

          [default: https://repo.stackable.tech/repository/helm-stable/]

      --helm-repo-test <URL>
          Provide a custom Helm test repository URL

          [default: https://repo.stackable.tech/repository/helm-test/]

      --helm-repo-dev <URL>
          Provide a custom Helm dev repository URL

          [default: https://repo.stackable.tech/repository/helm-dev/]

Listing Cached Files

To list currently cached files, use stackablectl cache list:

$ stackablectl cache list
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────┐
│ FILE                                                                                                           ┆ LAST SYNC      │
╞════════════════════════════════════════════════════════════════════════════════════════════════════════════════╪════════════════╡
│ $HOME/.cache/stackablectl/https---raw-githubusercontent-com-stackabletech-stackablectl-main-stacks-stacks-v2-y ┆ 3 seconds ago  │
│ aml-17447ade21bb02fe827b33ef32404e7cb3866ee169837dead6dfdcd7f7241e07                                           ┆                │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ $HOME/.cache/stackablectl/https---raw-githubusercontent-com-stackabletech-stackablectl-main-demos-demos-v2-yam ┆ 22 seconds ago │
│ l-a140c16c241efa6dbee780d48843a1975bd1069ee8dd8f936123ffb8ee700739                                             ┆                │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────┘

Cleaning Cached Files

To clean currently cached files, use stackablectl cache clean. This will remove all cached files, regardless if the files are expired. To only delete outdated files, add the --outdated flag.