Skip to content

Instantly share code, notes, and snippets.

@fl64
Created June 19, 2025 14:58
Show Gist options
  • Save fl64/0721254f0e74e4c6973564807754f9b9 to your computer and use it in GitHub Desktop.
Save fl64/0721254f0e74e4c6973564807754f9b9 to your computer and use it in GitHub Desktop.
tfexample
# locals {
# vm_name = join("-", [local.prefix, "master", var.nodeIndex])
# root_disk_name = join("-", [local.prefix, "root", var.nodeIndex])
# k8s_data_disk_name = join("-", [local.prefix, "kubernetes-data", var.nodeIndex])
# }
resource "kubernetes_manifest" "vm" {
manifest = {
"apiVersion" = "virtualization.deckhouse.io/v1alpha2"
"kind" = "VirtualMachine"
"metadata" = {
"labels" = {
"vm" = var.vm_name
}
"name" = var.vm_name
"namespace" = var.namespace
}
"spec" = {
"virtualMachineIPAddressClaimName" = kubernetes_manifest.vmip.manifest.metadata.name
"blockDevices" = [
{
"type" = "VirtualMachineDisk"
"virtualMachineDisk" = {
"name" = kubernetes_manifest.vmd.manifest.metadata.name
}
},
]
"bootloader" = "BIOS"
"cpu" = {
"coreFraction" = var.vm_cpu_core_fraction
"cores" = var.vm_cpu_count
}
"enableParavirtualization" = true
"memory" = {
"size" = var.vm_ram_size
}
"osType" = "Generic"
"provisioning" = {
"type" = "UserData"
"userData" = var.vm_provisioning_userdata
}
"runPolicy" = "AlwaysOn"
}
}
wait {
fields = {
"status.phase" = "Running"
}
}
timeouts {
create = "10m"
update = "1m"
delete = "1m"
}
}
output "vm_name" {
description = "The name of the VirtualMachine"
value = kubernetes_manifest.vm.manifest.metadata.name
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment