This module creates a Google Cloud NetApp Volumes storage pool.
NetApp Volumes is a first-party Google service that provides NFS and/or SMB shared file-systems to VMs. It offers advanced data management capabilities and highly scalable capacity and performance. NetApp Volume provides:
- robust support for NFSv3, NFSv4.x and SMB 2.1 and 3.x
- a rich feature set
- scalable performance
- FlexCache: Caching of ONTAP-based volumes to provide high-throughput and low latency read access to compute clusters of on-premises data
- Auto-tiering of unused data to optimse cost
Support for NetApp Volumes is split into two modules.
- netapp-storage-pool provisions a storage pool. Storage pools are pre-provisioned storage capacity containers which host volumes. A pool also defines fundamental properties of all the volumes within, like the region, the attached network, the service level, CMEK encryption, Active Directory and LDAP settings.
- netapp-volume provisions a volume inside an existing storage pool. A volume file-system container which is shared using NFS or SMB. It provides advanced data management capabilities.
For more information on this and other network storage options in the Cluster Toolkit, see the extended Network Storage documentation.
The netapp-storage-pool module currently supports the following NetApp Volumes service levels:
- Standard: 16 KiBps throughput per provisioned KiB of volume capacity.
- Premium: 64 KiBps throughput per provisioned KiB of volume capacity. Optional auto-tiering.
- Extreme: 128 KiBps throughput per provisioned KiB of volume capacity. Optional auto-tiering.
Check the service level matrix for additional information on capability differences between service levels. Flex service levels are currently not supported, but you can connect to existing Flex volumes using the pre-existing-network-storage module.
NetApp Volumes uses Private Service Access (PSA) to connect volumes to your network. Before you create a storage pool, make sure to connect NetApp Volumes to your network.
Example of creating a storage pool using a new network:
deployment_groups:
- group: primary
modules:
- id: network
source: modules/network/vpc
settings:
region: $(vars.region)
- id: private_service_access
source: modules/network/private-service-access
use: [network]
settings:
prefix_length: 24
service_name: "netapp.servicenetworking.goog"
deletion_policy: "ABANDON"
- id: netapp_pool
source: modules/file-system/netapp-storage-pool
use: [network, private_service_access]
settings:
pool_name: $(vars.deployment_name)-eda-pool
capacity_gib: 20000
service_level: "EXTREME"
region: $(vars.region)Example of creating a storage pool using an existing network which was already PSA-peered with NetApp Volume:
deployment_groups:
- group: primary
modules:
- id: network
source: modules/network/pre-existing-vpc
settings:
project_id: $(vars.project_id)
region: $(vars.region)
network_name: $(vars.network)
- id: netapp_pool
source: modules/file-system/netapp-storage-pool
use: [network]
settings:
pool_name: "eda-pool"
capacity_gib: 20000
service_level: "EXTREME"
region: $(vars.region)The following example shows all available parameters in use:
- id: netapp_pool
source: modules/file-system/netapp-storage-pool
use: [network, private_service_access]
settings:
pool_name: "mypool"
region: "us-west4"
capacity_gib: 2048
service_level: "EXTREME"
active_directory_policy: "projects/myproject/locations/us-east4/activeDirectories/my-ad"
cmek_policy: "projects/myproject/locations/us-east4/kmsConfigs/my-cmek-policy"
ldap_enabled: false
allow_auto_tiering: false
description: "Demo storage pool"
labels:
owner: bobYour project must have unused quota for NetApp Volumes in the region you will provision the storage pool. This can be found by browsing to the Quota tab within IAM & Admin in the Cloud Console. Please note that there are separate quota limits for Standard and Premium/Extreme service levels.
See also NetApp Volumes default quotas.
Copyright 2026 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.
| Name | Version |
|---|---|
| terraform | >= 1.5.7 |
| >= 6.45.0 | |
| random | ~> 3.0 |
| Name | Version |
|---|---|
| >= 6.45.0 | |
| random | ~> 3.0 |
No modules.
| Name | Type |
|---|---|
| google_netapp_storage_pool.netapp_storage_pool | resource |
| random_id.resource_name_suffix | resource |
| google_compute_network_peering.private_peering | data source |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| active_directory_policy | The ID of the Active Directory policy to apply to the storage pool in the format:projects/<project_id>/locations/<location>/activeDirectoryPolicies/<policy_id> |
string |
null |
no |
| allow_auto_tiering | Whether to allow automatic tiering for the storage pool. | bool |
false |
no |
| capacity_gib | The capacity of the storage pool in GiB. | number |
2048 |
no |
| cmek_policy | The ID of the Customer Managed Encryption Key (CMEK) policy to apply to the storage pool in the format:projects/<project>/locations/<location>/kmsConfigs/<name> |
string |
null |
no |
| deployment_name | Name of the deployment, used as name of the NetApp storage pool if no name is specified. | string |
n/a | yes |
| description | A description of the NetApp storage pool. | string |
"" |
no |
| labels | Labels to add to the NetApp storage pool. Key-value pairs. | map(string) |
n/a | yes |
| ldap_enabled | Whether to enable LDAP for the storage pool. | bool |
false |
no |
| network_id | The ID of the GCE VPC network to which the NetApp storage pool is connected given in the format:projects/<project_id>/global/networks/<network_name>" |
string |
n/a | yes |
| network_self_link | Network self-link the pool will be on, required for checking private service access | string |
n/a | yes |
| pool_name | The name of the storage pool. Leave empty to generate name based on deployment name. | string |
null |
no |
| private_vpc_connection_peering | The name of the private VPC connection peering. | string |
"sn-netapp-prod" |
no |
| project_id | ID of project in which the NetApp storage pool will be created. | string |
n/a | yes |
| region | Location for NetApp storage pool. | string |
n/a | yes |
| service_level | The service level of the storage pool. | string |
"PREMIUM" |
no |
| Name | Description |
|---|---|
| capacity_gb | Storage pool capacity in GiB. |
| netapp_storage_pool_id | An identifier for the resource with format projects/{{project}}/locations/{{location}}/storagePools/{{name}} |