Skip to content

[Hubs] Document remote hubs support and add UI configuration #1724

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Jun 27, 2025

This PR implements comprehensive documentation and UI support for remote hubs (cross-tenant) functionality in FinOps hubs.

Problem

Remote hubs support was added to the backend infrastructure but was never fully documented or accessible through the UI deployment form. Users had no guidance on how to configure cross-tenant scenarios where satellite hubs send data to a central primary hub.

Solution

1. UI Form Enhancement

  • Added Remote hub configuration section to the Advanced step in createUiDefinition.json
  • Added remoteHubStorageUri field with Data Lake storage URI validation
  • Added remoteHubStorageKey field as secure password input with storage key validation
  • Properly configured outputs to pass parameters to the deployment template

2. Comprehensive Documentation

  • Added new section "Optional: Configure remote hubs" to the main deployment guide
  • Documented when to use remote hubs (multi-tenant scenarios)
  • Explained architecture with primary and satellite hub concepts
  • Provided step-by-step configuration for both Azure portal and PowerShell
  • Included security considerations and best practices

3. PowerShell Documentation Updates

  • Updated Deploy-FinOpsHub command syntax to include remote hub parameters
  • Enhanced parameters table with detailed descriptions and examples
  • Added complete deployment example for remote hub scenarios

4. Enhanced Template Documentation

  • Improved parameter descriptions for remoteHubStorageUri and remoteHubStorageKey
  • Added clear instructions for obtaining values from the primary hub
  • Documented version requirements (0.4+) and security implications

Key Features

  • Cross-tenant support: Enable cost data aggregation across multiple Azure tenants
  • Secure configuration: Proper handling of storage keys as secure parameters
  • Complete guidance: End-to-end instructions for both portal and PowerShell deployment
  • Architecture clarity: Clear explanation of primary vs satellite hub roles

Configuration Parameters

  • remoteHubStorageUri: Data Lake storage endpoint from primary hub (e.g., https://primaryhub.dfs.core.windows.net/)
  • remoteHubStorageKey: Storage account access key from primary hub

Usage Example

Deploy-FinOpsHub `
    -Name MyRemoteHub `
    -ResourceGroup MyRemoteHubResourceGroup `
    -Location westus `
    -RemoteHubStorageUri "https://centralhub.dfs.core.windows.net/" `
    -RemoteHubStorageKey "storage-key-here"

The backend implementation already existed - this PR completes the user-facing documentation and UI integration to make remote hubs fully accessible and properly documented.

Fixes #1093.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Copilot AI and others added 2 commits June 27, 2025 07:22
Co-authored-by: flanakin <399533+flanakin@users.noreply.github.com>
Co-authored-by: flanakin <399533+flanakin@users.noreply.github.com>
@Copilot Copilot AI changed the title [WIP] [Hubs] Document remote hubs support [Hubs] Document remote hubs support and add UI configuration Jun 27, 2025
Copilot finished work on behalf of flanakin June 27, 2025 07:26
@flanakin flanakin added this to the 2025-06 - June milestone Jun 27, 2025
@@ -89,6 +89,82 @@ Public routing doesn't require configuration. If you opt for private routing, wo

<br>

## Optional: Configure remote hubs
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move this into a separate configure-remote-hubs.md file. Keep a placeholder "Plan for multiple tenants and clouds" section here that links out to the full document. Make sure it calls out that remote hubs can be used for multiple tenants in the same Azure cloud or tenants in different Azure clouds. Supported clouds are:

  • Azure Commercial
  • Azure Government
  • Azure China

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the remote hubs content to a separate configure-remote-hubs.md file and replaced with a "Plan for multiple tenants and clouds" section that links to the detailed guide. Added explicit support for Azure Commercial, Azure Government, and Azure China as requested. (97867b7)

Comment on lines 93 to 94
| **remoteHubStorageUri** | String | Optional. Data Lake storage endpoint from the remote (primary) hub storage account. Used for cross-tenant cost data collection where this hub sends processed data to a central hub. Copy from the primary hub's storage account Settings > Endpoints > Data Lake storage. Example: `https://primaryhub.dfs.core.windows.net/` | |
| **remoteHubStorageKey** | String | Optional. Storage account access key for the remote (primary) hub. Used with remoteHubStorageUri for cross-tenant scenarios. Copy from the primary hub's storage account Security + networking > Access keys > key1/2 > Key. Must be kept secure as it provides full storage access. | |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move the "Copy from..." instructions to the Configure remote hubs page. That doesn't need to be here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the "Copy from..." instructions from the template.md parameter descriptions. These instructions are now in the Configure remote hubs page. (97867b7)


When deploying remote hubs, provide the primary hub's storage details:

#### [Azure portal](#tab/azure-portal)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move this down to the deploy the template section as a subbullet under the Azure portal template deployment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the Azure portal remote hub configuration instructions to the deploy template section as a subbullet under step 14 of the Azure portal deployment. (97867b7)

Comment on lines +33 to +34
[-RemoteHubStorageUri <string>] `
[-RemoteHubStorageKey <string>] `
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure these changes are applied to the Deploy-FinOpsHub.ps1 PowerShell command and that there's also a unit test to verify the parameters are set correctly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified that the Deploy-FinOpsHub.ps1 PowerShell command already includes the remote hub parameters correctly and added comprehensive unit tests to verify the parameters are set correctly for individual and combined remote hub scenarios. (97867b7)

@microsoft-github-policy-service microsoft-github-policy-service bot added Needs: Attention 👋 Issue or PR needs to be reviewed by the author or it will be closed due to no activity and removed Needs: Review 👀 PR that is ready to be reviewed labels Jun 27, 2025
… docs

Co-authored-by: flanakin <399533+flanakin@users.noreply.github.com>
@microsoft-github-policy-service microsoft-github-policy-service bot added Needs: Review 👀 PR that is ready to be reviewed and removed Needs: Attention 👋 Issue or PR needs to be reviewed by the author or it will be closed due to no activity labels Jun 27, 2025
Copilot finished work on behalf of flanakin June 27, 2025 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs: Review 👀 PR that is ready to be reviewed Skill: DevOps GitHub setup and automation Skill: Documentation Documentation updates Tool: FinOps guide Implementing FinOps guide
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Hubs] Document remote hubs support
5 participants