@lbrlabs/pulumi-tailscalebastion
Version:
This repo provides a [multi-language](https://www.pulumi.com/blog/pulumiup-pulumi-packages-multi-language-components/) component that creates a [Tailscale](https://tailscale.com/) [Subnet Router](https://tailscale.com/kb/1019/subnets/) in your chosen clou
91 lines (90 loc) • 2.95 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export declare class Bastion extends pulumi.ComponentResource {
/**
* Returns true if the given object is an instance of Bastion. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is Bastion;
/**
* The name of the ASG that managed the bastion instances
*/
readonly asgName: pulumi.Output<string>;
/**
* The SSH private key to access your bastion
*/
readonly privateKey: pulumi.Output<string>;
/**
* Create a Bastion resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: BastionArgs, opts?: pulumi.ComponentResourceOptions);
}
/**
* The set of arguments for constructing a Bastion resource.
*/
export interface BastionArgs {
/**
* The CPU architecture for the bastion (x86_64 or arm64).
*/
architecture?: pulumi.Input<string>;
/**
* Whether the bastion advertises itself as an app connector.
*/
enableAppConnector?: pulumi.Input<boolean>;
/**
* Whether the subnet router can advertise itself as an exit node.
*/
enableExitNode?: pulumi.Input<boolean>;
/**
* Whether to enable SSH access to the bastion.
*/
enableSSH?: pulumi.Input<boolean>;
/**
* Whether the bastion should be highly available.
*/
highAvailability: pulumi.Input<boolean>;
/**
* The hostname of the bastion.
*/
hostname?: pulumi.Input<string>;
/**
* The EC2 instance type to use for the bastion.
*/
instanceType?: pulumi.Input<string>;
/**
* An OAuth Client Secret to use for authenticating Tailscale clients.
*/
oauthClientSecret?: pulumi.Input<string>;
/**
* Settings for configuring this node as a peer relay server.
*/
peerRelaySettings?: pulumi.Input<inputs.PeerRelaySettingsArgs>;
/**
* Whether the bastion is going in public subnets.
*/
public?: pulumi.Input<boolean>;
/**
* The AWS region you're using.
*/
region: pulumi.Input<string>;
/**
* The routes you'd like to advertise via tailscale.
*/
routes?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The subnet Ids to launch instances in.
*/
subnetIds: pulumi.Input<pulumi.Input<string>[]>;
/**
* The tags to apply to the tailnet device andauth key. This tag should be added to your oauth key and ACL.
*/
tailscaleTags: pulumi.Input<pulumi.Input<string>[]>;
/**
* The VPC the Bastion should be created in.
*/
vpcId: pulumi.Input<string>;
}