Skip to content

Commit ea8dc02

Browse files
committed
use a random suffix for ha proxy name
1 parent 0fadf5b commit ea8dc02

File tree

4 files changed

+30
-16
lines changed

4 files changed

+30
-16
lines changed

terraform/aws/aws-eks-operator/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ kubectl get pods -n tailscale
7676
```shell
7777
terraform destroy
7878

79-
# remove leftover Tailscale devices at https://login.tailscale.com/admin/machines
79+
# remove leftover Tailscale devices at https://login.tailscale.com/admin/machines and services at https://login.tailscale.com/admin/services
8080
```
8181

8282
## Limitations

terraform/aws/aws-eks-operator/main.tf

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,20 @@ locals {
1818

1919
# Tailscale Operator configuration
2020
namespace_name = "tailscale"
21-
operator_name = local.name
21+
operator_name = "${local.name}-${random_string.operator_name_suffix.result}"
2222
operator_version = "1.92.4"
2323
tailscale_oauth_client_id = var.tailscale_oauth_client_id
2424
tailscale_oauth_client_secret = var.tailscale_oauth_client_secret
25+
26+
ha_proxy_service_name = "${helm_release.tailscale_operator.name}-ha"
27+
}
28+
29+
# This isn't required but helps avoid Let's Encrypt throttling to make testing and iterating easier.
30+
resource "random_string" "operator_name_suffix" {
31+
length = 3
32+
numeric = false
33+
special = false
34+
upper = false
2535
}
2636

2737
# Remove this to use your own VPC.
@@ -39,6 +49,8 @@ module "eks" {
3949
name = local.name
4050
kubernetes_version = local.cluster_version
4151

52+
tags = local.aws_tags
53+
4254
addons = {
4355
coredns = {}
4456
eks-pod-identity-agent = {
@@ -62,16 +74,14 @@ module "eks" {
6274

6375
eks_managed_node_groups = {
6476
main = {
65-
name = local.name
77+
name = "${substr(local.name, 0, 20)}"
6678
instance_types = [local.node_instance_type]
6779

6880
desired_size = local.desired_size
6981
max_size = local.max_size
7082
min_size = local.min_size
7183
}
7284
}
73-
74-
tags = local.aws_tags
7585
}
7686

7787
resource "kubernetes_namespace_v1" "tailscale_operator" {
@@ -136,10 +146,10 @@ resource "helm_release" "tailscale_operator" {
136146
resource "null_resource" "kubectl_ha_proxy" {
137147
count = 1 # Change to 0 to destroy. Commenting or removing the resource will not run the destroy provisioners.
138148
triggers = {
139-
region = data.aws_region.current.region
140-
cluster_arn = module.eks.cluster_arn
141-
cluster_name = module.eks.cluster_name
142-
operator_name = helm_release.tailscale_operator.name
149+
region = data.aws_region.current.region
150+
cluster_arn = module.eks.cluster_arn
151+
cluster_name = module.eks.cluster_name
152+
ha_proxy_service_name = local.ha_proxy_service_name
143153
}
144154

145155
#
@@ -149,7 +159,7 @@ resource "null_resource" "kubectl_ha_proxy" {
149159
command = "aws eks update-kubeconfig --region ${self.triggers.region} --name ${self.triggers.cluster_name}"
150160
}
151161
provisioner "local-exec" {
152-
command = "OPERATOR_NAME=${self.triggers.operator_name} envsubst < ${path.module}/tailscale-api-server-ha-proxy.yaml | kubectl apply --context=${self.triggers.cluster_arn} -f -"
162+
command = "HA_PROXY_SERVICE_NAME=${self.triggers.ha_proxy_service_name} envsubst < ${path.module}/tailscale-api-server-ha-proxy.yaml | kubectl apply --context=${self.triggers.cluster_arn} -f -"
153163
}
154164

155165
#
@@ -161,7 +171,7 @@ resource "null_resource" "kubectl_ha_proxy" {
161171
}
162172
provisioner "local-exec" {
163173
when = destroy
164-
command = "OPERATOR_NAME=${self.triggers.operator_name} envsubst < ${path.module}/tailscale-api-server-ha-proxy.yaml | kubectl delete --context=${self.triggers.cluster_arn} -f -"
174+
command = "HA_PROXY_SERVICE_NAME=${self.triggers.ha_proxy_service_name} envsubst < ${path.module}/tailscale-api-server-ha-proxy.yaml | kubectl delete --context=${self.triggers.cluster_arn} -f -"
165175
}
166176

167177
depends_on = [

terraform/aws/aws-eks-operator/tailscale-api-server-ha-proxy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
apiVersion: tailscale.com/v1alpha1
33
kind: ProxyGroup
44
metadata:
5-
name: ${OPERATOR_NAME}-ha
5+
name: ${HA_PROXY_SERVICE_NAME}
66
spec:
77
type: kube-apiserver
88
replicas: 2

terraform/aws/aws-eks-operator/versions.tf

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,22 @@ terraform {
66
source = "hashicorp/aws"
77
version = ">= 6.0, < 7.0"
88
}
9-
kubernetes = {
10-
source = "hashicorp/kubernetes"
11-
version = ">= 3.0.1, < 4.0"
12-
}
139
helm = {
1410
source = "hashicorp/helm"
1511
version = ">= 3.1.1, < 4.0"
1612
}
13+
kubernetes = {
14+
source = "hashicorp/kubernetes"
15+
version = ">= 3.0.1, < 4.0"
16+
}
1717
null = {
1818
source = "hashicorp/null"
1919
version = ">= 3.2.0, < 4.0"
2020
}
21+
random = {
22+
source = "hashicorp/random"
23+
version = ">= 3.0, < 4.0"
24+
}
2125
}
2226
}
2327

0 commit comments

Comments
 (0)