StoragePoolArgs

data class StoragePoolArgs(val activeDirectory: Output<String>? = null, val allowAutoTiering: Output<Boolean>? = null, val capacityGib: Output<String>? = null, val customPerformanceEnabled: Output<Boolean>? = null, val description: Output<String>? = null, val kmsConfig: Output<String>? = null, val labels: Output<Map<String, String>>? = null, val ldapEnabled: Output<Boolean>? = null, val location: Output<String>? = null, val name: Output<String>? = null, val network: Output<String>? = null, val project: Output<String>? = null, val replicaZone: Output<String>? = null, val serviceLevel: Output<String>? = null, val totalIops: Output<String>? = null, val totalThroughputMibps: Output<String>? = null, val zone: Output<String>? = null) : ConvertibleToJava<StoragePoolArgs>

Example Usage

Storage Pool Create Doc

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
// Create a network or use datasource to reference existing network
const peeringNetwork = new gcp.compute.Network("peering_network", {name: "test-network"});
// Reserve a CIDR for NetApp Volumes to use
// When using shared-VPCs, this resource needs to be created in host project
const privateIpAlloc = new gcp.compute.GlobalAddress("private_ip_alloc", {
name: "test-address",
purpose: "VPC_PEERING",
addressType: "INTERNAL",
prefixLength: 16,
network: peeringNetwork.id,
});
// Create a Private Service Access connection
// When using shared-VPCs, this resource needs to be created in host project
const _default = new gcp.servicenetworking.Connection("default", {
network: peeringNetwork.id,
service: "netapp.servicenetworking.goog",
reservedPeeringRanges: [privateIpAlloc&#46;name],
});
// Modify the PSA Connection to allow import/export of custom routes
// When using shared-VPCs, this resource needs to be created in host project
const routeUpdates = new gcp.compute.NetworkPeeringRoutesConfig("route_updates", {
peering: _default.peering,
network: peeringNetwork.name,
importCustomRoutes: true,
exportCustomRoutes: true,
});
// Create a storage pool
// Create this resource in the project which is expected to own the volumes
const testPool = new gcp.netapp.StoragePool("test_pool", {
name: "test-pool",
location: "us-central1",
serviceLevel: "PREMIUM",
capacityGib: "2048",
network: peeringNetwork.id,
});
import pulumi
import pulumi_gcp as gcp
# Create a network or use datasource to reference existing network
peering_network = gcp.compute.Network("peering_network", name="test-network")
# Reserve a CIDR for NetApp Volumes to use
# When using shared-VPCs, this resource needs to be created in host project
private_ip_alloc = gcp.compute.GlobalAddress("private_ip_alloc",
name="test-address",
purpose="VPC_PEERING",
address_type="INTERNAL",
prefix_length=16,
network=peering_network.id)
# Create a Private Service Access connection
# When using shared-VPCs, this resource needs to be created in host project
default = gcp.servicenetworking.Connection("default",
network=peering_network.id,
service="netapp.servicenetworking.goog",
reserved_peering_ranges=[private_ip_alloc&#46;name])
# Modify the PSA Connection to allow import/export of custom routes
# When using shared-VPCs, this resource needs to be created in host project
route_updates = gcp.compute.NetworkPeeringRoutesConfig("route_updates",
peering=default.peering,
network=peering_network.name,
import_custom_routes=True,
export_custom_routes=True)
# Create a storage pool
# Create this resource in the project which is expected to own the volumes
test_pool = gcp.netapp.StoragePool("test_pool",
name="test-pool",
location="us-central1",
service_level="PREMIUM",
capacity_gib="2048",
network=peering_network.id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
// Create a network or use datasource to reference existing network
var peeringNetwork = new Gcp.Compute.Network("peering_network", new()
{
Name = "test-network",
});
// Reserve a CIDR for NetApp Volumes to use
// When using shared-VPCs, this resource needs to be created in host project
var privateIpAlloc = new Gcp.Compute.GlobalAddress("private_ip_alloc", new()
{
Name = "test-address",
Purpose = "VPC_PEERING",
AddressType = "INTERNAL",
PrefixLength = 16,
Network = peeringNetwork.Id,
});
// Create a Private Service Access connection
// When using shared-VPCs, this resource needs to be created in host project
var @default = new Gcp.ServiceNetworking.Connection("default", new()
{
Network = peeringNetwork.Id,
Service = "netapp.servicenetworking.goog",
ReservedPeeringRanges = new[]
{
privateIpAlloc.Name,
},
});
// Modify the PSA Connection to allow import/export of custom routes
// When using shared-VPCs, this resource needs to be created in host project
var routeUpdates = new Gcp.Compute.NetworkPeeringRoutesConfig("route_updates", new()
{
Peering = @default.Peering,
Network = peeringNetwork.Name,
ImportCustomRoutes = true,
ExportCustomRoutes = true,
});
// Create a storage pool
// Create this resource in the project which is expected to own the volumes
var testPool = new Gcp.Netapp.StoragePool("test_pool", new()
{
Name = "test-pool",
Location = "us-central1",
ServiceLevel = "PREMIUM",
CapacityGib = "2048",
Network = peeringNetwork.Id,
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/netapp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/servicenetworking"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Create a network or use datasource to reference existing network
peeringNetwork, err := compute.NewNetwork(ctx, "peering_network", &compute.NetworkArgs{
Name: pulumi.String("test-network"),
})
if err != nil {
return err
}
// Reserve a CIDR for NetApp Volumes to use
// When using shared-VPCs, this resource needs to be created in host project
privateIpAlloc, err := compute.NewGlobalAddress(ctx, "private_ip_alloc", &compute.GlobalAddressArgs{
Name: pulumi.String("test-address"),
Purpose: pulumi.String("VPC_PEERING"),
AddressType: pulumi.String("INTERNAL"),
PrefixLength: pulumi.Int(16),
Network: peeringNetwork.ID(),
})
if err != nil {
return err
}
// Create a Private Service Access connection
// When using shared-VPCs, this resource needs to be created in host project
_default, err := servicenetworking.NewConnection(ctx, "default", &servicenetworking.ConnectionArgs{
Network: peeringNetwork.ID(),
Service: pulumi.String("netapp.servicenetworking.goog"),
ReservedPeeringRanges: pulumi.StringArray{
privateIpAlloc.Name,
},
})
if err != nil {
return err
}
// Modify the PSA Connection to allow import/export of custom routes
// When using shared-VPCs, this resource needs to be created in host project
_, err = compute.NewNetworkPeeringRoutesConfig(ctx, "route_updates", &compute.NetworkPeeringRoutesConfigArgs{
Peering: _default.Peering,
Network: peeringNetwork.Name,
ImportCustomRoutes: pulumi.Bool(true),
ExportCustomRoutes: pulumi.Bool(true),
})
if err != nil {
return err
}
// Create a storage pool
// Create this resource in the project which is expected to own the volumes
_, err = netapp.NewStoragePool(ctx, "test_pool", &netapp.StoragePoolArgs{
Name: pulumi.String("test-pool"),
Location: pulumi.String("us-central1"),
ServiceLevel: pulumi.String("PREMIUM"),
CapacityGib: pulumi.String("2048"),
Network: peeringNetwork.ID(),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.GlobalAddress;
import com.pulumi.gcp.compute.GlobalAddressArgs;
import com.pulumi.gcp.servicenetworking.Connection;
import com.pulumi.gcp.servicenetworking.ConnectionArgs;
import com.pulumi.gcp.compute.NetworkPeeringRoutesConfig;
import com.pulumi.gcp.compute.NetworkPeeringRoutesConfigArgs;
import com.pulumi.gcp.netapp.StoragePool;
import com.pulumi.gcp.netapp.StoragePoolArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Create a network or use datasource to reference existing network
var peeringNetwork = new Network("peeringNetwork", NetworkArgs.builder()
.name("test-network")
.build());
// Reserve a CIDR for NetApp Volumes to use
// When using shared-VPCs, this resource needs to be created in host project
var privateIpAlloc = new GlobalAddress("privateIpAlloc", GlobalAddressArgs.builder()
.name("test-address")
.purpose("VPC_PEERING")
.addressType("INTERNAL")
.prefixLength(16)
.network(peeringNetwork.id())
.build());
// Create a Private Service Access connection
// When using shared-VPCs, this resource needs to be created in host project
var default_ = new Connection("default", ConnectionArgs.builder()
.network(peeringNetwork.id())
.service("netapp.servicenetworking.goog")
.reservedPeeringRanges(privateIpAlloc.name())
.build());
// Modify the PSA Connection to allow import/export of custom routes
// When using shared-VPCs, this resource needs to be created in host project
var routeUpdates = new NetworkPeeringRoutesConfig("routeUpdates", NetworkPeeringRoutesConfigArgs.builder()
.peering(default_.peering())
.network(peeringNetwork.name())
.importCustomRoutes(true)
.exportCustomRoutes(true)
.build());
// Create a storage pool
// Create this resource in the project which is expected to own the volumes
var testPool = new StoragePool("testPool", StoragePoolArgs.builder()
.name("test-pool")
.location("us-central1")
.serviceLevel("PREMIUM")
.capacityGib("2048")
.network(peeringNetwork.id())
.build());
}
}
resources:
# Create a network or use datasource to reference existing network
peeringNetwork:
type: gcp:compute:Network
name: peering_network
properties:
name: test-network
# Reserve a CIDR for NetApp Volumes to use
# When using shared-VPCs, this resource needs to be created in host project
privateIpAlloc:
type: gcp:compute:GlobalAddress
name: private_ip_alloc
properties:
name: test-address
purpose: VPC_PEERING
addressType: INTERNAL
prefixLength: 16
network: ${peeringNetwork.id}
# Create a Private Service Access connection
# When using shared-VPCs, this resource needs to be created in host project
default:
type: gcp:servicenetworking:Connection
properties:
network: ${peeringNetwork.id}
service: netapp.servicenetworking.goog
reservedPeeringRanges:
- ${privateIpAlloc.name}
# Modify the PSA Connection to allow import/export of custom routes
# When using shared-VPCs, this resource needs to be created in host project
routeUpdates:
type: gcp:compute:NetworkPeeringRoutesConfig
name: route_updates
properties:
peering: ${default.peering}
network: ${peeringNetwork.name}
importCustomRoutes: true
exportCustomRoutes: true
# Create a storage pool
# Create this resource in the project which is expected to own the volumes
testPool:
type: gcp:netapp:StoragePool
name: test_pool
properties:
name: test-pool
location: us-central1
serviceLevel: PREMIUM
capacityGib: '2048'
network: ${peeringNetwork.id}

Import

StoragePool can be imported using any of these accepted formats:

  • projects/{{project}}/locations/{{location}}/storagePools/{{name}}

  • {{project}}/{{location}}/{{name}}

  • {{location}}/{{name}} When using the pulumi import command, StoragePool can be imported using one of the formats above. For example:

$ pulumi import gcp:netapp/storagePool:StoragePool default projects/{{project}}/locations/{{location}}/storagePools/{{name}}
$ pulumi import gcp:netapp/storagePool:StoragePool default {{project}}/{{location}}/{{name}}
$ pulumi import gcp:netapp/storagePool:StoragePool default {{location}}/{{name}}

Constructors

Link copied to clipboard
constructor(activeDirectory: Output<String>? = null, allowAutoTiering: Output<Boolean>? = null, capacityGib: Output<String>? = null, customPerformanceEnabled: Output<Boolean>? = null, description: Output<String>? = null, kmsConfig: Output<String>? = null, labels: Output<Map<String, String>>? = null, ldapEnabled: Output<Boolean>? = null, location: Output<String>? = null, name: Output<String>? = null, network: Output<String>? = null, project: Output<String>? = null, replicaZone: Output<String>? = null, serviceLevel: Output<String>? = null, totalIops: Output<String>? = null, totalThroughputMibps: Output<String>? = null, zone: Output<String>? = null)

Properties

Link copied to clipboard
val activeDirectory: Output<String>? = null

Specifies the Active Directory policy to be used. Format: projects/{{project}}/locations/{{location}}/activeDirectories/{{name}}. The policy needs to be in the same location as the storage pool.

Link copied to clipboard
val allowAutoTiering: Output<Boolean>? = null

Optional. True if the storage pool supports Auto Tiering enabled volumes. Default is false. Auto-tiering can be enabled after storage pool creation but it can't be disabled once enabled.

Link copied to clipboard
val capacityGib: Output<String>? = null

Capacity of the storage pool (in GiB).

Link copied to clipboard
val customPerformanceEnabled: Output<Boolean>? = null

Optional. True if using Independent Scaling of capacity and performance (Hyperdisk). Default is false.

Link copied to clipboard
val description: Output<String>? = null

An optional description of this resource.

Link copied to clipboard
val kmsConfig: Output<String>? = null

Specifies the CMEK policy to be used for volume encryption. Format: projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}. The policy needs to be in the same location as the storage pool.

Link copied to clipboard
val labels: Output<Map<String, String>>? = null

Labels as key value pairs. Example: { "owner": "Bob", "department": "finance", "purpose": "testing" }. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.

Link copied to clipboard
val ldapEnabled: Output<Boolean>? = null

When enabled, the volumes uses Active Directory as LDAP name service for UID/GID lookups. Required to enable extended group support for NFSv3, using security identifiers for NFSv4.1 or principal names for kerberized NFSv4.1.

Link copied to clipboard
val location: Output<String>? = null

Name of the location. For zonal Flex pools specify a zone name, in all other cases a region name.

Link copied to clipboard
val name: Output<String>? = null

The resource name of the storage pool. Needs to be unique per location/region.

Link copied to clipboard
val network: Output<String>? = null

VPC network name with format: projects/{{project}}/global/networks/{{network}}

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard
val replicaZone: Output<String>? = null

Specifies the replica zone for regional Flex pools. zone and replica_zone values can be swapped to initiate a zone switch.

Link copied to clipboard
val serviceLevel: Output<String>? = null

Service level of the storage pool. Possible values are: PREMIUM, EXTREME, STANDARD, FLEX.

Link copied to clipboard
val totalIops: Output<String>? = null

Optional. Custom Performance Total IOPS of the pool If not provided, it will be calculated based on the totalThroughputMibps

Link copied to clipboard
val totalThroughputMibps: Output<String>? = null

Optional. Custom Performance Total Throughput of the pool (in MiB/s).

Link copied to clipboard
val zone: Output<String>? = null

Specifies the active zone for regional Flex pools. zone and replica_zone values can be swapped to initiate a zone switch. If you want to create a zonal Flex pool, specify a zone name for location and omit zone.

Functions

Link copied to clipboard
open override fun toJava(): StoragePoolArgs