Skip to content

Latest commit

 

History

History
96 lines (77 loc) · 8.38 KB

File metadata and controls

96 lines (77 loc) · 8.38 KB

DAOS Server module

This module creates a opinionated deployment of DAOS on GCP.

Usage

The resources/services/activations/deletions that this module will create/trigger are:

  • Create an instance tempate for DAOS servers
  • Create a stateful instance group for DAOS servers

Copyright 2023 Google LLC

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
google-beta ~> 4.84.0

Providers

Name Version
google ~> 4.84.0
google-beta ~> 4.84.0

Modules

No modules.

Resources

Name Type
google-beta_google_compute_instance.named_instances resource
google_compute_disk.daos_server_boot_disk resource
google_secret_manager_secret.daos_ca resource
google_secret_manager_secret_iam_policy.daos_ca_secret_policy resource
google_compute_default_service_account.default data source
google_compute_image.os_image data source
google_iam_policy.daos_ca_secret_version_manager data source

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
daos_crt_timeout crt_timeout number 300 no
daos_disk_count Number of local ssd's to use number 16 no
daos_scm_size scm_size number null no
gvnic Use Google Virtual NIC (gVNIC) network interface bool false no
instance_base_name Base name for DAOS server instances string "daos-server" no
labels Set of key/value label pairs to assign to daos-server instances any {} no
machine_type GCP machine type. ie. e2-medium string "n2-custom-36-215040" no
network_name Name of the GCP network to use string "default" no
number_of_instances Number of daos servers to bring up number 4 no
os_disk_size_gb OS disk size in GB number 20 no
os_disk_type OS disk type ie. pd-ssd, pd-standard string "pd-ssd" no
os_family OS GCP image family string "daos-server-hpc-rocky-8" no
os_project OS GCP image project name. Defaults to project_id if null. string null no
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
preemptible If preemptible instances string false no
project_id The GCP project to use string n/a yes
region The GCP region to create and test resources in string n/a yes
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
subnetwork_name Name of the GCP sub-network to use string "default" no
subnetwork_project The GCP project where the subnetwork is defined string null no
tags Set of key/value label pairs to assign to daos-server instances list(any)
[
"daos-server"
]
no
zone The GCP zone to create and test resources in string n/a yes

Outputs

Name Description
access_points List of DAOS servers to use as access points
certs_install_content Cert installation content to include in the daos_client startup script
daos_agent_yml YAML to configure the daos agent. This is typically saved in /etc/daos/daos_agent.yml
daos_client_config_script Script to configure the DAOS system. This will format the sytem with dmg -l and optionally create the specified pools.
daos_client_install_script Script to install the DAOS client package.
daos_control_yml YAML configuring DAOS control. This is typically saved in /etc/daos/daos_control.yml
daos_pools Specification of pools and containers to create