+++ hpc/README.md +++ hpc/ovh/cloudinit.tf +++ hpc/ovh/credentials.tf +++ hpc/ovh/main.tf +++ hpc/ovh/outputs.tf +++ hpc/ovh/variables.tf +++ hpc/ovh/versions.tf
103 lines
3.3 KiB
HCL
103 lines
3.3 KiB
HCL
variable "project_id" {
|
|
description = "OVH public cloud project id (service_name). Defaults to the OVH_CLOUD_PROJECT_SERVICE variable of the runner environment, derived from the cloud account configuration."
|
|
type = string
|
|
default = null
|
|
}
|
|
|
|
variable "region" {
|
|
description = "OVH region for all cluster instances and the private network, for example SBG5 or GRA11"
|
|
type = string
|
|
}
|
|
|
|
variable "deployment_id" {
|
|
description = "Unique deployment identifier, used to build resource names"
|
|
type = string
|
|
}
|
|
|
|
variable "cloud_account" {
|
|
description = "Cloud account (environment) name, second segment of the Vault credentials path"
|
|
type = string
|
|
}
|
|
|
|
variable "requester_unique_id" {
|
|
description = "Requester unique id, third segment of the Vault credentials path"
|
|
type = string
|
|
}
|
|
|
|
variable "name_prefix" {
|
|
description = "Prefix for all resource names"
|
|
type = string
|
|
default = "simpl"
|
|
}
|
|
|
|
variable "username" {
|
|
description = "Consumer username on the head node, last segment of the Vault credentials path. The user exists on every node with the same uid (Slurm runs jobs under it), but can only log in on the head node."
|
|
type = string
|
|
default = "simpl_user"
|
|
}
|
|
|
|
variable "admin_username" {
|
|
description = "Management username created on all nodes with SSH key access only"
|
|
type = string
|
|
default = "simpladmin"
|
|
}
|
|
|
|
variable "credentials_version" {
|
|
description = "Opaque rotation marker for the consumer credential. Changing the value regenerates the consumer password, applies it on the head node over SSH and republishes the fresh credential to Vault in the same apply, without touching the cluster nodes. Managed by the credential renewal workflow, not by the deployment script author."
|
|
type = string
|
|
default = "1"
|
|
}
|
|
|
|
variable "image" {
|
|
description = "Image name for every cluster node, must be a cloud-init enabled image"
|
|
type = string
|
|
default = "Ubuntu 24.04"
|
|
}
|
|
|
|
variable "head_flavor" {
|
|
description = "Instance flavor for the head node, for example b3-8"
|
|
type = string
|
|
default = "b3-8"
|
|
}
|
|
|
|
variable "compute_flavor" {
|
|
description = "Instance flavor for the compute nodes, for example b3-8"
|
|
type = string
|
|
default = "b3-8"
|
|
}
|
|
|
|
variable "compute_node_count" {
|
|
description = "Number of compute nodes in the cluster"
|
|
type = number
|
|
default = 2
|
|
|
|
validation {
|
|
condition = var.compute_node_count >= 1
|
|
error_message = "The cluster needs at least one compute node."
|
|
}
|
|
}
|
|
|
|
variable "compute_cpus" {
|
|
description = "Number of schedulable CPUs per compute node, declared to the Slurm controller. Must not exceed the vCPUs of compute_flavor."
|
|
type = number
|
|
default = 2
|
|
}
|
|
|
|
variable "cluster_cidr" {
|
|
description = "CIDR of the private cluster network. The head node takes the 50th host address, compute nodes take the 60th onward (lower pool addresses are left to the DHCP agent ports)."
|
|
type = string
|
|
default = "192.168.100.0/24"
|
|
}
|
|
|
|
variable "vlan_id" {
|
|
description = "vRack VLAN id for the private cluster network, must be unused in the project"
|
|
type = number
|
|
default = 212
|
|
}
|
|
|
|
variable "gateway_model" {
|
|
description = "Model (size) of the cloud gateway providing internet egress to the cluster"
|
|
type = string
|
|
default = "s"
|
|
}
|