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