Skip to content

Latest commit

 

History

History
198 lines (132 loc) · 9.08 KB

File metadata and controls

198 lines (132 loc) · 9.08 KB

Deployment Guide

Prerequisites

If you do not have an Azure Subscription, you can sign up for a free Azure account and create an Azure Subscription.

To deploy this solution successfully, your Azure account must have the following permissions on the targeted Azure Subscription:

For more details on Azure account setup, see the Azure account setup guide.

Additional Requirements

Region Availability

Check the Azure Products by Region page and select a region where the following services are available:

Important Note for PowerShell Users

If you encounter issues running PowerShell scripts due to execution policy, you can temporarily adjust it:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Deployment Options & Steps

Pick from the options below to see step-by-step instructions for GitHub Codespaces, VS Code Dev Containers, or local environments.

Open in GitHub Codespaces Open in Dev Containers
Deploy in GitHub Codespaces

GitHub Codespaces

You can run this template virtually by using GitHub Codespaces. The button will open a web-based VS Code instance in your browser:

  1. Open the template (this may take several minutes):

    Open in GitHub Codespaces

  2. Open a terminal window

  3. Continue with the deploying steps

Deploy in VS Code Dev Containers

VS Code Dev Containers

A related option is VS Code Dev Containers, which will open the project in your local VS Code using the Dev Containers extension:

  1. Start Docker Desktop (install it if not already installed: Docker Desktop)

  2. Open the project:

    Open in Dev Containers

  3. In the VS Code window that opens, once the project files show up (this may take several minutes), open a terminal window

  4. Continue with the deploying steps

Deploy in your local environment

Local Environment

If you're not using one of the above options, then you'll need to:

  1. Make sure the following tools are installed:

  2. Clone the repository:

    azd init -t Video-Agents-Foundry-Solution
  3. Open the project folder in your terminal or editor

  4. Continue with the deploying steps


Configurable Deployment Settings

When you start a deployment, most parameters will have default values. You can change the following settings:

Setting Description Default
Azure Region Select a region with GPU quota eastus2
Kubernetes Version AKS cluster Kubernetes version 1.32
System VM Size System node pool VM size Standard_D4a_v4
Workload VM Size Workload node pool VM size Standard_D32a_v4
DeepStream GPU VM Size DeepStream GPU node pool Standard_NC24ads_A100_v4
Inference GPU VM Size Inference GPU node pool Standard_NC24ads_A100_v4
Create Foundry Project Deploy AI Foundry project true
AI Model Name OpenAI model for agents gpt-5.2
AI Model Version Model version 2025-12-11

For a detailed description of customizable fields, view the deployment customization guide.

Deploying with AZD

Once you've opened the project in Codespaces, Dev Containers, or locally, deploy to Azure:

  1. (Optional) Customize your deployment settings. See the deployment customization guide for details.

  2. Run the deployment:

    azd up
  3. You will be prompted to:

    • Provide an azd environment name (e.g., "vi-agents-solution")
    • Select a subscription from your Azure account
    • Select a location with sufficient GPU quota
    • Choose VM sizes for each AKS node pool (interactive menu with live quota checking)

    Note: The preprovision hook validates prerequisites including Azure CLI authentication, required CLI tools, Azure resource provider registration, and GPU quota availability.

  4. The deployment process will:

    • Provision Azure resources via Bicep (AKS cluster, Video Indexer account, storage, managed identity, and optionally AI Foundry)
    • Connect AKS to Azure Arc
    • Install NVIDIA GPU Operator via Helm
    • Deploy Video Indexer Arc Extension
    • Run a health check dashboard showing pod status across namespaces

    This process typically takes 15-25 minutes. After azd up completes, allow an additional 20-35 minutes for GPU drivers and VI extension pods to fully initialize (45-60 minutes total).

  5. After deployment completes, the health dashboard will show the status of all components:

    • gpu-operator namespace (NVIDIA GPU Operator)
    • video-indexer namespace (VI Arc Extension)
    • app-routing-system namespace
    • azure-arc namespace
    • cert-manager namespace
  6. View information about your deployment:

    azd show

Resource Cleanup

When you no longer need the deployed resources, clean up by running:

azd down

This will delete the resource group and all associated Azure resources.

GitHub Actions CI/CD

This repo includes a GitHub Actions workflow (.github/workflows/azure-dev.yml) for automated deployments. To set it up:

  1. Configure OpenID Connect (OIDC) federated credentials for your Azure service principal
  2. Set the required GitHub repository variables (see the workflow file for the full list)
  3. Set the AZD_INITIAL_ENVIRONMENT_CONFIG secret

The workflow triggers on push to main or manual dispatch, and runs azd provision followed by azd deploy.

Next Steps