Я пытаюсь построить кластер galera, используя terraform. Для этого мне нужно отобразить конфигурацию galera с IP-адресом узлов, поэтому я использую шаблон файла.
При применении terraform выдает ошибку
Error: Cycle: data.template_file.galera_node_config, hcloud_server.galera_node
Похоже, что при применении существует циклическая ссылка, потому что серверы не создаются до использования шаблона данных.
Как я могу это обойти?
Спасибо
galera_node.tfdata "template_file" "galera_node_config" {
template = file("sys/etc/mysql/mariadb.conf/galera.cnf")
vars = {
galera_node0 = hcloud_server.galera_node[0].ipv4_address
galera_node1 = hcloud_server.galera_node[1].ipv4_address
galera_node2 = hcloud_server.galera_node[2].ipv4_address
curnode_ip = hcloud_server.galera_node[count.index].ipv4_address
curnode = hcloud_server.galera_node[count.index].id
}
}
resource "hcloud_server" "galera_node" {
count = var.galera_nodes
name = "galera-${count.index}"
image = var.os_type
server_type = var.server_type
location = var.location
ssh_keys = [hcloud_ssh_key.default.id]
labels = {
type = "cluster"
}
user_data = file("galera_cluster.sh")
provisioner "file" {
content = data.template_file.galera_node_config.rendered
destination = "/tmp/galera_cnf"
connection {
type = "ssh"
user = "root"
host = self.ipv4_address
private_key = file("~/.ssh/id_rsa")
}
}
}