From 4e57e2dba76add042c8922a8c2e775794c5ac947 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Fri, 3 Jul 2026 12:29:39 +1000 Subject: [PATCH] Rename resources to litellm_secret_* prefix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use the shorter, cleaner litellm_ resource prefix instead of litellmvaultsecret_. The provider source stays git.unkin.net/unkin/ litellmvaultsecret; only the resource prefix (provider Metadata TypeName) changes to litellm, declared under the local name litellm in required_providers — the same pattern google-beta uses to ship google_*. - Provider TypeName litellmvaultsecret -> litellm - Resources: litellm_secret_backend, litellm_secret_backend_role - Update examples (dirs + contents), README, and the e2e terraform config --- README.md | 22 +++++++++++-------- .../main.tf | 6 ++--- .../main.tf | 4 ++-- internal/provider/provider.go | 5 ++++- test/e2e/main.tf | 10 ++++----- 5 files changed, 27 insertions(+), 20 deletions(-) rename examples/resources/{litellmvaultsecret_secret_backend => litellm_secret_backend}/main.tf (79%) rename examples/resources/{litellmvaultsecret_secret_backend_role => litellm_secret_backend_role}/main.tf (63%) diff --git a/README.md b/README.md index 76ecafc..37f1dd2 100644 --- a/README.md +++ b/README.md @@ -13,21 +13,25 @@ config, and the roles that scope generated virtual keys — for use from ```hcl terraform { required_providers { - litellmvaultsecret = { + litellm = { source = "git.unkin.net/unkin/litellmvaultsecret" } } } -provider "litellmvaultsecret" { +provider "litellm" { address = "https://vault.example.com" # or VAULT_ADDR token = var.vault_token # or VAULT_TOKEN } ``` +> The provider's source is `git.unkin.net/unkin/litellmvaultsecret`, but its +> resources are prefixed `litellm_`. Declare it under the local name `litellm` +> (as above), the same way `google-beta` ships `google_*` resources. + ## Resources -### `litellmvaultsecret_secret_backend` +### `litellm_secret_backend` Mounts the engine and writes its connection config. @@ -40,7 +44,7 @@ Mounts the engine and writes its connection config. | `description` | no | Mount description. | | `request_timeout_seconds` | no | Plugin→LiteLLM HTTP timeout (default 30). | -### `litellmvaultsecret_secret_backend_role` +### `litellm_secret_backend_role` Manages a role that constrains generated keys. @@ -58,14 +62,14 @@ Manages a role that constrains generated keys. ## Example ```hcl -resource "litellmvaultsecret_secret_backend" "litellm" { +resource "litellm_secret_backend" "litellm" { path = "litellm" base_url = "http://litellm.litellm.svc:4000" master_key = var.litellm_master_key } -resource "litellmvaultsecret_secret_backend_role" "team_a" { - backend = litellmvaultsecret_secret_backend.litellm.path +resource "litellm_secret_backend_role" "team_a" { + backend = litellm_secret_backend.litellm.path name = "team-a" models = ["gpt-3.5-turbo", "gpt-4"] max_budget = 50 @@ -80,8 +84,8 @@ budgeted, lease-bound virtual key. ## Import ```sh -terraform import litellmvaultsecret_secret_backend.litellm litellm -terraform import litellmvaultsecret_secret_backend_role.team_a litellm/roles/team-a +terraform import litellm_secret_backend.litellm litellm +terraform import litellm_secret_backend_role.team_a litellm/roles/team-a ``` ## Development diff --git a/examples/resources/litellmvaultsecret_secret_backend/main.tf b/examples/resources/litellm_secret_backend/main.tf similarity index 79% rename from examples/resources/litellmvaultsecret_secret_backend/main.tf rename to examples/resources/litellm_secret_backend/main.tf index d0aeee1..e0febaf 100644 --- a/examples/resources/litellmvaultsecret_secret_backend/main.tf +++ b/examples/resources/litellm_secret_backend/main.tf @@ -1,17 +1,17 @@ terraform { required_providers { - litellmvaultsecret = { + litellm = { source = "git.unkin.net/unkin/litellmvaultsecret" } } } -provider "litellmvaultsecret" { +provider "litellm" { # address and token fall back to VAULT_ADDR / VAULT_TOKEN address = "https://vault.example.com" } -resource "litellmvaultsecret_secret_backend" "litellm" { +resource "litellm_secret_backend" "litellm" { path = "litellm" description = "LiteLLM dynamic virtual keys" base_url = "http://litellm.litellm.svc:4000" diff --git a/examples/resources/litellmvaultsecret_secret_backend_role/main.tf b/examples/resources/litellm_secret_backend_role/main.tf similarity index 63% rename from examples/resources/litellmvaultsecret_secret_backend_role/main.tf rename to examples/resources/litellm_secret_backend_role/main.tf index aa2163b..6fa3034 100644 --- a/examples/resources/litellmvaultsecret_secret_backend_role/main.tf +++ b/examples/resources/litellm_secret_backend_role/main.tf @@ -1,5 +1,5 @@ -resource "litellmvaultsecret_secret_backend_role" "team_a" { - backend = litellmvaultsecret_secret_backend.litellm.path +resource "litellm_secret_backend_role" "team_a" { + backend = litellm_secret_backend.litellm.path name = "team-a" models = ["gpt-3.5-turbo", "gpt-4"] diff --git a/internal/provider/provider.go b/internal/provider/provider.go index f6b1d5b..8eef1ec 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -29,7 +29,10 @@ func New(version string) func() provider.Provider { } func (p *litellmProvider) Metadata(_ context.Context, _ provider.MetadataRequest, resp *provider.MetadataResponse) { - resp.TypeName = "litellmvaultsecret" + // The provider's source address is git.unkin.net/unkin/litellmvaultsecret, + // but its resources are prefixed "litellm_" (declare it in required_providers + // under the local name "litellm"), mirroring how google-beta ships google_*. + resp.TypeName = "litellm" resp.Version = p.version } diff --git a/test/e2e/main.tf b/test/e2e/main.tf index 53188bb..d7699ec 100644 --- a/test/e2e/main.tf +++ b/test/e2e/main.tf @@ -1,17 +1,17 @@ terraform { required_providers { - litellmvaultsecret = { + litellm = { source = "git.unkin.net/unkin/litellmvaultsecret" } } } -provider "litellmvaultsecret" { +provider "litellm" { address = "http://127.0.0.1:8200" token = "root" } -resource "litellmvaultsecret_secret_backend" "litellm" { +resource "litellm_secret_backend" "litellm" { path = "litellm" description = "LiteLLM dynamic virtual keys (e2e)" # Reachable from inside the vault container, where the plugin runs. @@ -19,8 +19,8 @@ resource "litellmvaultsecret_secret_backend" "litellm" { master_key = "sk-master-e2e-1234" } -resource "litellmvaultsecret_secret_backend_role" "team_a" { - backend = litellmvaultsecret_secret_backend.litellm.path +resource "litellm_secret_backend_role" "team_a" { + backend = litellm_secret_backend.litellm.path name = "team-a" models = ["gpt-3.5-turbo"] max_budget = 10