Skip to content

GCP.NetApp reference

Source: src/GCP/NetApp/ActiveDirectory.ts

A Cloud NetApp Volumes Active Directory connection used by SMB and Kerberos volumes.

Changing activeDirectoryId, location, domain, or netBiosPrefix replaces the directory. Credentials, operators, description, and labels update in place.

ActiveDirectory: Creating an Active Directory

Section titled “ActiveDirectory: Creating an Active Directory”

Generated name

const ad = yield* GCP.NetApp.ActiveDirectory("Corp", {
domain: "ad.example.com",
dns: "10.0.0.2",
netBiosPrefix: "netapp",
username: "admin",
password: secret,
});

Operators and encryption

const ad = yield* GCP.NetApp.ActiveDirectory("Corp", {
domain: "ad.example.com",
dns: "10.0.0.2,10.0.0.3",
netBiosPrefix: "netapp",
username: "admin",
password: secret,
administrators: ["alice"],
aesEncryption: true,
labels: { env: "prod" },
});

ActiveDirectory: Updating an Active Directory

Section titled “ActiveDirectory: Updating an Active Directory”
const ad = yield* GCP.NetApp.ActiveDirectory("Corp", {
domain: "ad.example.com",
dns: "10.0.0.2",
netBiosPrefix: "netapp",
username: "admin",
description: "corp ad v2",
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/BackupPolicy.ts

A Cloud NetApp Volumes backup policy that schedules daily, weekly, and monthly volume backups.

Changing backupPolicyId or location replaces the policy. Retention limits, enabled, description, and labels update in place.

Generated name

const policy = yield* GCP.NetApp.BackupPolicy("Nightly", {});

Explicit id and limits

const policy = yield* GCP.NetApp.BackupPolicy("Nightly", {
backupPolicyId: "app-nightly",
dailyBackupLimit: 2,
weeklyBackupLimit: 1,
monthlyBackupLimit: 1,
description: "nightly backups",
labels: { env: "prod" },
});
const policy = yield* GCP.NetApp.BackupPolicy("Nightly", {
description: "nightly backups v2",
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/BackupVault.ts

A Cloud NetApp Volumes backup vault that stores volume backups.

Changing backupVaultId, location, backupVaultType, backupRegion, or kmsConfig replaces the vault. Description, labels, and retention policy update in place.

Generated name

const vault = yield* GCP.NetApp.BackupVault("Vault", {});

Explicit id and description

const vault = yield* GCP.NetApp.BackupVault("Vault", {
backupVaultId: "app-backups",
description: "nightly backups",
labels: { env: "prod" },
});
const vault = yield* GCP.NetApp.BackupVault("Vault", {
description: "nightly backups v2",
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/BackupVaultsBackup.ts

A Cloud NetApp Volumes backup stored in a backup vault.

Changing backupId, backupVault, location, sourceVolume, sourceSnapshot, or ontapSource replaces the backup. Description and labels update in place.

From a volume

const backup = yield* GCP.NetApp.BackupVaultsBackup("Nightly", {
backupVault: vault.name,
sourceVolume: volume.name,
});

From a snapshot

const backup = yield* GCP.NetApp.BackupVaultsBackup("Nightly", {
backupVault: vault.name,
sourceVolume: volume.name,
sourceSnapshot: snapshot.name,
description: "pre-release",
labels: { env: "prod" },
});
const backup = yield* GCP.NetApp.BackupVaultsBackup("Nightly", {
backupVault: vault.name,
sourceVolume: volume.name,
description: "pre-release v2",
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/HostGroup.ts

A Cloud NetApp Volumes host group — a set of iSCSI initiators that can mount a block volume.

Changing hostGroupId, location, type, or osType replaces the group. Hosts, description, and labels update in place.

Generated name

const group = yield* GCP.NetApp.HostGroup("Initiators", {
hosts: ["iqn.1993-08.org.debian:01:db"],
});

Explicit id and OS

const group = yield* GCP.NetApp.HostGroup("Initiators", {
hostGroupId: "db-hosts",
hosts: ["iqn.1993-08.org.debian:01:db"],
osType: "LINUX",
description: "database initiators",
labels: { env: "prod" },
});
const group = yield* GCP.NetApp.HostGroup("Initiators", {
hosts: [
"iqn.1993-08.org.debian:01:db",
"iqn.1993-08.org.debian:01:db2",
],
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/KmsConfig.ts

A Cloud NetApp Volumes CMEK configuration that encrypts volumes with a customer-managed Cloud KMS key.

Changing kmsConfigId, location, or cryptoKeyName replaces the config. Description and labels update in place.

Generated name

const kms = yield* GCP.NetApp.KmsConfig("Cmek", {
cryptoKeyName: key.name,
});

Explicit id and description

const kms = yield* GCP.NetApp.KmsConfig("Cmek", {
kmsConfigId: "app-cmek",
cryptoKeyName: key.name,
description: "volume encryption",
labels: { env: "prod" },
});
const kms = yield* GCP.NetApp.KmsConfig("Cmek", {
cryptoKeyName: key.name,
description: "volume encryption v2",
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/StoragePool.ts

A Cloud NetApp Volumes storage pool — billed capacity that hosts volumes at a service level.

Changing storagePoolId, location, network, serviceLevel, zone, replicaZone, kmsConfig, ldapEnabled, type, mode, customPerformanceEnabled, or scaleType replaces the pool. Capacity, description, labels, QoS, and auto-tiering update in place.

Generated name

const pool = yield* GCP.NetApp.StoragePool("Pool", {
network: "default",
serviceLevel: "STANDARD",
capacityGib: 2048,
});

Explicit id and labels

const pool = yield* GCP.NetApp.StoragePool("Pool", {
storagePoolId: "app-pool",
network: "default",
serviceLevel: "PREMIUM",
capacityGib: 4096,
description: "app volumes",
labels: { env: "prod" },
});
const pool = yield* GCP.NetApp.StoragePool("Pool", {
network: "default",
serviceLevel: "STANDARD",
capacityGib: 4096,
description: "app volumes v2",
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/Volume.ts

A Cloud NetApp Volumes file or block volume hosted in a storage pool.

Changing volumeId, location, storagePool, shareName, protocols, securityStyle, kerberosEnabled, restoreParameters, or large-capacity flags replaces the volume. Capacity, export policy, snapshots, backups, description, and labels update in place.

NFS volume

const volume = yield* GCP.NetApp.Volume("Share", {
storagePool: pool.name,
protocols: ["NFSV3"],
capacityGib: 100,
});

Explicit share name and export policy

const volume = yield* GCP.NetApp.Volume("Share", {
storagePool: pool.name,
shareName: "app",
protocols: ["NFSV3"],
capacityGib: 200,
unixPermissions: "0770",
exportPolicy: {
rules: [{ allowedClients: "10.0.0.0/24", accessType: "READ_WRITE" }],
},
labels: { env: "prod" },
});
const volume = yield* GCP.NetApp.Volume("Share", {
storagePool: pool.name,
capacityGib: 300,
description: "app share v2",
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/VolumesQuotaRule.ts

A Cloud NetApp Volumes quota rule that caps disk usage for a user or group on a volume.

Changing quotaRuleId, volume, location, type, or target replaces the rule. Disk limit, description, and labels update in place.

Default user quota

const rule = yield* GCP.NetApp.VolumesQuotaRule("DefaultUser", {
volume: volume.name,
type: "DEFAULT_USER_QUOTA",
diskLimitMib: 1024,
});

Individual user quota

const rule = yield* GCP.NetApp.VolumesQuotaRule("Alice", {
volume: volume.name,
type: "INDIVIDUAL_USER_QUOTA",
target: "1001",
diskLimitMib: 2048,
labels: { env: "prod" },
});
const rule = yield* GCP.NetApp.VolumesQuotaRule("DefaultUser", {
volume: volume.name,
diskLimitMib: 4096,
description: "default user v2",
labels: { env: "prod", team: "storage" },
});

Source: src/GCP/NetApp/VolumesReplication.ts

A Cloud NetApp Volumes cross-region replication. Creating it also creates a destination volume in the destination pool.

Changing replicationId, volume, location, or destination identity (storagePool / volumeId / shareName) replaces the replication. Schedule, description, labels, clusterLocation, and replicationEnabled update in place.

VolumesReplication: Creating a Replication

Section titled “VolumesReplication: Creating a Replication”

Hourly mirror into another region

const replica = yield* GCP.NetApp.VolumesReplication("Dr", {
volume: sourceVolume.name,
replicationSchedule: "HOURLY",
destinationVolumeParameters: {
storagePool: destPool.name,
volumeId: "app-dr",
shareName: "app",
},
labels: { env: "prod" },
});

Ten-minute schedule with description

const replica = yield* GCP.NetApp.VolumesReplication("Dr", {
volume: sourceVolume.name,
replicationSchedule: "EVERY_10_MINUTES",
destinationVolumeParameters: {
storagePool: destPool.name,
},
description: "us-central1 to us-east1",
});

VolumesReplication: Updating a Replication

Section titled “VolumesReplication: Updating a Replication”
const replica = yield* GCP.NetApp.VolumesReplication("Dr", {
volume: sourceVolume.name,
replicationSchedule: "HOURLY",
destinationVolumeParameters: {
storagePool: destPool.name,
},
replicationEnabled: false,
});

Source: src/GCP/NetApp/VolumesSnapshot.ts

A Cloud NetApp Volumes snapshot — a point-in-time copy of a volume.

Changing snapshotId, volume, or location replaces the snapshot. Description and labels update in place.

Generated name

const snap = yield* GCP.NetApp.VolumesSnapshot("Nightly", {
volume: volume.name,
});

Explicit id, description, and labels

const snap = yield* GCP.NetApp.VolumesSnapshot("Nightly", {
volume: volume.name,
snapshotId: "app-nightly",
description: "nightly snapshot",
labels: { env: "prod" },
});
const snap = yield* GCP.NetApp.VolumesSnapshot("Nightly", {
volume: volume.name,
description: "nightly snapshot v2",
labels: { env: "prod", team: "storage" },
});