-
Purpose: Boilerplate for creating native Pulumi providers.
-
Languages: Go, TypeScript, Python, .NET
-
Directory Structure
- /provider: Core logic for the custom Pulumi provider.
- provider.go: Main provider logic.
- cmd/pulumi-resource-xyz/main.go: Entry point for the resource.
- /sdk: SDKs for different languages.
- /go: Go SDK.
- /dotnet: .NET SDK.
- /nodejs: Node.js SDK.
- /python: Python SDK.
- /examples: Example Pulumi programs.
- /simple: A simple example with essential files.
- /deployment-templates: Templates for deployment.
- .goreleaser.yml: GoReleaser configuration.
- release.yml: GitHub Actions for release.
- /tests: Test scripts.
- provider_test.go: Tests for the provider logic.
- /provider: Core logic for the custom Pulumi provider.
- Clone Repo:
git clone https://github.com/usrbinkat/pulumi-kind.git
- Build Provider:
make build
- Run Tests:
make test
- Deploy:
make deploy
- Clone Boilerplate: Clone the pulumi-kind repo.
- Modify provider.go: Add your custom logic.
- Add Resources: Create new resource files in /provider.
- Update SDKs: Reflect changes in the /sdk directory for all languages.
- Test: Write and run tests.
- Deploy: Use the deployment templates.
- Go: Modify /sdk/go/xyz/provider.go and /sdk/go/xyz/random.go.
- .NET: Update /sdk/dotnet/Provider.cs and /sdk/dotnet/Random.cs.
- Node.js: Edit /sdk/nodejs/provider.ts and /sdk/nodejs/random.ts.
- Python: Change /sdk/python/pulumi_xyz/provider.py and /sdk/python/pulumi_xyz/random.py.