Wire Stripe billing secrets and env vars into Soma Cloud Run
- stripe-billing.tf: Secret Manager resources for all billing IDs: meters (input/output), plan prices (free/professional/founding), overage prices per plan per token type - cloud-run-soma.tf: inject all 13 Stripe env vars into the Soma service via Secret Manager secret_key_ref; add billing secrets to depends_on
This commit is contained in:
@@ -287,6 +287,138 @@ resource "google_cloud_run_v2_service" "soma_us" {
|
||||
value = "claude-sonnet-4-5"
|
||||
}
|
||||
|
||||
# ── Stripe billing ────────────────────────────────────────────────────────
|
||||
|
||||
env {
|
||||
name = "STRIPE_SECRET_KEY"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_secret_key.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_WEBHOOK_SECRET"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_webhook_secret.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_FREE_PLAN"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_free_plan.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_PROFESSIONAL_PLAN"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_professional_plan.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_FOUNDING_PLAN"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_founding_plan.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_METER_ID_INPUT_TOKENS"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_meter_id_input_tokens.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_METER_ID_OUTPUT_TOKENS"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_meter_id_output_tokens.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_FREE_INPUT_OVERAGE"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_free_input_overage.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_FREE_OUTPUT_OVERAGE"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_free_output_overage.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_PROFESSIONAL_INPUT_OVERAGE"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_professional_input_overage.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_PROFESSIONAL_OUTPUT_OVERAGE"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_professional_output_overage.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_FOUNDING_INPUT_OVERAGE"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_founding_input_overage.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "STRIPE_PRICE_FOUNDING_OUTPUT_OVERAGE"
|
||||
value_source {
|
||||
secret_key_ref {
|
||||
secret = google_secret_manager_secret.stripe_price_founding_output_overage.secret_id
|
||||
version = "latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ports {
|
||||
container_port = 8080
|
||||
name = "http1"
|
||||
@@ -331,6 +463,21 @@ resource "google_cloud_run_v2_service" "soma_us" {
|
||||
google_secret_manager_secret_version.soma_node_secret,
|
||||
google_secret_manager_secret_version.soma_key_secret,
|
||||
google_secret_manager_secret_version.soma_anthropic_api_key,
|
||||
# Stripe billing secrets — must exist before Cloud Run deploy.
|
||||
# Versions are populated by provision_stripe_billing.py.
|
||||
google_secret_manager_secret.stripe_secret_key,
|
||||
google_secret_manager_secret.stripe_webhook_secret,
|
||||
google_secret_manager_secret.stripe_price_free_plan,
|
||||
google_secret_manager_secret.stripe_price_professional_plan,
|
||||
google_secret_manager_secret.stripe_price_founding_plan,
|
||||
google_secret_manager_secret.stripe_meter_id_input_tokens,
|
||||
google_secret_manager_secret.stripe_meter_id_output_tokens,
|
||||
google_secret_manager_secret.stripe_price_free_input_overage,
|
||||
google_secret_manager_secret.stripe_price_free_output_overage,
|
||||
google_secret_manager_secret.stripe_price_professional_input_overage,
|
||||
google_secret_manager_secret.stripe_price_professional_output_overage,
|
||||
google_secret_manager_secret.stripe_price_founding_input_overage,
|
||||
google_secret_manager_secret.stripe_price_founding_output_overage,
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user