Kuckit GCP infrastructure provider - deploys to Cloud Run with Cloud SQL, Redis, and Artifact Registry
npm install @kuckit/infra-gcpGCP infrastructure provider for Kuckit applications. Deploys to Google Cloud Platform with:
- Cloud Run - Containerized application hosting
- Cloud SQL (PostgreSQL) - Managed database
- Memorystore (Redis) - Caching and sessions
- Artifact Registry - Container image storage
- VPC with Direct VPC Egress - Private networking
- Pulumi CLI
- Google Cloud SDK (gcloud)
- GCP project with billing enabled
- Authenticated via gcloud auth login and gcloud auth application-default login
``bash`
bun add -D @kuckit/infra-gcpor
npm install -D @kuckit/infra-gcp
This package is used by the Kuckit CLI. After installation:
`bashOne-command deploy (init + deploy)
bunx kuckit infra up --env dev
How It Works
1.
kuckit infra init - Creates base infrastructure without deploying the app:
- VPC with private subnets
- Cloud SQL PostgreSQL instance
- Memorystore Redis instance
- Artifact Registry repository
- Service accounts with minimal permissions2.
kuckit infra deploy - Builds and deploys your application:
- Builds Docker image using Cloud Build
- Pushes to Artifact Registry
- Deploys Cloud Run service with VPC connector
- Configures secrets and environment variablesConfiguration
Infrastructure configuration is stored per-environment in
.kuckit/:| File | Environment | Description |
| ------------------------- | ----------- | ------------------------------- |
|
.kuckit/infra.dev.json | Development | Dev environment settings |
| .kuckit/infra.prod.json | Production | Production environment settings |
| .kuckit/infra.json | Fallback | Legacy/default configuration |Example configuration:
`json
{
"provider": "gcp",
"providerPackage": "@kuckit/infra-gcp",
"region": "us-central1",
"env": "dev",
"providerConfig": {
"gcpProject": "your-gcp-project"
}
}
`$3
The infrastructure uses Pulumi project name
kuckit-infra. Stack names follow the pattern {gcpProject}-{env}.> ⚠️ Important: Changing the Pulumi project name causes resource recreation. See AGENTS.md for details.
Managing Configuration
`bash
Set custom domain
bunx kuckit infra config set appUrl https://app.example.com --env prodSet Polar environment
bunx kuckit infra config set polarEnvironment production --env prodList all config
bunx kuckit infra config list --env prod
`Ejecting for Customization
If you need to customize the infrastructure beyond what the provider offers:
`bash
bunx kuckit infra eject
`This copies the Pulumi code to your project's
infra/ directory for full customization.Environment Defaults
| Setting | Dev | Prod |
| ---------------- | ----------- | ----------- |
| Cloud Run CPU | 1 | 2 |
| Cloud Run Memory | 512Mi | 1Gi |
| Min Instances | 0 | 1 |
| Max Instances | 2 | 10 |
| Cloud SQL Tier | db-f1-micro | db-g1-small |
API Reference
This package exports:
`typescript
import { provider, gcpProvider } from '@kuckit/infra-gcp'
import type { GcpInfraConfig, GcpOutputs } from '@kuckit/infra-gcp'
`The provider implements the
KuckitInfraProvider interface from @kuckit/cli`.- Deployment Guide
- AGENTS.md - Provider internals and advanced configuration
MIT