# Rancher resources module "rancher_common" { source = "../rancher-common" node_public_ip = hcloud_server.rancher_server.ipv4_address node_internal_ip = one(hcloud_server.rancher_server.network[*]).ip node_username = local.node_username ssh_private_key_pem = tls_private_key.global_key.private_key_pem rancher_kubernetes_version = var.rancher_kubernetes_version cert_manager_version = var.cert_manager_version rancher_version = var.rancher_version rancher_helm_repository = var.rancher_helm_repository rancher_server_dns = join(".", ["rancher", hcloud_server.rancher_server.ipv4_address, "sslip.io"]) admin_password = var.rancher_server_admin_password workload_kubernetes_version = var.workload_kubernetes_version workload_cluster_name = "quickstart-hcloud-custom" } # HCloud instance for creating a single node workload cluster resource "hcloud_server" "quickstart_node" { name = "${var.prefix}-worker" image = "ubuntu-20.04" server_type = var.instance_type location = var.hcloud_location ssh_keys = [hcloud_ssh_key.quickstart_ssh_key.id] network { network_id = hcloud_network.private.id } user_data = templatefile( "${path.module}/files/userdata_quickstart_node.template", { username = local.node_username register_command = module.rancher_common.custom_cluster_command } ) provisioner "remote-exec" { inline = [ "echo 'Waiting for cloud-init to complete...'", "cloud-init status --wait > /dev/null", "echo 'Completed cloud-init!'", ] connection { type = "ssh" host = self.ipv4_address user = local.node_username private_key = tls_private_key.global_key.private_key_pem } } depends_on = [ hcloud_network_subnet.private ] }