Skip to content

Commit 20c06bc

Browse files
authored
terraform: refactor module inputs (#19)
* terraform: use tailscale_set_preferences for all (most) inputs This removes the `tailscale_ssh`, `tailscale_advertise_exit_node`, `tailscale_advertise_routes`, etc inputs that were just `tailscale set ...` calls. Use `tailscale_set_preferences` instead.
1 parent b8c9129 commit 20c06bc

File tree

19 files changed

+64
-257
lines changed

19 files changed

+64
-257
lines changed

terraform/aws/aws-ec2-autoscaling-dual-subnet/main.tf

+4-12
Original file line numberDiff line numberDiff line change
@@ -69,21 +69,13 @@ module "tailscale_aws_ec2_autoscaling" {
6969
tailscale_auth_key = tailscale_tailnet_key.main.key
7070
tailscale_set_preferences = [
7171
"--auto-update",
72+
"--ssh",
73+
"--advertise-connector",
74+
"--advertise-exit-node",
75+
"--advertise-routes=${join(",", [module.vpc.vpc_cidr_block])}",
7276
]
73-
tailscale_ssh = true
74-
tailscale_advertise_exit_node = true
75-
76-
tailscale_advertise_routes = [
77-
module.vpc.vpc_cidr_block,
78-
]
79-
80-
tailscale_advertise_connector = true
81-
# tailscale_advertise_aws_service_names = [
82-
# "GLOBALACCELERATOR",
83-
# ]
8477

8578
depends_on = [
8679
module.vpc.natgw_ids, # ensure NAT gateway is available before instance provisioning - primarily for private subnets
8780
]
8881
}
89-

terraform/aws/aws-ec2-autoscaling-session-recorder/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,8 @@ module "tailscale_aws_ec2_autoscaling" {
158158
tailscale_auth_key = tailscale_tailnet_key.main.key
159159
tailscale_set_preferences = [
160160
"--auto-update",
161+
"-ssh",
161162
]
162-
tailscale_ssh = true
163163

164164
#
165165
# Set up Tailscale Session Recorder (tsrecorder)

terraform/aws/aws-ec2-autoscaling/main.tf

+4-11
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,11 @@ module "tailscale_aws_ec2_autoscaling" {
5858
tailscale_hostname = local.name
5959
tailscale_set_preferences = [
6060
"--auto-update",
61+
"--ssh",
62+
"--advertise-connector",
63+
"--advertise-exit-node",
64+
"--advertise-routes=${join(",", [module.vpc.vpc_cidr_block])}",
6165
]
62-
tailscale_ssh = true
63-
tailscale_advertise_exit_node = true
64-
65-
tailscale_advertise_routes = [
66-
module.vpc.vpc_cidr_block,
67-
]
68-
69-
tailscale_advertise_connector = true
70-
# tailscale_advertise_aws_service_names = [
71-
# "GLOBALACCELERATOR",
72-
# ]
7366

7467
depends_on = [
7568
module.vpc.natgw_ids, # ensure NAT gateway is available before instance provisioning - primarily for private subnets

terraform/aws/aws-ec2-instance-dual-stack-ipv4-ipv6/main.tf

+7-9
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,14 @@ module "tailscale_aws_ec2" {
5050
tailscale_auth_key = tailscale_tailnet_key.main.key
5151
tailscale_set_preferences = [
5252
"--auto-update",
53+
"--ssh",
54+
"--advertise-connector",
55+
"--advertise-exit-node",
56+
"--advertise-routes=${join(",", [
57+
module.vpc.vpc_cidr_block,
58+
module.vpc.vpc_ipv6_cidr_block,
59+
])}",
5360
]
54-
tailscale_ssh = true
55-
tailscale_advertise_exit_node = true
56-
57-
tailscale_advertise_routes = concat(
58-
[module.vpc.vpc_cidr_block],
59-
[module.vpc.vpc_ipv6_cidr_block],
60-
)
61-
62-
tailscale_advertise_connector = true
6361

6462
depends_on = [
6563
module.vpc.natgw_ids, # ensure NAT gateway is available before instance provisioning - primarily for private subnets

terraform/aws/aws-ec2-instance/main.tf

+4-11
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,11 @@ module "tailscale_aws_ec2" {
4747
tailscale_auth_key = tailscale_tailnet_key.main.key
4848
tailscale_set_preferences = [
4949
"--auto-update",
50+
"--ssh",
51+
"--advertise-connector",
52+
"--advertise-exit-node",
53+
"--advertise-routes=${join(",", [module.vpc.vpc_cidr_block])}",
5054
]
51-
tailscale_ssh = true
52-
tailscale_advertise_exit_node = true
53-
54-
tailscale_advertise_routes = [
55-
module.vpc.vpc_cidr_block,
56-
]
57-
58-
tailscale_advertise_connector = true
59-
# tailscale_advertise_aws_service_names = [
60-
# "GLOBALACCELERATOR",
61-
# ]
6255

6356
depends_on = [
6457
module.vpc.natgw_ids, # ensure NAT gateway is available before instance provisioning - primarily for private subnets

terraform/aws/internal-modules/aws-ec2-autoscaling/main.tf

+3-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
module "tailscale_install_scripts" {
22
source = "../../../internal-modules/tailscale-install-scripts"
33

4-
tailscale_advertise_connector = var.tailscale_advertise_connector
5-
tailscale_advertise_exit_node = var.tailscale_advertise_exit_node
6-
tailscale_auth_key = var.tailscale_auth_key
7-
tailscale_hostname = var.tailscale_hostname
8-
tailscale_set_preferences = var.tailscale_set_preferences
9-
tailscale_ssh = var.tailscale_ssh
10-
11-
tailscale_advertise_routes = var.tailscale_advertise_routes
12-
tailscale_advertise_aws_service_names = var.tailscale_advertise_aws_service_names
4+
tailscale_auth_key = var.tailscale_auth_key
5+
tailscale_hostname = var.tailscale_hostname
6+
tailscale_set_preferences = var.tailscale_set_preferences
137

148
additional_before_scripts = var.additional_before_scripts
159
additional_after_scripts = var.additional_after_scripts

terraform/aws/internal-modules/aws-ec2-autoscaling/variables-tailscale-install-scripts.tf

-29
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,6 @@ variable "tailscale_hostname" {
99
description = "Hostname to assign to the device"
1010
type = string
1111
}
12-
variable "tailscale_ssh" {
13-
description = "Boolean flag to enable Tailscale SSH"
14-
type = bool
15-
default = true
16-
}
17-
variable "tailscale_advertise_exit_node" {
18-
description = "Boolean flag to enable Tailscale Exit Node"
19-
type = bool
20-
default = false
21-
}
22-
variable "tailscale_advertise_connector" {
23-
description = "Boolean flag to enable Tailscale App Connector"
24-
type = bool
25-
default = false
26-
}
2712
variable "tailscale_set_preferences" {
2813
description = "Preferences to run via `tailscale set ...`. Do not include `tailscale set`."
2914
type = set(string)
@@ -43,17 +28,3 @@ variable "additional_after_scripts" {
4328
type = list(string)
4429
default = []
4530
}
46-
47-
#
48-
# Variables for tailscale-advertise-routes
49-
#
50-
variable "tailscale_advertise_routes" {
51-
description = "List of routes to advertise"
52-
type = set(string)
53-
default = []
54-
}
55-
variable "tailscale_advertise_aws_service_names" {
56-
description = "List of AWS Services to retrieve IP prefixes for - e.g. ['GLOBALACCELERATOR','AMAZON']"
57-
type = set(string)
58-
default = []
59-
}

terraform/aws/internal-modules/aws-ec2-instance/main.tf

+3-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
module "tailscale_install_scripts" {
22
source = "../../../internal-modules/tailscale-install-scripts"
33

4-
tailscale_advertise_connector = var.tailscale_advertise_connector
5-
tailscale_advertise_exit_node = var.tailscale_advertise_exit_node
6-
tailscale_auth_key = var.tailscale_auth_key
7-
tailscale_hostname = var.tailscale_hostname
8-
tailscale_set_preferences = var.tailscale_set_preferences
9-
tailscale_ssh = var.tailscale_ssh
10-
11-
tailscale_advertise_routes = var.tailscale_advertise_routes
12-
tailscale_advertise_aws_service_names = var.tailscale_advertise_aws_service_names
4+
tailscale_auth_key = var.tailscale_auth_key
5+
tailscale_hostname = var.tailscale_hostname
6+
tailscale_set_preferences = var.tailscale_set_preferences
137

148
additional_before_scripts = var.additional_before_scripts
159
additional_after_scripts = var.additional_after_scripts

terraform/aws/internal-modules/aws-ec2-instance/variables-tailscale-install-scripts.tf

-29
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,6 @@ variable "tailscale_hostname" {
99
description = "Hostname to assign to the device"
1010
type = string
1111
}
12-
variable "tailscale_ssh" {
13-
description = "Boolean flag to enable Tailscale SSH"
14-
type = bool
15-
default = true
16-
}
17-
variable "tailscale_advertise_exit_node" {
18-
description = "Boolean flag to enable Tailscale Exit Node"
19-
type = bool
20-
default = false
21-
}
22-
variable "tailscale_advertise_connector" {
23-
description = "Boolean flag to enable Tailscale App Connector"
24-
type = bool
25-
default = false
26-
}
2712
variable "tailscale_set_preferences" {
2813
description = "Preferences to run via `tailscale set ...`. Do not include `tailscale set`."
2914
type = set(string)
@@ -43,17 +28,3 @@ variable "additional_after_scripts" {
4328
type = list(string)
4429
default = []
4530
}
46-
47-
#
48-
# Variables for tailscale-advertise-routes
49-
#
50-
variable "tailscale_advertise_routes" {
51-
description = "List of routes to advertise"
52-
type = set(string)
53-
default = []
54-
}
55-
variable "tailscale_advertise_aws_service_names" {
56-
description = "List of AWS Services to retrieve IP prefixes for - e.g. ['GLOBALACCELERATOR','AMAZON']"
57-
type = set(string)
58-
default = []
59-
}

terraform/azure/azure-linux-vm/main.tf

+4-6
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,11 @@ module "tailscale_azure_linux_virtual_machine" {
6666
tailscale_auth_key = tailscale_tailnet_key.main.key
6767
tailscale_set_preferences = [
6868
"--auto-update",
69+
"--ssh",
70+
"--advertise-connector",
71+
"--advertise-exit-node",
72+
"--advertise-routes=${join(",", module.network.vnet_address_space)}",
6973
]
70-
tailscale_ssh = true
71-
tailscale_advertise_exit_node = true
72-
73-
tailscale_advertise_routes = module.network.vnet_address_space
74-
75-
tailscale_advertise_connector = true
7674

7775
depends_on = [
7876
module.network.natgw_ids, # for private subnets - ensure NAT gateway is available before instance provisioning

terraform/azure/internal-modules/azure-linux-vm/main.tf

+3-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
module "tailscale_install_scripts" {
22
source = "../../../internal-modules/tailscale-install-scripts"
33

4-
tailscale_advertise_connector = var.tailscale_advertise_connector
5-
tailscale_advertise_exit_node = var.tailscale_advertise_exit_node
6-
tailscale_auth_key = var.tailscale_auth_key
7-
tailscale_hostname = var.tailscale_hostname
8-
tailscale_set_preferences = var.tailscale_set_preferences
9-
tailscale_ssh = var.tailscale_ssh
10-
11-
tailscale_advertise_routes = var.tailscale_advertise_routes
12-
tailscale_advertise_aws_service_names = var.tailscale_advertise_aws_service_names
4+
tailscale_auth_key = var.tailscale_auth_key
5+
tailscale_hostname = var.tailscale_hostname
6+
tailscale_set_preferences = var.tailscale_set_preferences
137

148
additional_before_scripts = var.additional_before_scripts
159
additional_after_scripts = var.additional_after_scripts

terraform/azure/internal-modules/azure-linux-vm/variables-tailscale-install-scripts.tf

-29
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,6 @@ variable "tailscale_hostname" {
99
description = "Hostname to assign to the device"
1010
type = string
1111
}
12-
variable "tailscale_ssh" {
13-
description = "Boolean flag to enable Tailscale SSH"
14-
type = bool
15-
default = true
16-
}
17-
variable "tailscale_advertise_exit_node" {
18-
description = "Boolean flag to enable Tailscale Exit Node"
19-
type = bool
20-
default = false
21-
}
22-
variable "tailscale_advertise_connector" {
23-
description = "Boolean flag to enable Tailscale App Connector"
24-
type = bool
25-
default = false
26-
}
2712
variable "tailscale_set_preferences" {
2813
description = "Preferences to run via `tailscale set ...`. Do not include `tailscale set`."
2914
type = set(string)
@@ -43,17 +28,3 @@ variable "additional_after_scripts" {
4328
type = list(string)
4429
default = []
4530
}
46-
47-
#
48-
# Variables for tailscale-advertise-routes
49-
#
50-
variable "tailscale_advertise_routes" {
51-
description = "List of routes to advertise"
52-
type = set(string)
53-
default = []
54-
}
55-
variable "tailscale_advertise_aws_service_names" {
56-
description = "List of AWS Services to retrieve IP prefixes for - e.g. ['GLOBALACCELERATOR','AMAZON']"
57-
type = set(string)
58-
default = []
59-
}

terraform/google/google-compute-instance/main.tf

+4-6
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,11 @@ module "tailscale_instance" {
5959
tailscale_auth_key = tailscale_tailnet_key.main.key
6060
tailscale_set_preferences = [
6161
"--auto-update",
62+
"--ssh",
63+
"--advertise-connector",
64+
"--advertise-exit-node",
65+
"--advertise-routes=${join(",", module.vpc.subnets_ips)}",
6266
]
63-
tailscale_ssh = true
64-
tailscale_advertise_exit_node = true
65-
66-
tailscale_advertise_routes = module.vpc.subnets_ips
67-
68-
tailscale_advertise_connector = true
6967

7068
depends_on = [
7169
module.vpc.nat_ids, # ensure NAT gateway is available before instance provisioning - primarily for private subnets

terraform/google/internal-modules/google-compute-instance/main.tf

+3-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
module "tailscale_install_scripts" {
22
source = "../../../internal-modules/tailscale-install-scripts"
33

4-
tailscale_advertise_connector = var.tailscale_advertise_connector
5-
tailscale_advertise_exit_node = var.tailscale_advertise_exit_node
6-
tailscale_auth_key = var.tailscale_auth_key
7-
tailscale_hostname = var.tailscale_hostname
8-
tailscale_set_preferences = var.tailscale_set_preferences
9-
tailscale_ssh = var.tailscale_ssh
10-
11-
tailscale_advertise_routes = var.tailscale_advertise_routes
12-
tailscale_advertise_aws_service_names = var.tailscale_advertise_aws_service_names
4+
tailscale_auth_key = var.tailscale_auth_key
5+
tailscale_hostname = var.tailscale_hostname
6+
tailscale_set_preferences = var.tailscale_set_preferences
137

148
additional_before_scripts = var.additional_before_scripts
159
additional_after_scripts = var.additional_after_scripts

terraform/google/internal-modules/google-compute-instance/variables-tailscale-install-scripts.tf

-29
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,6 @@ variable "tailscale_hostname" {
99
description = "Hostname to assign to the device"
1010
type = string
1111
}
12-
variable "tailscale_ssh" {
13-
description = "Boolean flag to enable Tailscale SSH"
14-
type = bool
15-
default = true
16-
}
17-
variable "tailscale_advertise_exit_node" {
18-
description = "Boolean flag to enable Tailscale Exit Node"
19-
type = bool
20-
default = false
21-
}
22-
variable "tailscale_advertise_connector" {
23-
description = "Boolean flag to enable Tailscale App Connector"
24-
type = bool
25-
default = false
26-
}
2712
variable "tailscale_set_preferences" {
2813
description = "Preferences to run via `tailscale set ...`. Do not include `tailscale set`."
2914
type = set(string)
@@ -43,17 +28,3 @@ variable "additional_after_scripts" {
4328
type = list(string)
4429
default = []
4530
}
46-
47-
#
48-
# Variables for tailscale-advertise-routes
49-
#
50-
variable "tailscale_advertise_routes" {
51-
description = "List of routes to advertise"
52-
type = set(string)
53-
default = []
54-
}
55-
variable "tailscale_advertise_aws_service_names" {
56-
description = "List of AWS Services to retrieve IP prefixes for - e.g. ['GLOBALACCELERATOR','AMAZON']"
57-
type = set(string)
58-
default = []
59-
}

0 commit comments

Comments
 (0)