# ============================================================================= # Inputs for the standalone PROD VM example. # Values that depend on the organization or resource pool are in # terraform.tfvars.example; the API token is in secrets.auto.tfvars.example. # ============================================================================= variable "api_token" { type = string sensitive = true description = "Nubes PROD API token from the Technical token section in the personal account." } variable "api_endpoint" { type = string default = "https://lk-api-gateway.ngcloud.ru/api/v1/svc" description = "Nubes PROD API endpoint. Change only when targeting another stand." } variable "organization" { type = string description = "Name or UUID of the Cloud Director organization created manually in the personal account." } variable "ip_space_name" { type = string description = "Exact IP space name available to this organization; used for the allocation, Edge SNAT, and VM." } variable "org_vip_count" { type = number default = 3 description = "Organization IP allocation count. Three is the tested minimum for this VM-only deployment; increase if other services need IPs from this space." validation { condition = var.org_vip_count >= 3 && floor(var.org_vip_count) == var.org_vip_count error_message = "This tested VM-only example requires at least 3 IPs; use a whole number and increase it for additional consumers." } } variable "vdc_resource_name" { type = string default = "vm-minimal-vdc" description = "Unique service name for the virtual data center." } variable "vdc_network_provider" { type = string default = "msk1" description = "Network provider selected for this organization in the VDC creation form." } variable "vdc_provider_vdc" { type = string default = "Intel Cascade Lake 3.1" description = "Provider VDC selected in the personal account; it must be compatible with the network provider." } variable "vdc_cpu_allocated" { type = number default = 8 description = "Number of vCPUs allocated to the VDC." } variable "vdc_cpu_guaranteed" { type = number default = 0 description = "Guaranteed vCPU percentage. PROD schema allows 0, 50, or 80; this value is fixed at VDC creation." validation { condition = contains([0, 50, 80], var.vdc_cpu_guaranteed) error_message = "vdc_cpu_guaranteed must be 0, 50, or 80." } } variable "vdc_mem_allocated" { type = number default = 200 description = "Memory allocated to the VDC, in GB." } variable "vdc_storage_config" { type = string default = "[{\"name\":\"SSD SDS\",\"size\":\"2000\"}]" description = "JSON array of storage policies available to the selected Provider VDC; size is in GB." } variable "nsxt_resource_name" { type = string default = "vm-minimal-edge" description = "Unique service name for the perimeter Edge gateway." } variable "nsxt_ip_addr_pool" { type = string default = "10.10.102.0/24" description = "Unused /24 routed-network range for this Edge. Verify that it does not overlap another network." } variable "nsxt_main_dns" { type = string default = "81.22.46.22" description = "Primary DNS server assigned to VMs on the routed network." } variable "nsxt_second_dns" { type = string default = "185.247.187.77" description = "Secondary DNS server assigned to VMs on the routed network." } variable "vapp_resource_name" { type = string default = "vm-minimal-vapp" description = "Unique service name for the vApp in the personal account." } variable "vapp_name" { type = string default = "vm-minimal-vapp" description = "Unique vApp name matching the platform pattern; it is used when forming the VM DNS name." } variable "vm_resource_name" { type = string default = "vm-minimal" description = "Unique service name for the virtual machine in the personal account." } variable "vm_name" { type = string default = "vm-minimal" description = "VM name matching the platform pattern; it also identifies the VM IP set." } variable "vm_image" { type = string default = "Ubuntu_22-20G" description = "Available PROD VM image. The base disk size is part of the image and cannot be changed here." } variable "vm_cpu" { type = number default = 2 description = "Number of VM vCPUs (PROD schema range: 1-64)." } variable "vm_ram" { type = number default = 4 description = "VM memory in GB (PROD schema range: 1-256)." } variable "vm_disk" { type = number default = 128 description = "Additional VM disk size in GB. The image supplies the separate base disk." } variable "vm_user_login" { type = string default = "ubuntu" description = "Linux account created for SSH access; it is set during VM creation." } variable "vm_user_public_key" { type = string description = "Your OpenSSH public key, such as the contents of ~/.ssh/id_ed25519.pub. Never put a private key here." } variable "vm_access_port_list" { type = list(object({ port = string type = string })) default = [ { port = "22", type = "tcp" }, { port = "80", type = "tcp" } ] description = "Inbound VM ports and protocols. Restrict this list to the services the VM actually needs." } variable "vm_access_ip_list" { type = list(string) description = "Source IP addresses or CIDRs allowed to reach the VM. Set this to trusted addresses; avoid 0.0.0.0/0 where possible." } variable "vm_same_snat" { type = bool default = true description = "When true, the VM is published through its own external IP created during deployment." } variable "git_revision" { type = string default = null description = "Optional redeploy trigger. Set a new non-empty marker to request redeploy on Update; leave null for normal VM creation." } variable "reconcile_trigger" { type = string default = null description = "Optional reconcile trigger. Change the marker to request reconcile on Update; reconcile does not run on Create." }