Skip to content

Latest commit

 

History

History
78 lines (64 loc) · 4.09 KB

long.md

File metadata and controls

78 lines (64 loc) · 4.09 KB

Help Output - Long

$ para -h
Para is being initialized...

Para - the missing community plugin manager for Terraform.
A "swiss army knife" for Terraform and Terragrunt - just 1 tool to facilitate all your workflows.

Concepts
  Primary Index
    It's the main source of truth for Para. Always just 1 file is used. Unless overridden, Para uses 1st available from
    the list of pre-defined locations. Should be YAML in the format of:

        <kind>:
          <name>:
           <vX.Y.Z>:
             <platform>:
               url: <file://...|http://...|https://...>
               size: <size of the provider binary in bytes>
               digest: <md5|sha1|sha256|sha512>:<hash of the file that will be download - verified before extraction>

    All strings (key & values, except for URLs) must be lowercase. All fields are required (url, size, digest).

    URLs may point to archives and they will be automatically extracted (size MUST be always derived from the actual
    plugin binary and digest MUST be derived from the archive in such cases) if supported (determined by the extension
    at the end of the Url):
      * .zip
      * .tar
      * .tar.gz  or .tgz
      * .tar.bz2 or .tbz2
      * .tar.xz  or .txz
      * .tar.lz4 or .tlz4
      * .tar.sz  or .tsz
      * .rar

  Index Extensions
    Can be used to add or override entries in the primary index. May come handy when one is happy with the remote index
    but needs some extra plugins or if one needs to use an alternative implementation for a give plugin.

    Both file names and file content are used when processing index extensions. Only files matching the pattern
    '<kind>.<name>.yaml' are loaded and they should be valid single-document YAMLs with the following structure:

	     <vX.Y.Z>:
		   <platform>:
		     url: <file://...|http://...|https://...>
		     size: <size of the provider binary in bytes>
		     digest: <md5|sha1|sha256|sha512>:<hash of the file that will be download - verified before extraction>

    Alternatively it can be a single line with a Url like <file://...|http://...|https://...> pointing to a file with
    the content as described above. An empty file would wipe out all known version for the given plugin from the primary
    index.

    By default Para loads all extensions from all pre-defined locations but if an explicit location is specified then
    it's the only one used.

  Cache Dir
    When Para fetches remote files it stores them briefly in the $TMPDIR but then caches them in the designated cache
    dir. As per the well-known joke, cache invalidation is too ambitious challenge so Para doesn't do anything about it.
    By default cache is stored in $TMPDIR so that it will be cleared on reboots. It's possible to configure Para to
    store cache elsewhere but then it's user's responsibility to manage it in case it grows too big.
    Cache dir facilitates offline operation.

  Config File
    Any of the flags below (except for config itself as well as help and unmount flags) can be provided via a config
    file. It's if value is not provided via a flag, config file is discovered from one of pre-defined locations.

Flags:
  -f, --config string       config file (default - first available from: para.cfg.yaml, ~/.para/para.cfg.yaml, /etc/para/para.cfg.yaml)
  -i, --index string        index location (default - first available from: para.idx.yaml, ~/.para/para.idx.yaml, /etc/para/para.idx.yaml, https://raw.githubusercontent.com/paraterraform/index/master/para.idx.yaml)
  -x, --extensions string   index extensions directory (default - union from: para.idx.d, ~/.para/para.idx.d, /etc/para/para.idx.d)
  -c, --cache string        cache dir (default - ~/.cache/para if exists or /tmp/para-$UID)
  -r, --refresh duration    attempt to refresh remote indices every given interval (default 1h0m0s)
  -t, --terraform string    Terraform version to download (default - latest)
  -g, --terragrunt string   Terragrunt version to download (default - latest)
  -u, --unmount string      force unmount dir (just unmount the given dir and exit, all other flags and arguments ignored)
  -h, --help                help for this command