@@ -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
7787resource "kubernetes_namespace_v1" "tailscale_operator" {
@@ -136,10 +146,10 @@ resource "helm_release" "tailscale_operator" {
136146resource "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 = [
0 commit comments