48 lines
1.2 KiB
HCL
48 lines
1.2 KiB
HCL
terraform {
|
|
required_providers {
|
|
local = {
|
|
source = "hashicorp/local"
|
|
version = "2.4.0"
|
|
}
|
|
ssh = {
|
|
source = "loafoe/ssh"
|
|
version = "2.6.0"
|
|
}
|
|
}
|
|
required_version = ">= 1.0.0"
|
|
}
|
|
|
|
resource "ssh_resource" "install_k3s" {
|
|
host = var.node_public_ip
|
|
commands = [
|
|
"bash -c 'curl https://get.k3s.io | INSTALL_K3S_EXEC=\"server --disable=traefik --node-external-ip ${var.node_public_ip} --node-ip ${var.node_internal_ip}\" INSTALL_K3S_VERSION=${var.rancher_kubernetes_version} sh -'"
|
|
]
|
|
user = var.node_username
|
|
private_key = var.ssh_private_key_pem
|
|
}
|
|
|
|
resource "ssh_resource" "retrieve_config" {
|
|
depends_on = [
|
|
ssh_resource.install_k3s
|
|
]
|
|
host = var.node_public_ip
|
|
commands = [
|
|
"sudo sed \"s/127.0.0.1/${var.node_public_ip}/g\" /etc/rancher/k3s/k3s.yaml"
|
|
]
|
|
user = var.node_username
|
|
private_key = var.ssh_private_key_pem
|
|
}
|
|
|
|
resource "local_file" "kube_config_server_yaml" {
|
|
filename = format("%s/%s", path.root, "kube_config_server.yaml")
|
|
content = ssh_resource.retrieve_config.result
|
|
}
|
|
|
|
output "kube_config_server_yaml" {
|
|
value = local_file.kube_config_server_yaml.filename
|
|
}
|
|
|
|
output "installed" {
|
|
value = true
|
|
}
|