Tailscale

VPN gatewaytailscale

Hosted coordination plane over a WireGuard mesh; a new tailnet starts with an allow-all policy.

Provider
default
Category
Edge
Properties · 5 set by this component
propertytypevaluesrequiredkind defaultthis component
activeActiveboolean—nofalse▸ false
bgpboolean—nofalse▸ false
defaultAcl · component propertyenumallow-all | customnoallow-allinherited
exitNode · component propertyboolean—nofalseinherited
managedboolean—nofalse▸ true
peerTypeenumsite-to-site | point-to-site | cloud-to-cloudno—▸ point-to-site
subnetRouter · component propertyboolean—nofalseinherited
throughputMbpsinteger—no—inherited
topology · component propertyenummesh | hub-and-spokenomeshinherited
tunnelTypeenumipsec | ssl | wireguardno—▸ wireguard
Rules that apply · 0

Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.

No rule reads this kind yet. That is a gap, not a guarantee.
Use it in a design
nodes:
  - { id: "tailscale", component: "tailscale" }
Other VPN gateway products · 18
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# Tailscale: hosted coordination plane over a WireGuard data plane. Devices form a
# peer-to-peer mesh (tailnet) with end-to-end encryption; per "Tailnet policy file",
# a new tailnet uses the default allow-all policy until ACLs are written.
schemaVersion: "1"
type: "component"
id: "tailscale"
kind: "vpn-gateway"
provider: "default"
docs: "https://tailscale.com/kb/1018/acls"
defaults:
  managed: true
  tunnelType: "wireguard"
  peerType: "point-to-site"
  bgp: false
  activeActive: false
properties:
  topology:
    type: "enum"
    values: ["mesh", "hub-and-spoke"]
    default: "mesh"
  defaultAcl:
    type: "enum"
    values: ["allow-all", "custom"]
    default: "allow-all"
  exitNode:
    type: "boolean"
    default: false
  subnetRouter:
    type: "boolean"
    default: false

The same page as markdown, for an agent: /catalogue/components/tailscale.md