Create a working environment with BYOL

Contributors netapp-ranuk

You can use this workflow to create a new Cloud Volumes ONTAP working environment using bring your own license (BYOL) licensing.

Note
When using BYOL licensing:
  • A marketplace subscription is not required.

  • A NetApp Support Site (NSS) key is required to register the system for support.

  • You can add more volumes after creating the working environment. You can choose to create a volume using either NFS, CIFS, or iSCSI protocol.

Choose the workflow to use based on the type of Cloud Volumes ONTAP deployment:

Create working environment for single node

You can use this workflow to create single node working environment with BYOL licensing.

1. Select the region

Perform the workflow Get regions and do the following:

  • Choose the name value of the required region for the region parameter in step 8.

  • Choose one of the VPCs. Choose name for vpcId parameter and subnets: path for subnetId and subnetPath parameters in step 8.

2. Select the workspace

Perform the workflow Get tenants and choose the workspacePublicId value for the tenantId parameter in step 8.

3. Select the project

Perform the workflow Get projects and choose the projectId value of the required project for project parameter in step 8.

4. Select the permutations

Perform the workflow Get permutations and choose the ontapVersion, license: type, and instanceType values of the required vsaMetadata parameter in step 8.

5. Select the packages configuration

Perform the workflow Get packages and search the licenseType from permutations:

  • Choose the name for packageName parameter.

  • Choose the diskSize for gcpVolumeSize.

  • Choose the diskType and writingSpeedState for the gcpVolumeType and writingSpeedState parameters.

6. Select the service account

Perform the workflow Get service accounts workflow and choose the email value of the required service accounts for the gcpServiceAccount parameter in step 8.

7. Obtain an NSS key

An NSS key is required when using BYOL subscription. If needed, you can create a key or select an existing key, and include the NSS key in the nssAccount parameter in step 8.

  • To create a new NSS key using the Cloud Manager web user interface, perform the task Generate NSS user ID and choose the id.

  • To select an existing NSS key, perform the Get NSS keys workflow and choose the id value of the required NSS user.

8. Create the working environment

HTTP method Path

POST

/occm/api/gcp/vsa/working-environments

curl example
curl --location --request POST 'https://cloudmanager.cloud.netapp.com/occm/api/gcp/vsa/working-environments' --header 'x-agent-id: <AGENT_ID>' --header 'Authorization: Bearer <ACCESS_TOKEN>' ---header 'Content-Type: application/json' --d @JSONinput
Input

The JSON input example includes the minimum list of parameters. This request uses BYOL licensing as indicated in the licenseType parameter. The serialNumber is required.

JSON input example
{
name: "gcpwe123"
backupVolumesToCbs: true
capacityTier: "cloudStorage"
dataEncryptionType: "GCP"
enableCompliance: true
gcpLabels: []
gcpServiceAccount: "fabric-pool@occm-dev.iam.gserviceaccount.com"
gcpVolumeSize: {size: 500, unit: "GB", _identifier: "500 GB"}
gcpVolumeType: "pd-ssd"
name: "gcpwe123"
nssAccount: "0xxx-000-4c70-9cee-304f36b74db6"
packageName: "gcp_poc"
project: "occm-dev"
region: "europe-west3-c"
serialNumber: "00000108000000000000"
subnetId: "projects/occm-dev/regions/europe-west3/subnetworks/vpc4qa-2-europe-west3"
subnetPath: "projects/occm-dev/regions/europe-west3/subnetworks/vpc4qa-2-europe-west3"
svmPassword: "passord"
tenantId: "workspaceXXXvv"
tierLevel: "standard"
volume: {
  exportPolicyInfo: {
    policyType: "custom",
    ips: ["172.22.13.0/24"],
    nfsVersion: ["nfs3", "nfs4"]
  }
}
vpcId: "vpc4qa-2"
vsaMetadata: {
  ontapVersion: "ONTAP-9.10.1RC1.T1.gcp",
  licenseType: "gcp-cot-premium-byol"
}
instanceType: "n2-standard-4"
licenseType: "gcp-cot-premium-byol"
ontapVersion: "ONTAP-9.10.1RC1.T1.gcp"
writingSpeedState: "NORMAL"
}
Output

The JSON output example includes an example of the VsaWorkingEnvironmentRresponse response.

JSON output example

{
 "publicId": "vsaworkingenvironment-9nhkrtu0",
 "name": "yuvalbyol3101",
 "tenantId": "tenantIDshownhere",
 "svmName": "svm_yuvalbyol3101",
 "creatorUserEmail": "user_email",
 "status": null,
 "providerProperties": null,
 "reservedSize": null,
 "clusterProperties": null,
 "ontapClusterProperties": null,
 "cloudProviderName": "GCP",
 "snapshotPolicies": null,
 "actionsRequired": null,
 "activeActions": null,
 "replicationProperties": null,
 "schedules": null,
 "svms": null,
 "workingEnvironmentType": "VSA",
 "supportRegistrationProperties": null, "supportRegistrationInformation": null,
 "capacityFeatures": null,
 "encryptionProperties": null,
 "supportedFeatures": null,
 "isHA": false,
 "haProperties": null,
 "fpolicyProperties": null,
 "saasProperties": null,
 "cbsProperties": null,
 "complianceProperties": null,
 "monitoringProperties": null,
 "licensesInformation": null
}

Create working environment for high availability pair

You can use this workflow to create an HA working environment with BYOL licensing.

1. Select the region

Perform the workflow Get regions and do the following:

  • Choose the name value of the required region for the region parameter in step 8.

  • Choose one of the VPCs. Choose name for vpcId parameter and subnets: path for subnetId and subnetPath parameters in step 8.

2. Select the workspace

Perform the workflow Get tenants and choose the workspacePublicId value for the tenantId parameter in step 8.

3. Select the project

Perform the workflow Get projects and choose the projectId value of the required project for project parameter in step 8.

4. Select the permutations

Perform the workflow Get permutations and choose the ontapVersion, license: type, and instanceType values of the required vsaMetadata parameter in step 8.

5. Select the packages configuration

Perform the workflow Get packages and search the licenseType from permutations:

  • Choose the name for packageName parameter.

  • Choose the diskSize for gcpVolumeSize.

  • Choose the diskType and writingSpeedState for the gcpVolumeType and writingSpeedState parameters.

6. Select the service account

Perform the workflow Get service accounts workflow and choose the email value of the required service accounts for the gcpServiceAccount parameter in step 8.

7. Obtain an NSS key

An NSS key is required when using BYOL subscription. If needed, you can create a key or select an existing key, and include the NSS key in the nssAccount parameter in step 8.

  • To create a new NSS key using the Cloud Manager web user interface, perform the task Generate NSS user ID and choose the id.

  • To select an existing NSS key, perform the Get NSS keys workflow and choose the id value of the required NSS user.

8. Create the working environment

HTTP method Path

POST

/occm/api/gcp/ha/working-environments

curl example
curl --location --request POST 'https://cloudmanager.cloud.netapp.com/occm/api/gcp/ha/working-environments' --header 'x-agent-id: <AGENT_ID>' //<1> --header 'Authorization: Bearer <ACCESS_TOKEN>' //<2> ---header 'Content-Type: application/json' --d @JSONinput

(1) Replace <AGENT_ID> with your agent ID.
(2) Replace <ACCESS_TOKEN> with your obtained bearer access token.

Input

The JSON input example includes the minimum list of parameters. This request uses BYOL licensing as indicated in the licenseType parameter. The serialNumber is required.

JSON input example
{
  "name": "lironweha",
  "tenantId": "workspace-CdkdlaGl",
  "region": "us-east1-b",
  "packageName": "gcp_ha_custom",
  "dataEncryptionType": "GCP",
  "capacityTier": "cloudStorage",
  "tierLevel": "standard",
  "gcpServiceAccount": xxxxx@occm-dev.iam.gserviceaccount.com,
  "vsaMetadata": {
    "ontapVersion": "ONTAP-9.11.0X1.T1.gcpha",
    "licenseType": "gcp-ha-cot-premium-byol",
    "instanceType": "n2-standard-4"
  },
  "nssAccount": "6f0577ba-edc4-47f8-8732-xxxxxa41ae5",
  "subnetPath": "projects/occm-dev/regions/us-east1/subnetworks/default",
  "subnetId": "projects/occm-dev/regions/us-east1/subnetworks/default",
  "svmPassword": "password",
  "vpcId": "default",
  "gcpVolumeSize": {
    "size": 1,
    "unit": "TB",
    "_identifier": "1 TB"
  },
  "gcpVolumeType": "pd-ssd",
  "gcpLabels": [],
  "project": "occm-dev",
  "backupVolumesToCbs": false,
  "enableCompliance": false,
  "haParams": {
    "node1Zone": "us-east1-b",
    "node2Zone": "us-east1-c",
    "mediatorZone": "us-east1-d",
    "vpc0NodeAndDataConnectivity": "projects/occm-dev/global/networks/default",
    "vpc1ClusterConnectivity": "projects/occm-dev/global/networks/vpc4qa-2",
    "vpc2HAConnectivity": "projects/occm-dev/global/networks/vpc4qa-3",
    "vpc3DataReplication": "projects/occm-dev/global/networks/vpc4qa-4",
    "subnet0NodeAndDataConnectivity": "projects/occm-dev/regions/us-east1/subnetworks/default",
    "subnet1ClusterConnectivity": "projects/occm-dev/regions/us-east1/subnetworks/vpc4qa-2-us-east1",
    "subnet2HAConnectivity": "projects/occm-dev/regions/us-east1/subnetworks/vpc4qa-3-us-east1",
    "subnet3DataReplication": "projects/occm-dev/regions/us-east1/subnetworks/vpc4qa-4-us-east1",
    "platformSerialNumberNode1": "xxx20140000000000510",
    "platformSerialNumberNode2": "xxx20140000000000510"
  }
}
Output

The JSON output example includes an example of the VsaWorkingEnvironmentResponse response.

JSON output example
{
  "publicId": "vsaworkingenvironment-xxx9",
  "name": "lironweha",
  "tenantId": "Tenant-mPqezSkl",
  "svmName": "svm_lironweha",
  "creatorUserEmail": "user-email",
  "status": null,
  "providerProperties": null,
  "reservedSize": null,
  "clusterProperties": null,
  "ontapClusterProperties": null,
  "cloudProviderName": "GCP",
  "snapshotPolicies": null,
  "actionsRequired": null,
  "activeActions": null,
  "replicationProperties": null,
  "schedules": null,
  "svms": null,
  "workingEnvironmentType": "VSA",
  "supportRegistrationProperties": null,
  "supportRegistrationInformation": null,
  "capacityFeatures": null,
  "encryptionProperties": null,
  "supportedFeatures": null,
  "isHA": true,
  "haProperties": null,
  "fpolicyProperties": null,
  "saasProperties": null,
  "cbsProperties": null,
  "complianceProperties": null,
  "monitoringProperties": null,
  "licensesInformation": null
}