Configuration¶
To use the Vault Autopilot CLI, you need to provide credentials to access your Vault server. This can be done through either a configuration file or environment variables.
Configuration File¶
If you choose to use a configuration file, simply specify the file’s path along with the –config flag before running any command. For example:
$ vault-autopilot --config "vault-autopilot.yaml" apply [ARGS]...
This tells the CLI to use the settings in your vault-autopilot.yaml
file
when executing the apply command. Just be sure to replace
vault-autopilot.yaml
with the actual path to your file.
Config File Example¶
Here’s an example of what your configuration file might look like:
baseUrl: "https://localhost:8200"
auth:
method: token
token: "<TOKEN>"
storage:
type: "kvv1-secret"
Environment Variables¶
Alternatively, you can set environment variables to configure the Vault Autopilot CLI.
Precedence¶
If both a configuration file and environment variables are provided, the environment variables will take precedence. This allows you to override specific settings in your configuration file with environment variables.
For example, if your vault-autopilot.yaml
file contains:
baseUrl: "https://localhost:8200"
auth:
method: token
token: "<TOKEN>"
storage:
type: "kvv1-secret"
And you set the following environment variable:
export AUTH__TOKEN="<NEW_TOKEN>"
The NEW_TOKEN
value will be used instead of the value in the
vault-autopilot.yaml
file.
Configuration keys¶
This section documents all configuration keys, presented in JSON schema format:
{
"$defs": {
"KubernetesAuthMethod": {
"additionalProperties": false,
"properties": {
"role": {
"title": "Role",
"type": "string"
},
"jwt": {
"format": "password",
"title": "Jwt",
"type": "string",
"writeOnly": true
},
"mount_path": {
"title": "Mount Path",
"type": "string"
},
"method": {
"const": "kubernetes",
"enum": [
"kubernetes"
],
"title": "Method",
"type": "string"
}
},
"required": [
"role",
"jwt",
"mount_path",
"method"
],
"title": "KubernetesAuthMethod",
"type": "object"
},
"TokenAuthMethod": {
"additionalProperties": false,
"properties": {
"token": {
"format": "password",
"title": "Token",
"type": "string",
"writeOnly": true
},
"source": {
"default": "directvalue",
"enum": [
"directvalue",
"filebasedvalue"
],
"title": "Source",
"type": "string"
},
"method": {
"const": "token",
"enum": [
"token"
],
"title": "Method",
"type": "string"
}
},
"required": [
"token",
"method"
],
"title": "TokenAuthMethod",
"type": "object"
},
"VaultSecretStorage": {
"properties": {
"type": {
"const": "kvv1-secret",
"enum": [
"kvv1-secret"
],
"title": "Type",
"type": "string"
},
"secretsEnginePath": {
"default": "hqdncw.github.io/vault-autopilot/user-data",
"title": "Secretsenginepath",
"type": "string"
},
"snapshotsSecretPath": {
"default": "snapshots",
"title": "Snapshotssecretpath",
"type": "string"
}
},
"required": [
"type"
],
"title": "VaultSecretStorage",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"baseUrl": {
"title": "Baseurl",
"type": "string"
},
"storage": {
"$ref": "#/$defs/VaultSecretStorage"
},
"auth": {
"discriminator": {
"mapping": {
"kubernetes": "#/$defs/KubernetesAuthMethod",
"token": "#/$defs/TokenAuthMethod"
},
"propertyName": "method"
},
"oneOf": [
{
"$ref": "#/$defs/KubernetesAuthMethod"
},
{
"$ref": "#/$defs/TokenAuthMethod"
}
],
"title": "Auth"
},
"defaultNamespace": {
"default": "",
"title": "Defaultnamespace",
"type": "string"
}
},
"required": [
"baseUrl",
"storage",
"auth"
],
"title": "Settings",
"type": "object"
}