init: copied modules from lawndale-infra

This commit is contained in:
2022-05-26 00:40:29 +02:00
commit 414feb48ee
39 changed files with 1435 additions and 0 deletions

112
lawndale-vm/variables.tf Normal file
View File

@@ -0,0 +1,112 @@
variable "id" {
type = number
description = "The lawndale id of the virtual machine"
}
variable "name" {
type = string
description = "The name of the virtual machine (must be a [-_a-z0-9])"
validation {
condition = can(regex("^[-_a-z0-9]+$", var.name))
error_message = "A virtual machine name must be lowercase, and can only contain alphanumeral characters, dashes and underscores."
}
}
variable "vcpu" {
type = number
description = "CPU count"
default = 1
}
variable "memory_mb" {
type = number
description = "VM memory allocation in megabytes"
}
variable "description" {
type = string
description = "(Short) Description for the virtual machine"
}
variable "base_image_pool" {
type = string
description = "Base image storage pool"
}
variable "base_image_volume" {
type = string
description = "Base image storage pool"
}
variable "root_storage_pool" {
type = string
description = "The name of the storage pool. It will default to the VM name"
default = ""
}
variable "create_root_storage_pool" {
type = bool
description = "Create the storage pool as part of the module"
default = true
}
variable "root_storage_volume_size_gb" {
type = number
description = "The size of the storage volume (in gigabytes)"
}
variable "root_storage_volume_name" {
type = string
description = "the name of the storage volume (must be unique in the pool)"
default = ""
}
variable "interface" {
type = string
description = "Network interface to attach the vm on"
}
variable "autostart" {
type = bool
description = "Start the VM at host start?"
default = true
}
variable "user_data" {
type = string
description = "Cloud-init userdata script to run"
}
variable "network_config" {
type = string
description = "Cloud-init network config"
default = null
nullable = true
}
variable "meta_data" {
type = string
description = "Cloud-init meta-data"
default = null
nullable = true
}
variable "filesystems" {
type = list(object({
source = string
target = string
accessmode = string
readonly = bool
}))
description = "9p shared filesystem devices"
default = []
}
variable "xslt" {
type = string
description = "XSLT applied to the domain before sent to libvirt"
default = null
}