Hello,
I am having difficulties wrapping my head around doing multiple comparisons in terraform. I have 3 types of roles set in var.role: default, frontend, backend.
I have defined the following local variables that contain userdata:
locals {
# default
eks_worker_userdata = <<USERDATA
#!/bin/bash
set -o xtrace
/etc/eks/bootstrap.sh --apiserver-endpoint '${var.eks_cluster_endpoint}' --b64-cluster-ca '${var.eks_certificate_auth}' --kubelet-extra-args '--node-labels="kiam-agent=true" --node-labels="kubernetes.io/role=default"' '${var.eks_cluster_name}'
USERDATA
# Frontend
eks_worker_frontend_userdata = <<USERDATA
#!/bin/bash
set -o xtrace
/etc/eks/bootstrap.sh --apiserver-endpoint '${var.eks_cluster_endpoint}' --b64-cluster-ca '${var.eks_certificate_auth}' --kubelet-extra-args '--register-with-taints="frontend=true:NoSchedule" --node-labels="kiam-agent=true" --node-labels="frontend=true" --node-labels="kubernetes.io/role=frontend"' '${var.eks_cluster_name}'
USERDATA
# Backend
eks_worker_backend_userdata = <<USERDATA
#!/bin/bash
set -o xtrace
/etc/eks/bootstrap.sh --apiserver-endpoint '${var.eks_cluster_endpoint}' --b64-cluster-ca '${var.eks_certificate_auth}' --kubelet-extra-args '--register-with-taints="backend=true:NoSchedule" --node-labels="kiam-agent=true" --node-labels="backend=true" --node-labels="kubernetes.io/role=backend"' '${var.eks_cluster_name}'
USERDATA
}
I also have a launch configuration template, but want to do something along the lines of:
resource "aws_launch_template" "eks_worker_lt" {
user_data = if var.role == "default"; then base64encode(local.eks_worker_userdata)
elseif
var.role=="backend"; then base64encode(local.eks_worker_backend_userdata)
elseif
var.role=="frontend"; then base64encode(local.eks_worker_frontend_userdata)
}
How can i write this into a HCL format?
Thank you