Claude-skill-registry import-pulumi
Guide for importing existing Google Cloud resources into Pulumi state. Use when the user says "import resource to Pulumi", "add existing GCP resource", or needs to bring existing infrastructure under Pulumi management.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/import-pulumi" ~/.claude/skills/majiayu000-claude-skill-registry-import-pulumi && rm -rf "$T"
manifest:
skills/data/import-pulumi/SKILL.mdsource content
import-pulumi
Import existing GCP resources into Pulumi state.
Trigger Examples
- "Import resource to Pulumi"
- "Add existing GCP resource to state"
- "Bring this resource under Pulumi management"
Prerequisites
- Pulumi project exists under
infra/ - Target resources already exist in Google Cloud
- Pulumi backend (GCS) is configured
- Authentication to Google Cloud is available
Execution Flow
1. Confirm Stack and Resource Type
Validate stack is one of:
shared, dev, prod
2. Gather Resource Information
Prompt for GCP metadata:
- Project ID (e.g.,
)koborin-ai - Region/location (
)asia-northeast1 - Resource name/ID
- Any secondary identifiers
3. Resolve Pulumi Resource Name
Inspect
infra/src/stacks/*.ts to find the Pulumi resource name.
4. Build Import Command
Use CLI-based import (NOT code-based import options):
cd infra pulumi stack select <stack> pulumi import <resource-type> <resource-name> "<import-id>" --yes
5. Provide Command to User
Run the following commands: cd infra export PULUMI_BACKEND_URL=gs://${BUCKET_NAME}/pulumi export PULUMI_CONFIG_PASSPHRASE="" pulumi stack select <stack> pulumi import <resource-type> <resource-name> "<import-id>" --yes Let me know "success" or share the error output.
6. Wait for Result
- Success: Move to next resource or verify with
pulumi preview - Failure: Analyze error and adjust
7. Verify After Imports
pulumi stack ls pulumi preview # Expected: minimal changes
Import ID Formats
| Resource Type | Import ID Format |
|---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Example: Import Cloud Run Service
Command:
/import-pulumi dev cloudrunv2/service:Service
Conversation:
Please share the existing resource information: - Project ID: - Location (region): - Service name:
User:
Project ID: koborin-ai Location: asia-northeast1 Service name: koborin-ai-web-dev
Agent:
Run the following commands: cd infra pulumi stack select dev pulumi import gcp:cloudrunv2/service:Service web-dev \ "projects/koborin-ai/locations/asia-northeast1/services/koborin-ai-web-dev" --yes Let me know the result.
Important Notes
-
CLI Import Only: Always use
command. Never use code-basedpulumi import
options in resource definitions.import -
One at a Time: Import resources one at a time, waiting for confirmation.
-
Verify After: Always run
after importing to spot drift.pulumi preview -
CI/CD Only for Apply: Import can be done locally, but
should only run via GitHub Actions.pulumi up
Error Handling
- "Resource already exists in state": Check with
and skippulumi stack - "Resource not found": Verify identifiers and project/region
- "Permission denied": Authenticate with sufficient IAM roles