Skip to content

qumulo_portal_hub (Resource)

Accepts a pending portal hub relationship on a Qumulo cluster using the v2 Portal API.

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.

This resource finds a pending hub portal by spoke cluster UUID and accepts it, establishing the relationship between spoke and hub clusters. To authorize root directories for data access, use the qumulo_portal_hub_root resource.

Example Usage

Installation

terraform {
  required_providers {
    qumulo = {
      source  = "qumulo-terraform-registry.s3.us-east-1.amazonaws.com/qumulo/qumulo"
      version = "~> 1.0"
    }
  }
}
# 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: Add 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
    }
  ]
}
- spoke_address (String) The hostname or IP address where the hub can reach the spoke cluster. - spoke_cluster_uuid (String) The UUID of the spoke cluster. This is obtained from the qumulo_portal_spoke resource's spoke_cluster_uuid attribute.

Optional

  • spoke_port (Number) The port for portal communication on the spoke cluster (default: 3713).

Read-Only

  • id (Number) The ID of the hub portal.
  • pending_roots (List of String) Hub root directories that are pending authorization.
  • spoke_cluster_name (String) The name of the spoke cluster.
  • state (String) The state of the portal relationship: PENDING (waiting for acceptance), ACCEPTED (relationship established), DELETING (being removed).
  • status (String) The status of the portal: INACTIVE, ACTIVE, or DEGRADED.
  • type (String) The type of the portal: PORTAL_READ_ONLY or PORTAL_READ_WRITE.