Configuration
e.g.
registries:
- type: standard
  ref: v4.155.1 # renovate: depName=aquaproj/aqua-registry
packages:
- name: helm/helm@v3.7.0
- name: golangci/golangci-lint@v1.42.1
- import: aqua/*.yaml
Configuration File Path
aqua searches the following configuration files.
- --config (-c)option (environment variable- AQUA_CONFIG
- \.?aqua\.ya?mlor- \.?aqua/aqua\.ya?mlfrom the current directory to the root directory. If configuration files are found in the multiple directories, aqua read all of them
- global configuration: environment variable AQUA_GLOBAL_CONFIG
To install tools in global configuration files, you have to set -a to aqua install command.
Environment variables
- AQUA_LOG_LEVEL: (default:- info) Log level
- AQUA_CONFIG: configuration file path
- AQUA_GLOBAL_CONFIG: global configuration file paths separated by semicolon :
- AQUA_POLICY_CONFIG: policy file paths separated by semicolon- :
- AQUA_DISABLE_COSIGN:- aqua >= v2.22.0If true, the verification with Cosign is disabled
- AQUA_DISABLE_SLSA:- aqua >= v2.22.0If true, the verification with SLSA Provenance is disabled
- AQUA_DISABLE_GITHUB_ARTIFACT_ATTESTATION:- aqua >= v2.35.0If true, the verification using GitHub Artifact Attestations is disabled
- AQUA_DISABLE_POLICY: If true, Policy is disabled (aqua >= v2.1.0)
- AQUA_DISABLE_LAZY_INSTALL: If true, Lazy Install is disabled (aqua >= v2.9.0)
- AQUA_ROOT_DIR: The directory path where aqua install tools- default (linux and macOS): ${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua
- default (windows): ${HOME/AppData/Local}/aquaproj-aqua
 
- default (linux and macOS): 
- AQUA_MAX_PARALLELISM: (default:- 5) The maximum number of packages which are installed in parallel at the same time
- AQUA_GITHUB_TOKEN,- GITHUB_TOKEN: GitHub Access Token. This is required to install private repository's package
- AQUA_GHTKN_ENABLED aqua >= v2.54.0
- AQUA_KEYRING_ENABLED aqua >= v2.51.0
- AQUA_LOG_COLOR: Log color setting (always|auto|never)
- AQUA_PROGRESS_BAR: The progress bar is disabled by default, but you can enable it by setting the environment variable AQUA_PROGRESS_BARtotrue
- AQUA_GOOS, AQUA_GOARCH
- AQUA_X_SYS_EXEC
- (Deprecated) AQUA_EXPERIMENTAL_X_SYS_EXEC
- AQUA_GENERATE_WITH_DETAIL: (boolean, default:- false) If true, aqua outputs additional information such as description and link #2027 #2062 (aqua >= v2.9.0)
$ env AQUA_GENERATE_WITH_DETAIL=true aqua g cli/cli
- name: cli/cli@v2.2.0
  description: GitHub’s official command line tool
  link: https://github.com/cli/cli
- AQUA_REMOVE_MODE:- aqua removecommand's- -modeoption
JSON Schema
- https://github.com/aquaproj/aqua/tree/main/json-schema
- https://github.com/aquaproj/aqua/blob/main/json-schema/aqua-yaml.json
- https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-yaml.json
Input Complementation by YAML Language Server
Add a code comment to aqua.yaml:
# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-yaml.json
If you specify a branch like main as version, editors can't reflect the update of JSON Schema well as they cache JSON Schema.
You would need to do something like reopening the file.
So it's good to specify semver and update it periodically.
# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/v2.40.0/json-schema/aqua-yaml.json
Using Renovate and our Renovate Config Preset, you can automate the update:
{
  "extends": [
    "github>suzuki-shunsuke/renovate-config:yaml-language-server#3.0.0"
  ]
}
e.g. https://github.com/aquaproj/aqua-installer/pull/735
Configuration attributes
- registries: The list of registries
- packages: The list of installed packages
- checksum: configuration for checksum verification
- import_dir: A directory path where files are imported. aqua >= v2.44.0
registries
e.g.
registries:
- type: standard
  ref: v4.155.1 # renovate: depName=aquaproj/aqua-registry
Registry types
- standard: aqua's Standard Registry
- local: local file
- github_content: Get the registry by GitHub Repository Content API
standard registry
e.g.
registries:
- type: standard
  ref: v4.155.1 # renovate: depName=aquaproj/aqua-registry
- ref: the Registry Version. Please check Releases
This is equivalent to the following definition.
registries:
- name: standard
  type: github_content
  repo_owner: aquaproj
  repo_name: aqua-registry
  ref: v4.155.1 # renovate: depName=aquaproj/aqua-registry
  path: registry.yaml
You can also specify a commit hash as ref.
registries:
- type: standard
  ref: 0d1572334a460e5a74f2a6455e510d8a4d6c8e93
Don't specify a branch name as ref, because aqua treats the ref as immutable.
registries:
- type: standard
  ref: main # Specify a tag or commit hash
local registry
e.g.
registries:
- name: local
  type: local
  path: registry.yaml
- name: home
  type: local
  path: $HOME/aqua-registry.yaml
- name: Registry name
- path: The file path. Either absolute path or relative path from- aqua.yaml. If- pathstarts with- $HOME+- OS specific path separator such as '/', it's replaced with the home directory path
Please see Configuration (registry.yaml).
github_content registry
e.g.
registries:
- name: foo
  type: github_content
  repo_owner: aquaproj
  repo_name: aqua-registry
  ref: v4.155.1 # renovate: depName=aquaproj/aqua-registry
  path: registry.yaml
- name: Registry Name
- repo_owner: Repository Owner name
- repo_name: Repository name
- ref: Repository tag or commit hash. Don't specify a branch name as- ref, because aqua treats the ref as immutable
- path: file path from the repository root directory
packages
e.g.
packages:
- name: helm/helm
  version: v3.7.0 # renovate: depName=helm/helm
- name: golangci/golangci-lint@v1.42.1
  registry: standard
- name: (string, optional) package name. If- importisn't set, this is required- format: <package name>[@<package version>]
 
- format: 
- registry: (string, optional) registry name- default value is standard
 
- default value is 
- version: (string, optional) package version
- go_version_file: (string, optional)- aqua >= v2.28.0#2632 A file path to go.mod or go.work. This field is used to get the version of go from go directive in go.mod or go.work
- version_expr: (string, optional)- aqua >= v2.40.0Please see here for details
- version_expr_prefix: (string, optional)- aqua >= v2.40.0Please see here for details
- import: (string, optional) glob pattern of package files. This is relative path from the configuration file. This is parsed with filepath.Glob. Please see Split the list of packages too.
- tags: Filter installed packages. Please see Filter packages with tags
- update: The setting for- aqua updatecommand- update.enabled: If this is false,- aqua updatecommand ignores the package. If the package name is passed to aqua up command explicitly, enabled is ignored. By default, enabled is true.
 
- vars: (map of string) v2.31.0 #3052. Please see here
- command_aliases: (array of objects, optional) v2.37.0 #3224: Aliases of commands. Please see here
The following two configuration is equivalent.
- name: golangci/golangci-lint@v1.42.1
  registry: standard
- name: golangci/golangci-lint
  registry: standard
  version: v1.42.1
When you want to update the package with Renovate, the first style is better because you don't have to write code comments for Renovate's Regex Manager.
- name: golangci/golangci-lint
  registry: standard
  version: v1.43.0 # renovate: depName=golangci/golangci-lint
If the package name in the code comment is wrong, the package version is changed wrongly.
- name: golangci/golangci-lint
  registry: standard
  # depName is wrong!
  version: v1.42.1 # renovate: depName=helm/helm
On the other hand, you can prevent such a miss configuration by the first style.