connecti

Quickly connect to any subnet.

Connect to any subnet

If you're provisioning cloud infrastructure correctly, you'll provision sensitive services in private subnets. This means they're often not routable from your machine or your CI/CD infrastructure.

connecti uses Pulumi's Automation API to create Tailscale API keys, store them in your cloud provider's secret store, and then creates a small compute node for which to advertise routes for you.

Get Started

To get started you will need to install connecti, install the Pulumi CLI, and set up your Tailscale and cloud provider configuration.

Pick a Cloud

1

Install connecti

Homebrew

$ brew install jaxxstorm/tap/connecti

Copy

Scoop

$ scoop bucket add jaxxstorm https://github.com/jaxxstorm/scoop-bucket.git

Copy

$ scoop install connecti

Copy
2

Configure Pulumi

Install Pulumi CLI

You can easily install the Pulumi CLI via the Install Script or Homebrew. For information on other methods of installing Pulumi, see Pulumi's Documentation.

Install Script

$ curl -fsSL https://get.pulumi.com | sh

Copy
Homebrew

$ brew install pulumi/tap/pulumi

Copy

Configure State Management

Pulumi needs to store metadata about your infrastructure so that it can manage your resources. You have the option to manage state by yourself via your local file system or cloud storage service, but we recommend using the Pulumi Service to get the full value out of connecti.

Pulumi Service (Recommended)

$ pulumi login

Copy
Open Source

Please visit Pulumi's Documentation to learn more about their Open Source Backend Options.

Configure Cloud

Please take a look at Pulumi's Documentation for information on how to configure your credentials.

3

Setup Tailscale

Create Tailscale Account

Download Tailscale

Create Tailscale API Key

4

Create Connection

You can create a connection by running the following command:

$ connecti connect kubernetes --routes="<your_route>"

Copy
5

Disconnect

List Connections

You can view the names of open connections via the list command:

$ connecti list

Copy

Disconnect

$ connecti disconnect kubernetes --name <your-connection-name>

Copy