Skip to content

IBM Cloud HPC is a deployable architecture where you can deploy both cloud compute resources (vCPU resources) and HPC scheduling software for your compute-intensive HPC workloads. You can reserve capacity on a recurring hourly basis from a dedicated IBM Cloud HPC resource pool.

License

terraform-ibm-modules/terraform-ibm-hpc

Repository files navigation

Requirements

Name Version
terraform >= 1.3.0, <1.6.0

Providers

No providers.

Modules

Name Source Version
hpc ./solutions/hpc n/a

Resources

No resources.

Inputs

Name Description Type Default Required
allowed_cidr Network CIDR to access the VPC. This is used to manage network ACL rules for accessing the cluster. list(string)
[
"10.0.0.0/8"
]
no
bastion_ssh_keys The key pair to use to access the bastion host. list(string) n/a yes
bastion_subnets_cidr Subnet CIDR block to launch the bastion host. list(string)
[
"10.0.0.0/24"
]
no
boot_volume_encryption_enabled Set to true when key management is set bool true no
bootstrap_instance_profile Bootstrap should be only used for better deployment performance string "mx2-4x32" no
compute_image_name Image name to use for provisioning the compute cluster instances. string "ibm-redhat-8-6-minimal-amd64-5" no
compute_ssh_keys The key pair to use to launch the compute host. list(string) n/a yes
compute_subnets_cidr Subnet CIDR block to launch the compute cluster host. list(string)
[
"10.10.20.0/24",
"10.20.20.0/24",
"10.30.20.0/24"
]
no
cos_instance_name Exiting COS instance name string null no
dns_custom_resolver_id IBM Cloud DNS custom resolver id. string null no
dns_domain_names IBM Cloud HPC DNS domain names.
object({
compute = string
storage = string
protocol = string
})
{
"compute": "comp.com",
"protocol": "ces.com",
"storage": "strg.com"
}
no
dns_instance_id IBM Cloud HPC DNS service instance id. string null no
dynamic_compute_instances MaxNumber of instances to be launched for compute cluster.
list(
object({
profile = string
count = number
})
)
[
{
"count": 250,
"profile": "cx2-2x4"
}
]
no
enable_atracker Enable Activity tracker bool true no
enable_bastion The solution supports multiple ways to connect to your HPC cluster for example, using bastion node, via VPN or direct connection. If connecting to the HPC cluster via VPN or direct connection, set this value to false. bool true no
enable_bootstrap Bootstrap should be only used for better deployment performance bool false no
enable_cos_integration Integrate COS with HPC solution bool true no
enable_vpc_flow_logs Enable Activity tracker bool true no
enable_vpn The solution supports multiple ways to connect to your HPC cluster for example, using bastion node, via VPN or direct connection. If connecting to the HPC cluster via VPN, set this value to true. bool false no
file_shares Custom file shares to access shared storage
list(
object({
mount_path = string,
size = number,
iops = number
})
)
[
{
"iops": 1000,
"mount_path": "/mnt/binaries",
"size": 100
},
{
"iops": 1000,
"mount_path": "/mnt/data",
"size": 100
}
]
no
hpcs_instance_name Hyper Protect Crypto Service instance string null no
ibm_customer_number Comma-separated list of the IBM Customer Number(s) (ICN) that is used for the Bring Your Own License (BYOL) entitlement check. For more information on how to find your ICN, see What is my IBM Customer Number (ICN)?. string "" no
ibmcloud_api_key IBM Cloud API Key that will be used for authentication in scripts run in this module. Only required if certain options are required. string null no
key_management null/key_protect/hs_crypto string "key_protect" no
login_image_name Image name to use for provisioning the login instances. string "ibm-redhat-8-6-minimal-amd64-5" no
login_instances Number of instances to be launched for login.
list(
object({
profile = string
count = number
})
)
[
{
"count": 1,
"profile": "cx2-2x4"
}
]
no
login_ssh_keys The key pair to use to launch the login host. list(string) n/a yes
management_image_name Image name to use for provisioning the management cluster instances. string "ibm-redhat-8-6-minimal-amd64-5" no
management_instances Number of instances to be launched for management.
list(
object({
profile = string
count = number
})
)
[
{
"count": 3,
"profile": "cx2-2x4"
}
]
no
network_cidr Network CIDR for the VPC. This is used to manage network ACL rules for cluster provisioning. string "10.0.0.0/8" no
nsd_details Storage scale NSD details
list(
object({
profile = string
capacity = optional(number)
iops = optional(number)
})
)
[
{
"iops": 100,
"profile": "custom",
"size": 100
}
]
no
placement_strategy VPC placement groups to create (null / host_spread / power_spread) string null no
prefix A unique identifier for resources. Must begin with a letter and end with a letter or number. This prefix will be prepended to any resources provisioned by this template. Prefixes must be 16 or fewer characters. string n/a yes
protocol_instances Number of instances to be launched for protocol hosts.
list(
object({
profile = string
count = number
})
)
[
{
"count": 2,
"profile": "bx2-2x8"
}
]
no
protocol_subnets_cidr Subnet CIDR block to launch the storage cluster host. list(string)
[
"10.10.40.0/24",
"10.20.40.0/24",
"10.30.40.0/24"
]
no
resource_group String describing resource groups to create or reference string null no
static_compute_instances Min Number of instances to be launched for compute cluster.
list(
object({
profile = string
count = number
})
)
[
{
"count": 0,
"profile": "cx2-2x4"
}
]
no
storage_image_name Image name to use for provisioning the storage cluster instances. string "ibm-redhat-8-6-minimal-amd64-5" no
storage_instances Number of instances to be launched for storage cluster.
list(
object({
profile = string
count = number
})
)
[
{
"count": 3,
"profile": "bx2-2x8"
}
]
no
storage_ssh_keys The key pair to use to launch the storage cluster host. list(string) n/a yes
storage_subnets_cidr Subnet CIDR block to launch the storage cluster host. list(string)
[
"10.10.30.0/24",
"10.20.30.0/24",
"10.30.30.0/24"
]
no
vpc Name of an existing VPC in which the cluster resources will be deployed. If no value is given, then a new VPC will be provisioned for the cluster. Learn more string null no
vpn_peer_address The peer public IP address to which the VPN will be connected. string null no
vpn_peer_cidr The peer CIDRs (e.g., 192.168.0.0/24) to which the VPN will be connected. list(string) null no
vpn_preshared_key The pre-shared key for the VPN. string null no
zones Region where VPC will be created. To find your VPC region, use ibmcloud is regions command to find available regions. list(string) n/a yes

Outputs

Name Description
ssh_command SSH command to connect to HPC cluster

About

IBM Cloud HPC is a deployable architecture where you can deploy both cloud compute resources (vCPU resources) and HPC scheduling software for your compute-intensive HPC workloads. You can reserve capacity on a recurring hourly basis from a dedicated IBM Cloud HPC resource pool.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published