feat: manage litellm secrets engine via terraform-provider-litellmvaultsecret
ci/woodpecker/pr/pre-commit Pipeline failed
ci/woodpecker/pr/plan Pipeline failed

The vault-plugin-secrets-litellm engine mints LiteLLM virtual keys and is
now registered in Vault, but nothing declared its mount/config or roles in
this repo. Wire in the companion litellm provider so the mount is managed
as code alongside the other secret backends.

- Add litellm_secret_backend module: mounts the engine and writes its
  config (base_url, request_timeout_seconds); reads master_key from KV
- Add litellm_secret_backend_role module: manages roles (models,
  max_budget, key_alias_prefix, ttl/max_ttl seconds, metadata)
- Register both modules in vault_cluster main.tf and variables.tf
- Discover litellm_secret_backend[_role] YAML in config.hcl and pass them
  through terragrunt inputs
- Declare the litellm provider (git.unkin.net/unkin/litellmvaultsecret) and
  a provider block in the generated root backend.tf
- Add example config for the litellm mount and a sample role
This commit is contained in:
2026-07-07 00:00:43 +10:00
parent bbde79d2a6
commit bf2c553716
13 changed files with 227 additions and 0 deletions
+10
View File
@@ -11,6 +11,12 @@ provider "vault" {
address = local.vault_addr
}
# The LiteLLM secrets engine is managed through its own provider, which talks to
# the same Vault server. Token falls back to the VAULT_TOKEN environment variable.
provider "litellm" {
address = local.vault_addr
}
terraform {
backend "consul" {
address = "https://consul.service.consul"
@@ -29,6 +35,10 @@ terraform {
source = "hashicorp/consul"
version = "2.23.0"
}
litellm = {
source = "git.unkin.net/unkin/litellmvaultsecret"
version = "0.1.0"
}
}
}
EOF