pulumi-tailscale
A Pulumi package for creating and managing Tailscale cloud resources.
What it is and what it does
pulumi-tailscale is a Pulumi resource provider that bridges Tailscale's API into Pulumi's infrastructure-as-code framework. It lets you define Tailscale network resources—devices, users, DNS records, access control policies—declaratively in Python (or other Pulumi-supported languages) and manage them as part of a larger infrastructure stack. You write Python code using Pulumi's resource model, and the provider translates those declarations into Tailscale API calls.
The package depends on pulumi as its core framework, plus parver and semver for version handling, and typing-extensions for runtime type hints. It requires Python 3.9 or later and authentication via either a Tailscale API key or OAuth client credentials, both supplied through environment variables or Pulumi configuration. With no known vulnerabilities, active maintenance, and a permissive Apache-2.0 license, it's a straightforward addition to a Pulumi-based infrastructure workflow.
Use it for:
- Provision and manage Tailscale devices and network access as part of a larger infrastructure-as-code deployment.
- Automate DNS and access control policy updates across your Tailscale network using Pulumi stacks.
- Integrate Tailscale resource management into CI/CD pipelines that already use Pulumi for infrastructure.
- Define multi-environment Tailscale configurations (dev, staging, prod) in code and deploy them consistently.
- Track Tailscale network state in version control and collaborate on network changes via code review.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Pulumi resource provider that lets you declare and manage Tailscale network resources—devices, users, DNS settings, and access controls—as infrastructure code.
Yes, if you use Pulumi for infrastructure and need to manage Tailscale resources programmatically. The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive license. Install it as a standard Pulumi provider dependency when your infrastructure code needs to declare or update Tailscale network resources.
Install
pulumi-tailscale on PyPI
pip
pip install pulumi-tailscaleuv
uv add pulumi-tailscalepoetry
poetry add pulumi-tailscaleInstalling pulumi-tailscale
Before you install
Low friction: pure Python wheel with four lightweight runtime dependencies (parver, pulumi, semver, typing-extensions). Actively maintained with a recent release 32 days ago and no known vulnerabilities.
License in practice
Apache-2.0 is permissive: you can use, modify, and distribute this package freely in commercial and private projects, with minimal obligations beyond retaining the license notice.
Quickstart
pip install pulumi_tailscale
import pulumi
import pulumi_tailscale as tailscale
# Requires TAILSCALE_API_KEY and TAILSCALE_TAILNET environment variables
device = tailscale.Device("my-device", ...)
Requires Python >=3.9 and Tailscale API credentials (API key or OAuth client credentials) set via environment variables or Pulumi config.
Verify before relying
- Exact list of Tailscale resource types (devices, users, DNS, ACLs, etc.) supported by version 0.29.0.
- Whether this provider supports all Tailscale API features or a subset; scope of coverage relative to the full Tailscale API.
- Performance characteristics or limits when managing large numbers of Tailscale resources.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — parver, pulumi, semver, typing-extensions |
| Maintenance | actively maintained — 32 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 424,970/month — #6,762 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pulumi_tailscale-0.29.0-py3-none-any.whl
Keywords: pulumi, tailscale
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
pulumi-cloudflarePulumi provider for Cloudflare that lets you…
permissive · top 15,000 on PyPI
pulumi-datadogPulumi provider for declaring and managing…
permissive · top 5,000 on PyPI
pulumi-dockerPulumi provider for managing Docker resources…
permissive · top 5,000 on PyPI
tailscaleAsynchronous Python client for querying and…
permissive · top 15,000 on PyPI
pulumi-githubPulumi provider for GitHub that lets you define…
permissive · top 15,000 on PyPI
pulumi-auth0A Pulumi resource provider that lets you…
permissive · top 15,000 on PyPI
pulumiverse-grafanaA Pulumi resource provider that lets you create…
permissive · top 15,000 on PyPI
pulumi-postgresqlPulumi resource provider for declaring and…
permissive · top 15,000 on PyPI
pulumi-gitlabPulumi provider for GitLab that lets you define…
permissive · top 15,000 on PyPI
pulumi-snowflakeA Pulumi resource provider that lets you…
permissive · top 15,000 on PyPI