Salt Extension for Vault
raw JSON → 1.5.0 verified Sat May 09 auth: no python
Salt Extension for interacting with HashiCorp Vault or OpenBao. Provides execution modules, state modules, pillars, and renderers for managing secrets, policies, tokens, and more. Current version: 1.5.0. Release cadence: irregular, roughly quarterly.
pip install saltext-vault Common errors
error ImportError: No module named 'vault' ↓
cause Attempting to import 'vault' directly instead of the saltext.vault package.
fix
Install saltext-vault and use
from saltext.vault.modules import vault_exec. error ModuleNotFoundError: No module named 'saltext' ↓
cause The saltext-vault package is not installed.
fix
Run
pip install saltext-vault. Warnings
breaking Python 3.7 support was dropped in v1.1.0. Requires Python >=3.10 as of v1.5.0. ↓
fix Upgrade Python to 3.10 or later.
gotcha The import path is `saltext.vault.modules` not `vault`. Do not `import vault` or `from vault import ...`. ↓
fix Use `from saltext.vault.modules import ...` or load via Salt's loader.
deprecated Some older configuration keys for Vault connection have been deprecated in favor of the `vault` pillar configuration. ↓
fix Follow the official docs for the current configuration schema.
Imports
- vault_exec wrong
import vault_execcorrectfrom saltext.vault.modules import vault_exec - vault_state wrong
from vault import vault_statecorrectfrom saltext.vault.states import vault_state
Quickstart
import salt.config
import salt.loader
# Minimal test: Load the vault execution module
opts = salt.config.minion_config('/etc/salt/minion')
opts['extension_modules'] = '/srv/salt/ext' # adjust as needed
utils = salt.loader.utils(opts)
modules = salt.loader.minion_mods(opts, utils=utils)
# Assuming a vault connection is configured, call vault.list_secrets
# Replace with actual call if needed
print('saltext-vault modules loaded successfully')