UNPKG

@twingate/pulumi-twingate

Version:

A Pulumi package for creating and managing Twingate cloud resources.

162 lines (101 loc) 4.15 kB
# Twingate Resource Provider The Twingate Resource Provider lets you manage [Twingate](https://www.twingate.com/) resources. ## Installing This package is available for several languages/platforms: ### Node.js (JavaScript/TypeScript) To use from JavaScript or TypeScript in Node.js, install using either `npm`: ```bash npm install @twingate/pulumi-twingate ``` or `yarn`: ```bash yarn add @twingate/pulumi-twingate ``` ### Python To use from Python, install using `pip`: ```bash pip install pulumi-twingate ``` ### Go To use from Go, use `go get` to grab the latest version of the library: ```bash go get github.com/pulumi/pulumi-twingate/sdk/go/... ``` ### .NET To use from .NET, install using `dotnet add package`: ```bash dotnet add package Twingate.Twingate ``` ## Configuration The following configuration points are available for the `twingate` provider: - `twingate:apiToken` - The access key for API operations. You can retrieve this from the Twingate Admin Console ([documentation](https://docs.twingate.com/docs/api-overview)). Alternatively, this can be specified using the TWINGATE_API_TOKEN environment variable. - `twingate:network` - Your Twingate network ID for API operations. You can find it in the Admin Console URL, for example: `autoco.twingate.com`, where `autoco` is your network ID. Alternatively, this can be specified using the TWINGATE_NETWORK environment variable. - `twingate:url` - The default is 'twingate.com'. This is optional and shouldn't be changed under normal circumstances. ## Reference For detailed reference documentation, please visit [the Pulumi registry](https://www.pulumi.com/registry/packages/twingate/api-docs/). ## Development ### Building the Provider Locally To build and test the provider from source: #### Prerequisites - **Go 1.24+**: Required to build the provider - **Node.js 22+**: Required for the Node.js/TypeScript SDK - **Pulumi CLI**: Install from [pulumi.com](https://www.pulumi.com/docs/install/) #### Build Steps 1. **Build the provider and SDKs:** ```bash # For full development build (all SDKs) make development # For just the provider and Node.js SDK make provider build_nodejs ``` 2. **Install the local provider plugin:** After building, you must install the locally built provider as a Pulumi plugin: ```bash pulumi plugin install resource twingate v4.1.0-alpha.1772811417+dirty \ --file bin/pulumi-resource-twingate ``` **Note:** The version string will match what's in your build (includes `+dirty` if you have uncommitted changes). #### Common Errors **Error: "404 HTTP error fetching plugin"** If you see this error when running `pulumi up` or `pulumi preview`: ``` error: Could not automatically download and install resource plugin 'pulumi-resource-twingate' at version v4.1.0-alpha.1772811417+dirty: 404 HTTP error fetching plugin from https://api.github.com/repos/Twingate/pulumi-twingate/releases/tags/... ``` **Solution:** This happens because you're using a local development build. Install the plugin manually: ```bash pulumi plugin install resource twingate v4.1.0-alpha.1772811417+dirty \ --file bin/pulumi-resource-twingate ``` Replace the version string with whatever version your build generated (check the error message for the exact version). **Verify installation:** ```bash pulumi plugin ls | grep twingate ``` You should see your local version listed. ### Testing GitHub Actions Workflows Locally You can test GitHub Actions workflows locally using [`act`](https://github.com/nektos/act). #### Install act On macOS with Homebrew: ```bash brew install act ``` On Linux: ```bash curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash ``` For other platforms, see the [act installation guide](https://github.com/nektos/act#installation). #### Run workflows locally To test a specific workflow job, use: ```bash # List all available jobs act --list # Test the lint workflow act pull_request -j lint ``` **Note:** The first time you run `act`, it will ask you to choose a Docker image size. Select "Medium" for most workflows.