Import IDs and attributes¶
This page lists the import ID of every importable resource, and the attributes each cluster resource needs in HCL after an import. The steps are in Import an existing cluster.
Import ID formats¶
Cloud filesystem IDs are slash-separated. Bare metal and cluster resource IDs are comma-separated and start with a connection profile name from the provider block.
| Resource | Import ID | Example |
|---|---|---|
qumulo_filesystem_aws |
region/deployment_unique_name |
us-east-1/qumulo-a1b2c3 |
qumulo_filesystem_azure |
subscription_id/resource_group_name/deployment_unique_name |
00000000-0000-0000-0000-000000000000/rg-qumulo/qumulo-a1b2c3 |
qumulo_filesystem_gcp |
project_id/region/deployment_unique_name |
my-project/us-central1/qumulo-a1b2c3 |
qumulo_filesystem_baremetal |
profile |
baremetal |
qumulo_filesystem_edge_baremetal |
profile |
edge |
qumulo_ad |
profile |
prod |
qumulo_audit_cloudwatch |
profile |
prod |
qumulo_audit_syslog |
profile |
prod |
qumulo_cluster_settings |
profile |
prod |
qumulo_cluster_ssl |
profile |
prod |
qumulo_directory_quota |
profile,directory_path |
prod,/data/users |
qumulo_file_system_settings |
profile |
prod |
qumulo_ftp_settings |
profile |
prod |
qumulo_ldap_settings |
profile |
prod |
qumulo_local_group |
profile,group_name |
prod,developers |
qumulo_local_group_member |
profile,group_id,user_id |
prod,501,1001 |
qumulo_local_user |
profile,username |
prod,alice |
qumulo_nfs_export |
profile,export_path |
prod,/data |
qumulo_nfs_settings |
profile |
prod |
qumulo_portal |
spoke_profile,hub_profile,spoke_id,hub_id |
spoke,hub,123,456 |
qumulo_portal_hub |
profile,portal_id |
hub,456 |
qumulo_portal_hub_root |
profile,hub_id,root_id |
hub,21,12345 |
qumulo_portal_root |
portal_id,local_root,spoke_root_path,hub_root_path |
qpv1.<payload>,891872330,/data,/shared |
qumulo_portal_spoke |
profile,spoke_id |
prod,123 |
qumulo_portal_spoke_root |
profile,spoke_id,local_root,spoke_root_path,hub_root_path |
prod,1,891872330,/cache/data,/data |
qumulo_replication_object_relationship |
profile,id |
prod,obj-789 |
qumulo_replication_source_relationship |
profile,id |
prod,rel-123 |
qumulo_replication_target_relationship |
profile,id |
dr,rel-123 |
qumulo_role |
profile,role_name |
prod,BackupOperators |
qumulo_role_member |
profile,role_name,domain,auth_id |
prod,BackupOperators,LOCAL,1001 |
qumulo_s3_access_key |
profile,access_key_id |
prod,AKIAIOSFODNN7EXAMPLE |
qumulo_s3_bucket |
profile,bucket_name |
prod,my-bucket |
qumulo_s3_bucket_policy |
profile,bucket_name |
prod,my-bucket |
qumulo_s3_settings |
profile |
prod |
qumulo_saml_settings |
profile |
prod |
qumulo_smb_settings |
profile |
prod |
qumulo_smb_share |
profile,share_name |
prod,my-share |
qumulo_snapshot_policy |
profile,policy_id |
prod,123 |
qumulo_time_configuration |
profile |
prod |
qumulo_web_ui_settings |
profile |
prod |
The portal_id in a qumulo_portal_root ID is the opaque qpv1.-prefixed id of a qumulo_portal resource.
Resources that cannot be imported¶
qumulo_threat_detection_aws, qumulo_threat_detection_azure, qumulo_threat_detection_gcp, qumulo_neuralsearch_aws, qumulo_neuralsearch_azure, and qumulo_neuralsearch_gcp do not support terraform import. Terraform manages one of these appliances only when Terraform created it.
AWS attributes required in HCL¶
qumulo_filesystem_aws rejects a plan without these attributes. Recovered values can be copied from terraform state show.
| Attribute | Recovered on import | Notes |
|---|---|---|
cluster_name and deployment_name, or name |
No | 2 to 15 characters each. deployment_name is the bare name, without the suffix in deployment_unique_name. |
region |
Yes | From the import ID |
node_count |
Yes | |
instance_type |
Yes | |
subnet_ids |
Yes | |
cluster_product_type |
No | HOT or COLD. Immutable. |
storage_class |
No | Recorded permanently by the first apply. Omitted, it records INTELLIGENT_TIERING for HOT and GLACIER_IR for COLD. The class of any object in a -qps- bucket is the value to declare. |
admin_password |
No | Write-only |
allow_cidrs |
Yes | From the cluster security group's ingress rule. Omit it when cluster_security_group_id and provisioner_security_group_id are set. |
AWS customer-declared attributes¶
| Attribute | Notes |
|---|---|
soft_capacity_limit_tb |
Not recovered. A mismatch causes drift on every apply. |
networking_mode |
host_managed or qumulo_managed. Immutable. Clusters built by aws-terraform-cnq use qumulo_managed. |
floating_ip_count |
The cluster's IPv4 floating IP count, 0 if none. Must be 0 in the qumulo_managed networking mode. The live addresses appear in the read-only floating_ips attribute. |
floating_ip_count_ipv6 |
The size of an IPv6 floating pool, with floating_ip_count = 0. The two counts cannot both be non-zero. A plan that moves the pool to the other address family is refused. |
provisioner_ami_id |
Set only for a non-default provisioner AMI. |
cluster_iam_role_arn |
Recovered from the node instances when they run on a role other than the provider-managed one. After the import, copy the recovered value from terraform state show into the configuration. Omitted, the recovered value stays, but a later cluster replacement rebuilds on the provider-managed role. Any other value is rejected at plan time. Cannot change after adoption. |
provisioner_iam_role_arn |
Not recovered. Declare the bring-your-own provisioner role so the next operation launches the provisioner on it. Omitted, the provider creates and uses its own provisioner role. Cannot change once set. |
ec2_key_pair, kms_key_id, permissions_boundary_arn |
Set only when the deployment uses them. |
cluster_uuid |
Optional. The UUID from qq node_state_get or GET /v1/node/state, for when automatic recovery fails. Rejected on a plan that creates or replaces the cluster. Cannot change after adoption. A different UUID than the one in state replaces a qumulo_threat_detection_aws or qumulo_neuralsearch_aws appliance that references the cluster, once. |
AWS import permissions¶
Beyond the AWS IAM permissions every cluster needs, the import and adoption flow uses these actions. Without them, the first refresh after import warns that it could not verify deletion protection, and the first apply fails.
| Action | Used for |
|---|---|
tag:TagResources |
Tagging buckets that predate the Qumulo-Cluster tag |
s3:ListAllMyBuckets |
Listing buckets during adoption |
ssm:GetParametersByPath |
Removing the SSM parameters aws-terraform-cnq created, on destroy |
secretsmanager:DeleteSecret |
Removing the cluster secret aws-terraform-cnq created, on destroy |
iam:GetInstanceProfile on the node instance profile |
Recovering cluster_iam_role_arn on every refresh. Without it, a refresh of a cluster whose state does not yet record the node role fails and names this action |
Azure attributes required in HCL¶
qumulo_filesystem_azure rejects a plan without these attributes. Recovered values can be copied from terraform state show.
| Attribute | Recovered on import | Notes |
|---|---|---|
cluster_name and deployment_name, or name |
No | 2 to 15 characters each. deployment_name is the bare name, without the suffix. |
resource_group_name |
Yes | From the import ID |
node_count |
Yes | |
vm_type |
Yes | |
location |
Yes | |
subnet_id |
Yes | Full subnet resource ID |
admin_password |
No | Write-only |
allow_cidrs |
Yes | From the cluster NSG's inbound rule |
storage_replication_type is optional and recovered from the SKU of the cluster's storage accounts. On a legacy cluster it is corrected on the first refresh after key_vault_id is applied.
Azure customer-declared attributes¶
| Attribute | Notes |
|---|---|
cluster_version |
Set only if the original configuration pinned it. |
networking_mode |
host_managed or qumulo_managed. Immutable. Clusters built by azure-terraform-cnq use qumulo_managed. |
floating_ip_count |
The cluster's floating IP count, 0 if none. Resolves to 0 when unset, and applying a wrong 0 removes the cluster's floating IPs. The live addresses appear in the read-only floating_ips attribute. |
service_account_email |
Recovered from the node instances. Omit it, or set it to exactly that email. Any other value is rejected at plan time. Cannot change after adoption. |
storage_class |
Omitted, the first apply records INTELLIGENT_TIERING for HOT on Core 7.8.4 or later, STANDARD for HOT on older Core, and STANDARD for COLD. A storage account access tier of Smart means INTELLIGENT_TIERING, and Hot means STANDARD. Immutable once recorded. |
soft_capacity_limit_tb |
Not recovered. A mismatch causes drift on every apply. |
key_vault_id |
Required for a cluster this provider did not create. The provider reads the cluster's storage accounts from the vault's managed storage account registrations. |
availability_zones |
Recovered from the node VMs. Any value other than the zones the nodes use replaces every node VM in service on the first apply. |
cluster_node_identity_id |
Recovered from the node VMs. After the import, copy the recovered value from terraform state show into the configuration. Omitted, the recovered value stays, but a later cluster replacement rebuilds on a system-assigned identity. Any other value is rejected at plan time. Cannot change after adoption. Leave it unset for nodes on system-assigned identities. |
provisioner_identity_id |
Not recovered. For a legacy cluster that set provisioner_node_identity, declare that identity's resource ID so the next operation builds the provisioner VM on it. Omitted, the provisioner runs on a system-assigned identity and the provider must be able to create its role assignments. Cannot change once set. |
custom_image_id, marketplace_image |
Not recovered. Setting either replaces every node VM in service on the first apply. |
cluster_uuid |
Optional. The UUID from qq node_state_get or GET /v1/node/state, for when automatic recovery fails. Rejected on a plan that creates or replaces the cluster. Cannot change after adoption. A different UUID than the one in state replaces a qumulo_threat_detection_azure or qumulo_neuralsearch_azure appliance that references the cluster, once. |
GCP attributes required in HCL¶
qumulo_filesystem_gcp rejects a plan without these attributes. Recovered values can be copied from terraform state show.
| Attribute | Recovered on import | Notes |
|---|---|---|
cluster_name and deployment_name, or name |
No | 2 to 15 characters each. deployment_name is the bare name, without the suffix. |
node_count |
Yes | |
instance_type |
Yes | |
subnetwork |
Yes | Short name |
admin_password |
No | Write-only |
allow_cidrs |
Yes | From the external firewall rule's source ranges |
project_id and region come from the import ID, and fall back to the provider's gcp block in HCL.
GCP customer-declared attributes¶
| Attribute | Notes |
|---|---|
cluster_version |
Set only if the original configuration pinned it. |
soft_capacity_limit_tb |
Not recovered. Defaults to 500. A mismatch causes drift on every apply. |
cluster_product_type |
HOT, or unset, which means HOT. COLD cannot be declared on an imported cluster. Declaring HOT plans a one-time in-place update with no cloud changes. |
networking_mode |
host_managed or qumulo_managed. Immutable. Clusters built by qumulo-terraform-gcp use host_managed. |
floating_ip_count |
The cluster's floating IP count, 0 if none. Resolves to 0 when unset, and applying a wrong 0 removes the cluster's floating IPs. The live addresses appear in the read-only floating_ips attribute. |
node_image, provisioner_image |
Set only if the original configuration pinned an image. Import recovers the image family pair, so a pinned image shows a diff until reconciled. |
cluster_uuid |
Optional. The UUID from qq node_state_get or GET /v1/node/state, for when the nodes lack the recovery label. Rejected on a plan that creates or replaces the cluster. Cannot change after adoption. A different UUID than the one in state replaces a qumulo_threat_detection_gcp or qumulo_neuralsearch_gcp appliance that references the cluster, once. |
Bare metal attributes not recovered¶
| Resource | Not recovered on import |
|---|---|
qumulo_filesystem_baremetal |
cluster_name, admin_password, cluster_version, blocks_per_stripe, max_drive_failures, max_node_failures |
qumulo_filesystem_edge_baremetal |
cluster_name, admin_password, cluster_version |
Each listed attribute shows a diff on every plan unless it is in lifecycle { ignore_changes }.
Cluster resource attributes to declare¶
These singletons need more than connection_profile in HCL before the first plan.
| Resource | Also declare |
|---|---|
qumulo_cluster_settings |
cluster_name, the live cluster name. A mismatch plans a rename. |
qumulo_ldap_settings |
use_ldap, bind_uri, base_distinguished_names, ldap_schema, and the write-only bind password |
qumulo_audit_syslog |
enabled, plus server_address when enabled |
qumulo_audit_cloudwatch |
enabled, plus log_group_name and region when enabled |
qumulo_ad |
domain, ad_username, ad_password |
These values are never recovered on import.
| Resource | Not recovered | Effect |
|---|---|---|
qumulo_ad |
ad_username, ad_password |
Configured values show as a change on the first plan. Import fails if the cluster is not joined to a domain. |
qumulo_cluster_ssl |
Certificate and private key | Supply your own PEM material to manage them. |
qumulo_local_user |
password |
Setting it after import pushes a new password. |
qumulo_role |
None | An omitted privileges defaults to an empty list and plans to remove every live privilege. |
qumulo_s3_access_key |
secret_access_key |
Set to an empty string with a warning. |
qumulo_snapshot_policy |
source_path |
Setting it on an imported policy forces replacement. Use source_file_id. |
qumulo_replication_object_relationship |
secret_access_key, local_directory_path |
Set to empty strings. A configured local_directory_path forces replacement unless it is in ignore_changes. |