Skip to content

Latest commit

 

History

History
107 lines (81 loc) · 10.2 KB

File metadata and controls

107 lines (81 loc) · 10.2 KB

DAOS Cluster Example

This Terraform configuration demonstrates how to use the DAOS Terraform Modules to deploy a DAOS cluster.

Terraform Files

List of Terraform files in this example

Filename Description
main.tf Main Terrform configuration file containing resource definitions
variables.tf Variable definitions for variables used in main.tf
versions.tf Provider definitions
terraform.tfvars.perf.example Pre-Configured variables for a cluster that is optimized for performance
terraform.tfvars.tco.example Pre-Configured variables for a cluster that is optimized for lower cost of ownership

Deployment

To deploy this example, see the instructions in Deploy the DAOS Cluster Example.

As an alternative to viewing the instructions as a standalone document, you can view the document as an in-context tutorial in Cloud Shell by clicking the button below.

Open in Cloud Shell

Terraform Configuration Documentation

Copyright 2023 Intel Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Requirements

Name Version
terraform >= 1.2
google ~> 4.84.0

Providers

No providers.

Modules

Name Source Version
daos_client ../../modules/daos_client n/a
daos_server ../../modules/daos_server n/a

Resources

No resources.

Inputs

Name Description Type Default Required
allow_insecure Sets the allow_insecure setting in the transport_config section of the daos_*.yml files bool false no
client_gvnic Use Google Virtual NIC (gVNIC) network interface on DAOS clients bool false no
client_instance_base_name Base name for DAOS client instances string "daos-client" no
client_labels Set of key/value label pairs to assign to daos-client instances any {} no
client_machine_type GCP machine type. ie. c2-standard-16 string "c2-standard-16" no
client_number_of_instances Number of daos clients to bring up number 16 no
client_os_disk_size_gb OS disk size in GB number 20 no
client_os_disk_type OS disk type ie. pd-ssd, pd-standard string "pd-ssd" no
client_os_family OS GCP image family string "daos-client-hpc-rocky-8" no
client_os_project OS GCP image project name. Defaults to project_id if null. string null no
client_preemptible If preemptible instances string false no
client_service_account Service account to attach to the instance. See https://www.terraform.io/docs/providers/google/r/compute_instance_template.html#service_account.
object({
email = string,
scopes = set(string)
})
{
"email": null,
"scopes": [
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring.write",
"https://www.googleapis.com/auth/servicecontrol",
"https://www.googleapis.com/auth/service.management.readonly",
"https://www.googleapis.com/auth/trace.append",
"https://www.googleapis.com/auth/cloud-platform"
]
}
no
client_tags Set of key/value label pairs to assign to daos-client instances list(any)
[
"daos-client"
]
no
network_name Name of the GCP network string "default" no
project_id The GCP project string n/a yes
region The GCP region string n/a yes
server_daos_crt_timeout crt_timeout number 300 no
server_daos_disk_count Number of local ssd's to use number 16 no
server_gvnic Use Google Virtual NIC (gVNIC) network interface bool false no
server_instance_base_name Base name for DAOS server instances string "daos-server" no
server_labels Set of key/value label pairs to assign to daos-server instances any {} no
server_machine_type GCP machine type. ie. e2-medium string "n2-custom-36-215040" no
server_number_of_instances Number of daos servers to bring up number 4 no
server_os_disk_size_gb OS disk size in GB number 20 no
server_os_disk_type OS disk type ie. pd-ssd, pd-standard string "pd-ssd" no
server_os_family OS GCP image family string "daos-server-hpc-rocky-8" no
server_os_project OS GCP image project name. Defaults to project_id if null. string null no
server_pools List of pools and containers to be created
list(object({
name = string
size = string
tier_ratio = optional(number)
user = string
group = string
acls = list(string)
properties = map(any)
containers = list(object({
name = string
type = string
user = string
group = string
acls = list(string)
properties = map(any)
user_attributes = map(any)
}))
}))
[] no
server_preemptible If preemptible instances string false no
server_service_account Service account to attach to the instance. See https://www.terraform.io/docs/providers/google/r/compute_instance_template.html#service_account.
object({
email = string,
scopes = set(string)
})
{
"email": null,
"scopes": [
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring.write",
"https://www.googleapis.com/auth/servicecontrol",
"https://www.googleapis.com/auth/service.management.readonly",
"https://www.googleapis.com/auth/trace.append",
"https://www.googleapis.com/auth/cloud-platform"
]
}
no
server_tags Set of key/value label pairs to assign to daos-server instances list(any)
[
"daos-server"
]
no
subnetwork_name Name of the GCP sub-network string "default" no
subnetwork_project The GCP project where the subnetwork is defined string null no
zone The GCP zone string n/a yes

Outputs

No outputs.