Your SKB Visualization application is now fully configured for deployment to Azure Container Apps using OIDC authentication and your existing Azure Container Registry. Here's what has been set up:
- File:
.github/workflows/cd-azure.yml - Triggers: Automatic deployment on push to
mainbranch - Features:
- OIDC authentication (no stored secrets needed)
- Docker image build and push to your ACR
- Azure Container Apps deployment
- Health checks and deployment verification
- Deployment summary with application URL
- File:
scripts/azure-setup.ps1 - Purpose: Automates the complete Azure environment setup
- Features:
- Creates OIDC App Registration with federated credentials
- Sets up Container Apps environment
- Configures all necessary Azure role assignments
- Creates initial Container App with placeholder image
- Sets up Log Analytics workspace for monitoring
- Configures all GitHub repository secrets
- Quick Start Guide:
docs/quick-start-azure-deployment.md - Detailed Setup Guide:
docs/azure-deployment-setup.md - This Summary:
docs/deployment-summary.md
- Endpoint:
/health - Purpose: Container health monitoring and deployment verification
- Response: JSON with service status and version information
Open PowerShell and execute:
# Navigate to your repository
cd C:\Users\jbcup\OneDrive\Documents\Repo\Wireframe\Wireframe
# Run the setup script (replace with your actual values)
.\scripts\azure-setup.ps1 `
-SubscriptionId "your-subscription-one-id" `
-ResourceGroup "your-existing-resource-group" `
-AcrName "your-existing-acr-name" `
-GitHubRepo "your-username/Wireframe"# Check GitHub secrets
gh secret list
# Check Azure resources
az containerapp list --resource-group your-rg --output tableEither:
- Automatic: Push code to
mainbranch - Manual: Run
gh workflow run "Deploy to Azure Container Apps"
Before running the setup script, gather these details:
| Parameter | Description | Where to Find |
|---|---|---|
SubscriptionId |
Your Azure subscription ID | az account list --output table |
ResourceGroup |
Resource group containing your ACR | Azure Portal or az group list |
AcrName |
Your existing Azure Container Registry name | Azure Portal or az acr list |
GitHubRepo |
Your GitHub repository (format: username/repo) | GitHub repository URL |
- No long-lived secrets stored in GitHub
- Federated credentials for secure Azure access
- Least privilege role assignments
- Automatic token rotation by Azure AD
AcrPush- Push Docker images to your ACRContainer Apps Contributor- Deploy and manage Container Apps
GitHub Repository
↓ (Push to main)
GitHub Actions Workflow
↓ (OIDC Auth)
Azure AD App Registration
↓ (Authorized access)
Azure Container Registry ← Docker Image Build & Push
↓ (Image deployment)
Azure Container Apps ← Your Application
# View real-time logs
az containerapp logs show --name skb-visualization --resource-group your-rg --follow
# View logs in Azure Portal
# Navigate to: Container Apps → your-app → Monitoring → Log stream# Check workflow runs
gh run list --limit 10
# View specific run details
gh run view [run-id]The Container App is configured with these environment variables:
SKB_ENVIRONMENT=productionSKB_DEBUG=falseSKB_ENABLE_CACHING=trueSKB_CACHE_BACKEND=memorySKB_LOG_LEVEL=INFOSKB_HOST=0.0.0.0SKB_PORT=5000
- Min Replicas: 1
- Max Replicas: 10
- CPU: 1.0 cores
- Memory: 2.0 GB
- Auto-scaling: Based on HTTP traffic
After deployment, your application will be available at:
- URL Format:
https://[app-name].[random-id].[region].azurecontainerapps.io - Health Check:
https://[your-app-url]/health - Main Application:
https://[your-app-url]/
Edit .github/workflows/cd-azure.yml to:
- Change environment variables
- Adjust resource allocation
- Modify scaling parameters
- Add additional deployment steps
Use Azure CLI to update the Container App:
az containerapp update \
--name your-app-name \
--resource-group your-rg \
--cpu 2.0 \
--memory 4.0Gi- GitHub Actions Logs: Check workflow execution details
- Azure Portal: Monitor Container App status and logs
- Azure CLI: Use diagnostic commands for troubleshooting
- Documentation: Refer to detailed guides in
docs/folder
# Restart Container App
az containerapp restart --name your-app --resource-group your-rg
# Scale Container App
az containerapp update --name your-app --resource-group your-rg --min-replicas 2
# View Container App details
az containerapp show --name your-app --resource-group your-rg
# Check deployment status
gh run list --repo your-username/WireframeYour deployment is successful when:
- ✅ GitHub Actions workflow completes without errors
- ✅ Container App is running and healthy
- ✅ Health endpoint returns
200 OK - ✅ Application is accessible via HTTPS URL
- ✅ Application functionality works as expected
Ready to deploy? Start with the Quick Start guide: docs/quick-start-azure-deployment.md