Skip to main content
NetApp Solutions

Cloud Volumes Automation via Terraform

Contributors netapp-dhruv-tyagi netapp-vedantsethia

This solution documents the automated deployments of Cloud Volumes on AWS (CVO Single Node, CVO HA and FSX ONTAP) and Azure (CVO Single Node, CVO HA and ANF) using Terraform modules. The code can be found at https://github.com/NetApp/na_cloud_volumes_automation

Pre-requisites

  1. Terraform >= 0.13

  2. Cloud Manager Account

  3. Cloud Provider Account – AWS, Azure

  4. Host machine (any OS supported by Terraform)

Provider documentation

The documentation of Terraform provider for Cloud Manager is available at: https://registry.terraform.io/providers/NetApp/netapp-cloudmanager/latest/docs

Controlling the provider version

Note that you can also control the provider version. This is controlled by a required_providers block in your Terraform configuration.

The syntax is as follows:

terraform {
  required_providers {
    netapp-cloudmanager = {
      source = "NetApp/netapp-cloudmanager"
      version = ">= 23.0.0"
    }
  }
}

Read more on provider version control.

Running Specific Modules

AWS
CVO Single Node Deployment
Terraform configuration files for deployment of NetApp CVO (Single Node Instance) on AWS

This section contains various Terraform configuration files to deploy/configure single node NetApp CVO (Cloud Volumes ONTAP) on AWS (Amazon Web Services).

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation/
  3. Configure AWS credentials from the CLI.

        aws configure
    • AWS Access Key ID [None]: accesskey

    • AWS Secret Access Key [None]: secretkey

    • Default region name [None]: us-west-2

    • Default output format [None]: json

  4. Update the variable values in vars/aws_cvo_single_node_deployment.tfvar

    Note You can choose to deploy the connector by setting the variable "aws_connector_deploy_bool" value to true/false.
  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.aws_sn" -var-file="vars/aws_cvo_single_node_deployment.tfvars"
  8. Run the deployment

        terraform apply -target="module.aws_sn" -var-file="vars/aws_cvo_single_node_deployment.tfvars"

To delete the deployment

    terraform destroy
Recipies:

Connector

Terraform variables for NetApp AWS connector instance for CVO deployment.

Name Type Description

aws_connector_deploy_bool

Bool

(Required) Check for Connector deployment.

aws_connector_name

String

(Required) The name of the Cloud Manager Connector.

aws_connector_region

String

(Required) The region where the Cloud Manager Connector will be created.

aws_connector_key_name

String

(Required) The name of the key pair to use for the Connector instance.

aws_connector_company

String

(Required) The name of the company of the user.

aws_connector_instance_type

String

(Required) The type of instance (for example, t3.xlarge). At least 4 CPU and 16 GB of memory are required.

aws_connector_subnet_id

String

(Required) The ID of the subnet for the instance.

aws_connector_security_group_id

String

(Required) The ID of the security group for the instance, multiple security groups can be provided separated by ','.

aws_connector_iam_instance_profile_name

String

(Required) The name of the instance profile for the Connector.

aws_connector_account_id

String

(Optional) The NetApp account ID that the Connector will be associated with. If not provided, Cloud Manager uses the first account. If no account exists, Cloud Manager creates a new account. You can find the account ID in the account tab of Cloud Manager at https://cloudmanager.netapp.com.

aws_connector_public_ip_bool

Bool

(Optional) Indicates whether to associate a public IP address to the instance. If not provided, the association will be done based on the subnet's configuration.

Single Node Instance

Terraform variables for single NetApp CVO instance.

Name Type Description

cvo_name

String

(Required) The name of the Cloud Volumes ONTAP working environment.

cvo_region

String

(Required) The region where the working environment will be created.

cvo_subnet_id

String

(Required) The subnet id where the working environment will be created.

cvo_vpc_id

String

(Optional) The VPC ID where the working environment will be created. If this argument isn't provided, the VPC will be calculated by using the provided subnet ID.

cvo_svm_password

String

(Required) The admin password for Cloud Volumes ONTAP.

cvo_writing_speed_state

String

(Optional) The write speed setting for Cloud Volumes ONTAP: ['NORMAL','HIGH']. The default is 'NORMAL'.

CVO HA Deployment
Terraform configuration files for deployment of NetApp CVO (HA Pair) on AWS

This section contains various Terraform configuration files to deploy/configure NetApp CVO (Cloud Volumes ONTAP) in high availability pair on AWS (Amazon Web Services).

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation/
  3. Configure AWS credentials from the CLI.

        aws configure
    • AWS Access Key ID [None]: accesskey

    • AWS Secret Access Key [None]: secretkey

    • Default region name [None]: us-west-2

    • Default output format [None]: json

  4. Update the variable values in vars/aws_cvo_ha_deployment.tfvars.

    Note You can choose to deploy the connector by setting the variable "aws_connector_deploy_bool" value to true/false.
  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

          terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.aws_ha" -var-file="vars/aws_cvo_ha_deployment.tfvars"
  8. Run the deployment

        terraform apply -target="module.aws_ha" -var-file="vars/aws_cvo_ha_deployment.tfvars"

To delete the deployment

    terraform destroy
Recipies:

Connector

Terraform variables for NetApp AWS connector instance for CVO deployment.

Name Type Description

aws_connector_deploy_bool

Bool

(Required) Check for Connector deployment.

aws_connector_name

String

(Required) The name of the Cloud Manager Connector.

aws_connector_region

String

(Required) The region where the Cloud Manager Connector will be created.

aws_connector_key_name

String

(Required) The name of the key pair to use for the Connector instance.

aws_connector_company

String

(Required) The name of the company of the user.

aws_connector_instance_type

String

(Required) The type of instance (for example, t3.xlarge). At least 4 CPU and 16 GB of memory are required.

aws_connector_subnet_id

String

(Required) The ID of the subnet for the instance.

aws_connector_security_group_id

String

(Required) The ID of the security group for the instance, multiple security groups can be provided separated by ','.

aws_connector_iam_instance_profile_name

String

(Required) The name of the instance profile for the Connector.

aws_connector_account_id

String

(Optional) The NetApp account ID that the Connector will be associated with. If not provided, Cloud Manager uses the first account. If no account exists, Cloud Manager creates a new account. You can find the account ID in the account tab of Cloud Manager at https://cloudmanager.netapp.com.

aws_connector_public_ip_bool

Bool

(Optional)  Indicates whether to associate a public IP address to the instance. If not provided, the association will be done based on the subnet's configuration.

HA Pair

Terraform variables for NetApp CVO instances in HA Pair.

Name Type Description

cvo_is_ha

Bool

(Optional) Indicate whether the working environment is an HA pair or not [true, false]. The default is false.

cvo_name

String

(Required) The name of the Cloud Volumes ONTAP working environment.

cvo_region

String

(Required) The region where the working environment will be created.

cvo_node1_subnet_id

String

(Required) The subnet id where the first node will be created.

cvo_node2_subnet_id

String

(Required) The subnet id where the second node will be created.

cvo_vpc_id

String

(Optional) The VPC ID where the working environment will be created. If this argument isn't provided, the VPC will be calculated by using the provided subnet ID.

cvo_svm_password

String

(Required) The admin password for Cloud Volumes ONTAP.

cvo_failover_mode

String

(Optional) For HA, the failover mode for the HA pair: ['PrivateIP', 'FloatingIP']. 'PrivateIP' is for a single availability zone and 'FloatingIP' is for multiple availability zones.

cvo_mediator_subnet_id

String

(Optional) For HA, the subnet ID of the mediator.

cvo_mediator_key_pair_name

String

(Optional) For HA, the key pair name for the mediator instance.

cvo_cluster_floating_ip

String

(Optional) For HA FloatingIP, the cluster management floating IP address.

cvo_data_floating_ip

String

(Optional) For HA FloatingIP, the data floating IP address.

cvo_data_floating_ip2

String

(Optional) For HA FloatingIP, the data floating IP address.

cvo_svm_floating_ip

String

(Optional) For HA FloatingIP, the SVM management floating IP address.

cvo_route_table_ids

List

(Optional) For HA FloatingIP, the list of route table IDs that will be updated with the floating IPs.

FSx Deployment
Terraform configuration files for deployment of NetApp ONTAP FSx on AWS

This section contains various Terraform configuration files to deploy/configure NetApp ONTAP FSx on AWS (Amazon Web Services).

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation/
  3. Configure AWS credentials from the CLI.

        aws configure
    • AWS Access Key ID [None]: accesskey

    • AWS Secret Access Key [None]: secretkey

    • Default region name [None]: us-west-2

    • Default output format [None]:

  4. Update the variable values in vars/aws_fsx_deployment.tfvars

    Note You can choose to deploy the connector by setting the variable "aws_connector_deploy_bool" value to true/false.
  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.aws_fsx" -var-file="vars/aws_fsx_deployment.tfvars"
  8. Run the deployment

        terraform apply -target="module.aws_fsx" -var-file="vars/aws_fsx_deployment.tfvars"

To delete the deployment

    terraform destroy
Recipes:

Connector

Terraform variables for NetApp AWS connector instance.

Name Type Description

aws_connector_deploy_bool

Bool

(Required) Check for Connector deployment.

aws_connector_name

String

(Required) The name of the Cloud Manager Connector.

aws_connector_region

String

(Required) The region where the Cloud Manager Connector will be created.

aws_connector_key_name

String

(Required) The name of the key pair to use for the Connector instance.

aws_connector_company

String

(Required) The name of the company of the user.

aws_connector_instance_type

String

(Required) The type of instance (for example, t3.xlarge). At least 4 CPU and 16 GB of memory are required.

aws_connector_subnet_id

String

(Required) The ID of the subnet for the instance.

aws_connector_security_group_id

String

(Required) The ID of the security group for the instance, multiple security groups can be provided separated by ','.

aws_connector_iam_instance_profile_name

String

(Required) The name of the instance profile for the Connector.

aws_connector_account_id

String

(Optional) The NetApp account ID that the Connector will be associated with. If not provided, Cloud Manager uses the first account. If no account exists, Cloud Manager creates a new account. You can find the account ID in the account tab of Cloud Manager at https://cloudmanager.netapp.com.

aws_connector_public_ip_bool

Bool

(Optional)  Indicates whether to associate a public IP address to the instance. If not provided, the association will be done based on the subnet's configuration.

FSx Instance

Terraform variables for NetApp ONTAP FSx instance.

Name Type Description

fsx_name

String

(Required) The name of the Cloud Volumes ONTAP working environment.

fsx_region

String

(Required) The region where the working environment will be created.

fsx_primary_subnet_id

String

(Required) The primary subnet id where the working environment will be created.

fsx_secondary_subnet_id

String

(Required) The secondary subnet id where the working environment will be created.

fsx_account_id

String

(Required) The NetApp account ID that the FSx instance will be associated with. If not provided, Cloud Manager uses the first account. If no account exists, Cloud Manager creates a new account. You can find the account ID in the account tab of Cloud Manager at https://cloudmanager.netapp.com.

fsx_workspace_id

String

(Required) The ID of the Cloud Manager workspace of working environment.

fsx_admin_password

String

(Required) The admin password for Cloud Volumes ONTAP.

fsx_throughput_capacity

String

(Optional) capacity of the throughput.

fsx_storage_capacity_size

String

(Optional) EBS volume size for the first data aggregate. For GB, the unit can be: [100 or 500]. For TB, the unit can be: [1,2,4,8,16]. The default is '1'

fsx_storage_capacity_size_unit

String

(Optional) ['GB' or 'TB']. The default is 'TB'.

fsx_cloudmanager_aws_credential_name

String

(Required) The name of the AWS Credentials account name.

Azure
ANF
Terraform configuration files for deployment of ANF Volume on Azure

This section contains various Terraform configuration files to deploy/configure ANF (Azure Netapp Files) Volume on Azure.

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation
  3. Login to your Azure CLI (Azure CLI must be installed).

        az login
  4. Update the variable values in vars/azure_anf.tfvars.

    Note You can choose to deploy the ANF volume using an existing vnet and subnet by setting the variable "vnet_creation_bool" and "subnet_creation_bool" value to false and supplying the "subnet_id_for_anf_vol". You can also set those values to true and create a new vnet and subnet in which case, the subnet ID will automatically be taken from the newly created subnet.
  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.anf" -var-file="vars/azure_anf.tfvars"
  8. Run the deployment

        terraform apply -target="module.anf" -var-file="vars/azure_anf.tfvars"

To delete the deployment

  terraform destroy
Recipies:

Single Node Instance

Terraform variables for single NetApp ANF Volume.

Name Type Description

az_location

String

(Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

az_prefix

String

(Required) The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.

az_vnet_address_space

String

(Required) The address space to be used by the newly created vnet for ANF volume deployment.

az_subnet_address_prefix

String

(Required) The subnet address prefix to be used by the newly created vnet for ANF volume deployment.

az_volume_path

String

(Required) A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.

az_capacity_pool_size

Integer

(Required) Capacity Pool Size mentioned in TB.

az_vnet_creation_bool

Boolean

(Required) Set this boolean to true if you want to create a new vnet. Set it to false to use an existing vnet.

az_subnet_creation_bool

Boolean

(Required) Set this boolean to true to create a new subnet. Set it to false to use an existing subnet.

az_subnet_id_for_anf_vol

String

(Required) Mention the subnet id in case you decide to use an existing subnet by setting subnet_creation_bool to true. If set to false, leave it at the default value.

az_netapp_pool_service_level

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_service_level

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_protocol

String

(Optional) The target volume protocol expressed as a list. Supported single value include CIFS, NFSv3, or NFSv4.1. If argument is not defined it will default to NFSv3. Changing this forces a new resource to be created and data will be lost.

az_netapp_vol_security_style

String

(Optional) Volume security style, accepted values are Unix or Ntfs. If not provided, single-protocol volume is created defaulting to Unix if it is NFSv3 or NFSv4.1 volume, if CIFS, it will default to Ntfs. In a dual-protocol volume, if not provided, its value will be Ntfs.

az_netapp_vol_storage_quota

String

(Required) The maximum Storage Quota allowed for a file system in Gigabytes.

Note As per the recommendation, this script uses the prevent_destroy lifecycle argument to mitigate the possibility of accidental data loss in the configuration file. For more information on the prevent_destroy lifecycle argument please see the terraform documentation: https://developer.hashicorp.com/terraform/tutorials/state/resource-lifecycle#prevent-resource-deletion.
ANF Data Protection
Terraform configuration files for deployment of ANF Volume with Data Protection on Azure

This section contains various Terraform configuration files to deploy/configure ANF (Azure Netapp Files) Volume with Data Protection on Azure.

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation
  3. Login to your Azure CLI (Azure CLI must be installed).

        az login
  4. Update the variable values in vars/azure_anf_data_protection.tfvars.

    Note You can choose to deploy the ANF volume using an existing vnet and subnet by setting the variable "vnet_creation_bool" and "subnet_creation_bool" value to false and supplying the "subnet_id_for_anf_vol". You can also set those values to true and create a new vnet and subnet in which case, the subnet ID will automatically be taken from the newly created subnet.
  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.anf_data_protection" -var-file="vars/azure_anf_data_protection.tfvars"
  8. Run the deployment

        terraform apply -target="module.anf_data_protection" -var-file="vars/azure_anf_data_protection.tfvars

To delete the deployment

  terraform destroy
Recipies:

ANF Data Protection

Terraform variables for single ANF Volume with data protection enabled.

Name Type Description

az_location

String

(Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

az_alt_location

String

(Required) The Azure location where the secondary volume will be created

az_prefix

String

(Required) The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.

az_vnet_primary_address_space

String

(Required) The address space to be used by the newly created vnet for ANF primary volume deployment.

az_vnet_secondary_address_space

String

(Required) The address space to be used by the newly created vnet for ANF secondary volume deployment.

az_subnet_primary_address_prefix

String

(Required) The subnet address prefix to be used by the newly created vnet for ANF primary volume deployment.

az_subnet_secondary_address_prefix

String

(Required) The subnet address prefix to be used by the newly created vnet for ANF secondary volume deployment.

az_volume_path_primary

String

(Required) A unique file path for the primary volume. Used when creating mount targets. Changing this forces a new resource to be created.

az_volume_path_secondary

String

(Required) A unique file path for the secondary volume. Used when creating mount targets. Changing this forces a new resource to be created.

az_capacity_pool_size_primary

Integer

(Required) Capacity Pool Size mentioned in TB.

az_capacity_pool_size_secondary

Integer

(Required) Capacity Pool Size mentioned in TB.

az_vnet_primary_creation_bool

Boolean

(Required) Set this boolean to true if you want to create a new vnet for primary volume. Set it to false to use an existing vnet.

az_vnet_secondary_creation_bool

Boolean

(Required) Set this boolean to true if you want to create a new vnet for secondary volume. Set it to false to use an existing vnet.

az_subnet_primary_creation_bool

Boolean

(Required) Set this boolean to true to create a new subnet for primary volume. Set it to false to use an existing subnet.

az_subnet_secondary_creation_bool

Boolean

(Required) Set this boolean to true to create a new subnet for secondary volume. Set it to false to use an existing subnet.

az_primary_subnet_id_for_anf_vol

String

(Required) Mention the subnet id in case you decide to use an existing subnet by setting subnet_primary_creation_bool to true. If set to false, leave it at the default value.

az_secondary_subnet_id_for_anf_vol

String

(Required) Mention the subnet id in case you decide to use an existing subnet by setting subnet_secondary_creation_bool to true. If set to false, leave it at the default value.

az_netapp_pool_service_level_primary

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_pool_service_level_secondary

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_service_level_primary

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_service_level_secondary

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_protocol_primary

String

(Optional) The target volume protocol expressed as a list. Supported single value include CIFS, NFSv3, or NFSv4.1. If argument is not defined it will default to NFSv3. Changing this forces a new resource to be created and data will be lost.

az_netapp_vol_protocol_secondary

String

(Optional) The target volume protocol expressed as a list. Supported single value include CIFS, NFSv3, or NFSv4.1. If argument is not defined it will default to NFSv3. Changing this forces a new resource to be created and data will be lost.

az_netapp_vol_storage_quota_primary

String

(Required) The maximum Storage Quota allowed for a file system in Gigabytes.

az_netapp_vol_storage_quota_secondary

String

(Required) The maximum Storage Quota allowed for a file system in Gigabytes.

az_dp_replication_frequency

String

(Required) Replication frequency, supported values are 10minutes, hourly, daily, values are case sensitive.

Note As per the recommendation, this script uses the prevent_destroy lifecycle argument to mitigate the possibility of accidental data loss in the configuration file. For more information on the prevent_destroy lifecycle argument please see the terraform documentation: https://developer.hashicorp.com/terraform/tutorials/state/resource-lifecycle#prevent-resource-deletion.
ANF Dual Protocol
Terraform configuration files for deployment of ANF Volume with dual protocol on Azure

This section contains various Terraform configuration files to deploy/configure ANF (Azure Netapp Files) Volume with dual protocol enabled on Azure.

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation
  3. Login to your Azure CLI (Azure CLI must be installed).

        az login
  4. Update the variable values in vars/azure_anf_dual_protocol.tfvars.

    Note You can choose to deploy the ANF volume using an existing vnet and subnet by setting the variable "vnet_creation_bool" and "subnet_creation_bool" value to false and supplying the "subnet_id_for_anf_vol". You can also set those values to true and create a new vnet and subnet in which case, the subnet ID will automatically be taken from the newly created subnet.
  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.anf_dual_protocol" -var-file="vars/azure_anf_dual_protocol.tfvars"
  8. Run the deployment

        terraform apply -target="module.anf_dual_protocol" -var-file="vars/azure_anf_dual_protocol.tfvars"

To delete the deployment

  terraform destroy
Recipies:

Single Node Instance

Terraform variables for single ANF Volume with dual protocol enabled.

Name Type Description

az_location

String

(Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

az_prefix

String

(Required) The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.

az_vnet_address_space

String

(Required) The address space to be used by the newly created vnet for ANF volume deployment.

az_subnet_address_prefix

String

(Required) The subnet address prefix to be used by the newly created vnet for ANF volume deployment.

az_volume_path

String

(Required) A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.

az_capacity_pool_size

Integer

(Required) Capacity Pool Size mentioned in TB.

az_vnet_creation_bool

Boolean

(Required) Set this boolean to true if you want to create a new vnet. Set it to false to use an existing vnet.

az_subnet_creation_bool

Boolean

(Required) Set this boolean to true to create a new subnet. Set it to false to use an existing subnet.

az_subnet_id_for_anf_vol

String

(Required) Mention the subnet id in case you decide to use an existing subnet by setting subnet_creation_bool to true. If set to false, leave it at the default value.

az_netapp_pool_service_level

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_service_level

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_protocol1

String

(Required) The target volume protocol expressed as a list. Supported single value include CIFS, NFSv3, or NFSv4.1. If argument is not defined it will default to NFSv3. Changing this forces a new resource to be created and data will be lost.

az_netapp_vol_protocol2

String

(Required) The target volume protocol expressed as a list. Supported single value include CIFS, NFSv3, or NFSv4.1. If argument is not defined it will default to NFSv3. Changing this forces a new resource to be created and data will be lost.

az_netapp_vol_storage_quota

String

(Required) The maximum Storage Quota allowed for a file system in Gigabytes.

az_smb_server_username

String

(Required) Username to create ActiveDirectory object.

az_smb_server_password

String

(Required) User Password to create ActiveDirectory object.

az_smb_server_name

String

(Required) Server Name to create ActiveDirectory object.

az_smb_dns_servers

String

(Required) DNS Server IP to create ActiveDirectory object.

Note As per the recommendation, this script uses the prevent_destroy lifecycle argument to mitigate the possibility of accidental data loss in the configuration file. For more information on the prevent_destroy lifecycle argument please see the terraform documentation: https://developer.hashicorp.com/terraform/tutorials/state/resource-lifecycle#prevent-resource-deletion.
ANF Volume From Snapshot
Terraform configuration files for deployment of ANF Volume from Snapshot on Azure

This section contains various Terraform configuration files to deploy/configure ANF (Azure Netapp Files) Volume from Snapshot on Azure.

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation
  3. Login to your Azure CLI (Azure CLI must be installed).

        az login
  4. Update the variable values in vars/azure_anf_volume_from_snapshot.tfvars.

Note You can choose to deploy the ANF volume using an existing vnet and subnet by setting the variable "vnet_creation_bool" and "subnet_creation_bool" value to false and supplying the "subnet_id_for_anf_vol". You can also set those values to true and create a new vnet and subnet in which case, the subnet ID will automatically be taken from the newly created subnet.
  1. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  2. Verify the terraform files using terraform validate command.

        terraform validate
  3. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.anf_volume_from_snapshot" -var-file="vars/azure_anf_volume_from_snapshot.tfvars"
  4. Run the deployment

        terraform apply -target="module.anf_volume_from_snapshot" -var-file="vars/azure_anf_volume_from_snapshot.tfvars"

To delete the deployment

  terraform destroy
Recipies:

Single Node Instance

Terraform variables for single ANF Volume using snapshot.

Name Type Description

az_location

String

(Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

az_prefix

String

(Required) The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.

az_vnet_address_space

String

(Required) The address space to be used by the newly created vnet for ANF volume deployment.

az_subnet_address_prefix

String

(Required) The subnet address prefix to be used by the newly created vnet for ANF volume deployment.

az_volume_path

String

(Required) A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.

az_capacity_pool_size

Integer

(Required) Capacity Pool Size mentioned in TB.

az_vnet_creation_bool

Boolean

(Required) Set this boolean to true if you want to create a new vnet. Set it to false to use an existing vnet.

az_subnet_creation_bool

Boolean

(Required) Set this boolean to true to create a new subnet. Set it to false to use an existing subnet.

az_subnet_id_for_anf_vol

String

(Required) Mention the subnet id in case you decide to use an existing subnet by setting subnet_creation_bool to true. If set to false, leave it at the default value.

az_netapp_pool_service_level

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_service_level

String

(Required) The target performance of the file system. Valid values include Premium , Standard , or Ultra.

az_netapp_vol_protocol

String

(Optional) The target volume protocol expressed as a list. Supported single value include CIFS, NFSv3, or NFSv4.1. If argument is not defined it will default to NFSv3. Changing this forces a new resource to be created and data will be lost.

az_netapp_vol_storage_quota

String

(Required) The maximum Storage Quota allowed for a file system in Gigabytes.

az_snapshot_id

String

(Required) Snapshot ID using which new ANF volume will be created.

Note As per the recommendation, this script uses the prevent_destroy lifecycle argument to mitigate the possibility of accidental data loss in the configuration file. For more information on the prevent_destroy lifecycle argument please see the terraform documentation: https://developer.hashicorp.com/terraform/tutorials/state/resource-lifecycle#prevent-resource-deletion.
CVO Single Node Deployment
Terraform configuration files for deployment of Single Node CVO on Azure

This section contains various Terraform configuration files to deploy/configure Single Node CVO (Cloud Volumes ONTAP) on Azure.

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation
  3. Login to your Azure CLI (Azure CLI must be installed).

        az login
  4. Update the variables in vars\azure_cvo_single_node_deployment.tfvars.

  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.az_cvo_single_node_deployment" -var-file="vars\azure_cvo_single_node_deployment.tfvars"
  8. Run the deployment

        terraform apply -target="module.az_cvo_single_node_deployment" -var-file="vars\azure_cvo_single_node_deployment.tfvars"

To delete the deployment

  terraform destroy
Recipies:

Single Node Instance

Terraform variables for single node Cloud Volumes ONTAP (CVO).

Name Type Description

refresh_token

String

(Required) The refresh token of NetApp cloud manager. This can be generated from netapp Cloud Central.

az_connector_name

String

(Required) The name of the Cloud Manager Connector.

az_connector_location

String

(Required) The location where the Cloud Manager Connector will be created.

az_connector_subscription_id

String

(Required) The ID of the Azure subscription.

az_connector_company

String

(Required) The name of the company of the user.

az_connector_resource_group

Integer

(Required) The resource group in Azure where the resources will be created.

az_connector_subnet_id

String

(Required) The name of the subnet for the virtual machine.

az_connector_vnet_id

String

(Required) The name of the virtual network.

az_connector_network_security_group_name

String

(Required) The name of the security group for the instance.

az_connector_associate_public_ip_address

String

(Required) Indicates whether to associate the public IP address to the virtual machine.

az_connector_account_id

String

(Required) The NetApp account ID that the Connector will be associated with. If not provided, Cloud Manager uses the first account. If no account exists, Cloud Manager creates a new account. You can find the account ID in the account tab of Cloud Manager at https://cloudmanager.netapp.com.

az_connector_admin_password

String

(Required) The password for the Connector.

az_connector_admin_username

String

(Required) The user name for the Connector.

az_cvo_name

String

(Required) The name of the Cloud Volumes ONTAP working environment.

az_cvo_location

String

(Required) The location where the working environment will be created.

az_cvo_subnet_id

String

(Required) The name of the subnet for the Cloud Volumes ONTAP system.

az_cvo_vnet_id

String

(Required) The name of the virtual network.

az_cvo_vnet_resource_group

String

(Required) The resource group in Azure associated to the virtual network.

az_cvo_data_encryption_type

String

(Required) The type of encryption to use for the working environment: [AZURE, NONE]. The default is AZURE.

az_cvo_storage_type

String

(Required) The type of storage for the first data aggregate: [Premium_LRS, Standard_LRS, StandardSSD_LRS]. The default is Premium_LRS

az_cvo_svm_password

String

(Required) The admin password for Cloud Volumes ONTAP.

az_cvo_workspace_id

String

(Required) The ID of the Cloud Manager workspace where you want to deploy Cloud Volumes ONTAP. If not provided, Cloud Manager uses the first workspace. You can find the ID from the Workspace tab on https://cloudmanager.netapp.com.

az_cvo_capacity_tier

String

(Required) Whether to enable data tiering for the first data aggregate: [Blob, NONE]. The default is BLOB.

az_cvo_writing_speed_state

String

(Required) The write speed setting for Cloud Volumes ONTAP: [NORMAL , HIGH]. The default is NORMAL. This argument is not relevant for HA pairs.

az_cvo_ontap_version

String

(Required) The required ONTAP version. Ignored if 'use_latest_version' is set to true. The default is to use the latest version.

az_cvo_instance_type

String

(Required) The type of instance to use, which depends on the license type you chose: Explore:[Standard_DS3_v2], Standard:[Standard_DS4_v2,Standard_DS13_v2,Standard_L8s_v2], Premium:[Standard_DS5_v2,Standard_DS14_v2], BYOL: all instance types defined for PayGo. For more supported instance types, refer to Cloud Volumes ONTAP Release Notes. The default is Standard_DS4_v2 .

az_cvo_license_type

String

(Required) The type of license to be use. For single node: [azure-cot-explore-paygo, azure-cot-standard-paygo, azure-cot-premium-paygo, azure-cot-premium-byol, capacity-paygo]. For HA: [azure-ha-cot-standard-paygo, azure-ha-cot-premium-paygo, azure-ha-cot-premium-byol, ha-capacity-paygo]. The default is azure-cot-standard-paygo. Use capacity-paygo or ha-capacity-paygo for HA on selecting Bring Your Own License type Capacity-Based or Freemium. Use azure-cot-premium-byol or azure-ha-cot-premium-byol for HA on selecting Bring Your Own License type Node-Based.

az_cvo_nss_account

String

(Required) he NetApp Support Site account ID to use with this Cloud Volumes ONTAP system. If the license type is BYOL and an NSS account isn't provided, Cloud Manager tries to use the first existing NSS account.

az_tenant_id

String

(Required) Tenant ID of the application/service principal registered in Azure.

az_application_id

String

(Required) Application ID of the application/service principal registered in Azure.

az_application_key

String

(Required) The Application Key of the application/service principal registered in Azure.

CVO HA Deployment
Terraform configuration files for deployment of CVO HA on Azure

This section contains various Terraform configuration files to deploy/configure CVO (Cloud Volumes ONTAP) HA (High Availability) on Azure.

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation
  3. Login to your Azure CLI (Azure CLI must be installed).

        az login
  4. Update the variables in vars\azure_cvo_ha_deployment.tfvars.

  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.az_cvo_ha_deployment" -var-file="vars\azure_cvo_ha_deployment.tfvars"
  8. Run the deployment

        terraform apply -target="module.az_cvo_ha_deployment" -var-file="vars\azure_cvo_ha_deployment.tfvars"

To delete the deployment

  terraform destroy
Recipies:

HA Pair Instance

Terraform variables for HA pair Cloud Volumes ONTAP (CVO).

Name Type Description

refresh_token

String

(Required) The refresh token of NetApp cloud manager. This can be generated from netapp Cloud Central.

az_connector_name

String

(Required) The name of the Cloud Manager Connector.

az_connector_location

String

(Required) The location where the Cloud Manager Connector will be created.

az_connector_subscription_id

String

(Required) The ID of the Azure subscription.

az_connector_company

String

(Required) The name of the company of the user.

az_connector_resource_group

Integer

(Required) The resource group in Azure where the resources will be created.

az_connector_subnet_id

String

(Required) The name of the subnet for the virtual machine.

az_connector_vnet_id

String

(Required) The name of the virtual network.

az_connector_network_security_group_name

String

(Required) The name of the security group for the instance.

az_connector_associate_public_ip_address

String

(Required) Indicates whether to associate the public IP address to the virtual machine.

az_connector_account_id

String

(Required) The NetApp account ID that the Connector will be associated with. If not provided, Cloud Manager uses the first account. If no account exists, Cloud Manager creates a new account. You can find the account ID in the account tab of Cloud Manager at https://cloudmanager.netapp.com.

az_connector_admin_password

String

(Required) The password for the Connector.

az_connector_admin_username

String

(Required) The user name for the Connector.

az_cvo_name

String

(Required) The name of the Cloud Volumes ONTAP working environment.

az_cvo_location

String

(Required) The location where the working environment will be created.

az_cvo_subnet_id

String

(Required) The name of the subnet for the Cloud Volumes ONTAP system.

az_cvo_vnet_id

String

(Required) The name of the virtual network.

az_cvo_vnet_resource_group

String

(Required) The resource group in Azure associated to the virtual network.

az_cvo_data_encryption_type

String

(Required) The type of encryption to use for the working environment: [AZURE, NONE]. The default is AZURE.

az_cvo_storage_type

String

(Required) The type of storage for the first data aggregate: [Premium_LRS, Standard_LRS, StandardSSD_LRS]. The default is Premium_LRS

az_cvo_svm_password

String

(Required) The admin password for Cloud Volumes ONTAP.

az_cvo_workspace_id

String

(Required) The ID of the Cloud Manager workspace where you want to deploy Cloud Volumes ONTAP. If not provided, Cloud Manager uses the first workspace. You can find the ID from the Workspace tab on https://cloudmanager.netapp.com.

az_cvo_capacity_tier

String

(Required) Whether to enable data tiering for the first data aggregate: [Blob, NONE]. The default is BLOB.

az_cvo_writing_speed_state

String

(Required) The write speed setting for Cloud Volumes ONTAP: [NORMAL , HIGH]. The default is NORMAL. This argument is not relevant for HA pairs.

az_cvo_ontap_version

String

(Required) The required ONTAP version. Ignored if 'use_latest_version' is set to true. The default is to use the latest version.

az_cvo_instance_type

String

(Required) The type of instance to use, which depends on the license type you chose: Explore:[Standard_DS3_v2], Standard:[Standard_DS4_v2, Standard_DS13_v2, Standard_L8s_v2], Premium:[Standard_DS5_v2, Standard_DS14_v2], BYOL: all instance types defined for PayGo. For more supported instance types, refer to Cloud Volumes ONTAP Release Notes. The default is Standard_DS4_v2 .

az_cvo_license_type

String

(Required) The type of license to be use. For single node: [azure-cot-explore-paygo, azure-cot-standard-paygo, azure-cot-premium-paygo, azure-cot-premium-byol, capacity-paygo]. For HA: [azure-ha-cot-standard-paygo, azure-ha-cot-premium-paygo, azure-ha-cot-premium-byol, ha-capacity-paygo]. The default is azure-cot-standard-paygo. Use capacity-paygo or ha-capacity-paygo for HA on selecting Bring Your Own License type Capacity-Based or Freemium. Use azure-cot-premium-byol or azure-ha-cot-premium-byol for HA on selecting Bring Your Own License type Node-Based.

az_cvo_nss_account

String

(Required) he NetApp Support Site account ID to use with this Cloud Volumes ONTAP system. If the license type is BYOL and an NSS account isn't provided, Cloud Manager tries to use the first existing NSS account.

az_tenant_id

String

(Required) Tenant ID of the application/service principal registered in Azure.

az_application_id

String

(Required) Application ID of the application/service principal registered in Azure.

az_application_key

String

(Required) The Application Key of the application/service principal registered in Azure.

GCP
CVO Single Node Deployment
Terraform configuration files for deployment of NetApp CVO (Single Node Instance) on GCP

This section contains various Terraform configuration files to deploy/configure single node NetApp CVO (Cloud Volumes ONTAP) on GCP (Google Cloud Platform).

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation/
  3. Save the GCP authentication key JSON file in the directory.

  4. Update the variable values in vars/gcp_cvo_single_node_deployment.tfvar

    Note You can choose to deploy the connector by setting the variable "gcp_connector_deploy_bool" value to true/false.
  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

        terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.gco_single_node" -var-file="vars/gcp_cvo_single_node_deployment.tfvars"
  8. Run the deployment

        terraform apply -target="module.gcp_single_node" -var-file="vars/gcp_cvo_single_node_deployment.tfvars"

To delete the deployment

    terraform destroy
Recipies:

Connector

Terraform variables for NetApp GCP connector instance for CVO deployment.

Name Type Description

gcp_connector_deploy_bool

Bool

(Required) Check for Connector deployment.

gcp_connector_name

String

(Required) The name of the Cloud Manager Connector.

gcp_connector_project_id

String

(Required) The GCP project_id where the connector will be created.

gcp_connector_zone

String

(Required) The GCP zone where the Connector will be created.

gcp_connector_company

String

(Required) The name of the company of the user.

gcp_connector_service_account_email

String

(Required) The email of the service_account for the connector instance. This service account is used to allow the Connector to create Cloud Volume ONTAP.

gcp_connector_service_account_path

String

(Required) The local path of the service_account JSON file for GCP authorization purposes. This service account is used to create the Connector in GCP.

gcp_connector_account_id

String

(Optional) The NetApp account ID that the Connector will be associated with. If not provided, Cloud Manager uses the first account. If no account exists, Cloud Manager creates a new account. You can find the account ID in the account tab of Cloud Manager at https://cloudmanager.netapp.com.

Single Node Instance

Terraform variables for single NetApp CVO instance on GCP.

Name Type Description

gcp_cvo_name

String

(Required) The name of the Cloud Volumes ONTAP working environment.

gcp_cvo_project_id

String

(Required) The ID of the GCP project.

gcp_cvo_zone

String

(Required) The zone of the region where the working environment will be created.

gcp_cvo_gcp_service_account

String

(Required) The gcp_service_account email in order to enable tiering of cold data to Google Cloud Storage.

gcp_cvo_svm_password

String

(Required) The admin password for Cloud Volumes ONTAP.

gcp_cvo_workspace_id

String

(Optional) The ID of the Cloud Manager workspace where you want to deploy Cloud Volumes ONTAP. If not provided, Cloud Manager uses the first workspace. You can find the ID from the Workspace tab on https://cloudmanager.netapp.com.

gcp_cvo_license_type

String

(Optional) The type of license to use. For single node: ['capacity-paygo', 'gcp-cot-explore-paygo', 'gcp-cot-standard-paygo', 'gcp-cot-premium-paygo', 'gcp-cot-premium-byol'], For HA: ['ha-capacity-paygo', 'gcp-ha-cot-explore-paygo', 'gcp-ha-cot-standard-paygo', 'gcp-ha-cot-premium-paygo', 'gcp-ha-cot-premium-byol']. The default is 'capacity-paygo' for single node, and 'ha-capacity-paygo' for HA.

gcp_cvo_capacity_package_name

String

(Optional) The capacity package name: ['Essential', 'Professional', 'Freemium']. Default is 'Essential'.

CVO HA Deployment
Terraform configuration files for deployment of NetApp CVO (HA Pair) on GCP

This section contains various Terraform configuration files to deploy/configure NetApp CVO (Cloud Volumes ONTAP) in high availability pair on GCP (Google Cloud Platform).

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation/
  3. Save the GCP authentication key JSON file in the directory.

  4. Update the variable values in vars/gcp_cvo_ha_deployment.tfvars.

    Note You can choose to deploy the connector by setting the variable "gcp_connector_deploy_bool" value to true/false.
  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

          terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.gcp_ha" -var-file="vars/gcp_cvo_ha_deployment.tfvars"
  8. Run the deployment

        terraform apply -target="module.gcp_ha" -var-file="vars/gcp_cvo_ha_deployment.tfvars"

To delete the deployment

    terraform destroy
Recipies:

Connector

Terraform variables for NetApp GCP connector instance for CVO deployment.

Name Type Description

gcp_connector_deploy_bool

Bool

(Required) Check for Connector deployment.

gcp_connector_name

String

(Required) The name of the Cloud Manager Connector.

gcp_connector_project_id

String

(Required) The GCP project_id where the connector will be created.

gcp_connector_zone

String

(Required) The GCP zone where the Connector will be created.

gcp_connector_company

String

(Required) The name of the company of the user.

gcp_connector_service_account_email

String

(Required) The email of the service_account for the connector instance. This service account is used to allow the Connector to create Cloud Volume ONTAP.

gcp_connector_service_account_path

String

(Required) The local path of the service_account JSON file for GCP authorization purposes. This service account is used to create the Connector in GCP.

gcp_connector_account_id

String

(Optional) The NetApp account ID that the Connector will be associated with. If not provided, Cloud Manager uses the first account. If no account exists, Cloud Manager creates a new account. You can find the account ID in the account tab of Cloud Manager at https://cloudmanager.netapp.com.

HA Pair

Terraform variables for NetApp CVO instances in HA Pair on GCP.

Name Type Description

gcp_cvo_is_ha

Bool

(Optional) Indicate whether the working environment is an HA pair or not [true, false]. The default is false.

gcp_cvo_name

String

(Required) The name of the Cloud Volumes ONTAP working environment.

gcp_cvo_project_id

String

(Required) The ID of the GCP project.

gcp_cvo_zone

String

(Required) The zone of the region where the working environment will be created.

gcp_cvo_node1_zone

String

(Optional) Zone for node 1.

gcp_cvo_node2_zone

String

(Optional) Zone for node 2.

gcp_cvo_mediator_zone

String

(Optional) Zone for mediator.

gcp_cvo_vpc_id

String

(Optional) The name of the VPC.

gcp_cvo_subnet_id

String

(Optional) The name of the subnet for Cloud Volumes ONTAP. The default is: 'default'.

gcp_cvo_vpc0_node_and_data_connectivity

String

(Optional) VPC path for nic1, required for node and data connectivity. If using shared VPC, netwrok_project_id must be provided.

gcp_cvo_vpc1_cluster_connectivity

String

(Optional) VPC path for nic2, required for cluster connectivity.

gcp_cvo_vpc2_ha_connectivity

String

(Optional) VPC path for nic3, required for HA connectivity.

gcp_cvo_vpc3_data_replication

String

(Optional) VPC path for nic4, required for data replication.

gcp_cvo_subnet0_node_and_data_connectivity

String

(Optional) Subnet path for nic1, required for node and data connectivity. If using shared VPC, netwrok_project_id must be provided.

gcp_cvo_subnet1_cluster_connectivity

String

(Optional) Subnet path for nic2, required for cluster connectivity.

gcp_cvo_subnet2_ha_connectivity

String

(Optional) Subnet path for nic3, required for HA connectivity.

gcp_cvo_subnet3_data_replication

String

(Optional) Subnet path for nic4, required for data replication.

gcp_cvo_gcp_service_account

String

(Required) The gcp_service_account email in order to enable tiering of cold data to Google Cloud Storage.

gcp_cvo_svm_password

String

(Required) The admin password for Cloud Volumes ONTAP.

gcp_cvo_workspace_id

String

(Optional) The ID of the Cloud Manager workspace where you want to deploy Cloud Volumes ONTAP. If not provided, Cloud Manager uses the first workspace. You can find the ID from the Workspace tab on https://cloudmanager.netapp.com.

gcp_cvo_license_type

String

(Optional) The type of license to use. For single node: ['capacity-paygo', 'gcp-cot-explore-paygo', 'gcp-cot-standard-paygo', 'gcp-cot-premium-paygo', 'gcp-cot-premium-byol'], For HA: ['ha-capacity-paygo', 'gcp-ha-cot-explore-paygo', 'gcp-ha-cot-standard-paygo', 'gcp-ha-cot-premium-paygo', 'gcp-ha-cot-premium-byol']. The default is 'capacity-paygo' for single node, and 'ha-capacity-paygo' for HA.

gcp_cvo_capacity_package_name

String

(Optional) The capacity package name: ['Essential', 'Professional', 'Freemium']. Default is 'Essential'.

gcp_cvo_gcp_volume_size

String

(Optional) The GCP volume size for the first data aggregate. For GB, the unit can be: [100 or 500]. For TB, the unit can be: [1,2,4,8]. The default is '1' .

gcp_cvo_gcp_volume_size_unit

String

(Optional) ['GB' or 'TB']. The default is 'TB'.

CVS Volume
Terraform configuration files for deployment of NetApp CVS Volume on GCP

This section contains various Terraform configuration files to deploy/configure NetApp CVS (Cloud Volumes Services) Volume on GCP (Google Cloud Platform).

Procedure

In order to run the template:

  1. Clone the repository.

        git clone https://github.com/NetApp/na_cloud_volumes_automation.git
  2. Navigate to the desired folder

        cd na_cloud_volumes_automation/
  3. Save the GCP authentication key JSON file in the directory.

  4. Update the variable values in vars/gcp_cvs_volume.tfvars.

  5. Initialize the Terraform repository to install all the pre-requisites and prepare for deployment.

          terraform init
  6. Verify the terraform files using terraform validate command.

        terraform validate
  7. Make a dry run of the configuration to get a preview of all the changes expected by the deployment.

        terraform plan -target="module.gcp_cvs_volume" -var-file="vars/gcp_cvs_volume.tfvars"
  8. Run the deployment

        terraform apply -target="module.gcp_cvs_volume" -var-file="vars/gcp_cvs_volume.tfvars"

To delete the deployment

    terraform destroy
Recipies:

CVS Volume

Terraform variables for NetApp GCP CVS Volume.

Name Type Description

gcp_cvs_name

String

(Required) The name of the NetApp CVS volume.

gcp_cvs_project_id

String

(Required) The GCP project_id where the CVS Volume will be created.

gcp_cvs_gcp_service_account_path

String

(Required) The local path of the service_account JSON file for GCP authorization purposes. This service account is used to create the CVS Volume in GCP.

gcp_cvs_region

String

(Required) The GCP zone where the CVS Volume will be created.

gcp_cvs_network

String

(Required) The network VPC of the volume.

gcp_cvs_size

Integer

(Required) The size of volume is between 1024 to 102400 inclusive (in GiB).

gcp_cvs_volume_path

String

(Optional) The name of the volume path for volume.

gcp_cvs_protocol_types

String

(Required) The protocol_type of the volume. For NFS use 'NFSv3' or 'NFSv4' and for SMB use 'CIFS' or 'SMB'.