Skip to content

qumulo_portal_hub_root (Resource)

Authorizes a hub root directory for spoke access on a Qumulo cluster.

In most cases, qumulo_portal and qumulo_portal_root are simpler and recommended. Use this resource only when the hub and spoke clusters cannot both be reached from the network where Terraform runs.

After a spoke root is proposed via qumulo_portal_spoke_root, the corresponding hub root directory must be authorized before data access can begin. This resource calls the v2 Portal API to authorize (or revoke on destroy) a specific root directory.

Example Usage

Installation

terraform {
  required_providers {
    qumulo = {
      source  = "qumulo-terraform-registry.s3.us-east-1.amazonaws.com/qumulo/qumulo"
      version = "~> 1.0"
    }
  }
}
resource "qumulo_portal_hub_root" "data" {
  connection_profile = "hub"
  hub_id  = qumulo_portal_hub.main.id
  root_id = qumulo_portal_spoke_root.data.remote_root
}

Complete 4-Step Portal Setup

# Step 1: Create spoke portal
resource "qumulo_portal_spoke" "main" {
  connection_profile = "spoke"
  type        = "PORTAL_READ_WRITE"
  hub_address = "10.0.0.1"
}

# Step 2: Accept on hub
resource "qumulo_portal_hub" "main" {
  connection_profile = "hub"
  spoke_cluster_uuid = qumulo_portal_spoke.main.spoke_cluster_uuid
  spoke_address      = "10.0.0.2"
}

# Step 3: Propose spoke root
resource "qumulo_portal_spoke_root" "data" {
  connection_profile = "spoke"
  spoke_id        = qumulo_portal_spoke.main.id
  spoke_root_path = "/data"
  hub_root_path   = "/shared"
  depends_on      = [qumulo_portal_hub.main]
}

# Step 4: Authorize hub root
resource "qumulo_portal_hub_root" "data" {
  connection_profile = "hub"
  hub_id  = qumulo_portal_hub.main.id
  root_id = qumulo_portal_spoke_root.data.remote_root
}

Schema

Required

  • connection_profile (String) Name of a connection profile defined in the provider block.

Connection profiles centralize cluster credentials at the provider level. Define profiles in the provider block:

provider "qumulo" {
  connection_profiles = [
    {
      name                 = "prod"
      endpoint             = "https://cluster.example.com:8000"
      username             = "admin"
      password             = var.cluster_password
      insecure_skip_verify = true  # For self-signed certificates
    }
  ]
}
- hub_id (Number) The ID of the hub portal. - root_id (String) The hub root directory file ID to authorize. This is typically the remote_root output from a qumulo_portal_spoke_root resource.

Read-Only

  • id (String) Composite ID: hub_id/root_id.