BA

backstage-deployment

Handles deployment and configuration of Backstage portals on Kubernetes or Docker.

Install

mkdir -p .claude/skills/backstage-deployment && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18446" && unzip -o skill.zip -d .claude/skills/backstage-deployment && rm skill.zip

Installs to .claude/skills/backstage-deployment

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Deploys the upstream open-source Backstage developer portal on Azure AKS or locally via Docker Desktop. USE FOR: deploy Backstage, Backstage on AKS, Backstage local Docker, Backstage Helm chart, Backstage PostgreSQL, Backstage ACR image, Backstage GitHub OAuth, Microsoft Entra ID auth, GitHub Enterprise Managed Users. DO NOT USE FOR: full platform orchestration (use deploy-orchestration), Azure infrastructure provisioning (use @azure-portal-deploy).
453 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • Deploy Backstage on Azure AKS
  • Deploy Backstage locally via Docker Desktop
  • Configure GitHub OAuth for Backstage
  • Configure Microsoft Entra ID authentication
  • Load H1 Foundation and H2 Enhancement Golden Paths
  • Provision Kubernetes components like NGINX Ingress and cert-manager

How it works

The skill deploys Backstage using Helm charts and Terraform, configuring authentication providers and pre-loading catalog paths for either Azure AKS or local Docker environments.

Inputs & outputs

You give it
Configuration for Backstage deployment, including platform and authentication details
You get back
A deployed Backstage instance on Azure AKS or Docker Desktop with configured authentication and catalog

When to use backstage-deployment

  • Deploy Backstage to AKS cluster
  • Setup local Backstage dev environment
  • Configure GitHub OAuth for Backstage
  • Load catalog components into Backstage

About this skill

Backstage Deployment Skill

Deploys the upstream open-source Backstage developer portal on Azure AKS or locally via Docker Desktop.

Official Docs via MCP: Use backstagedocs_* tools from the mcp-ecosystem for live official documentation:

  • backstagedocs_get_page slug=deployment/docker — Docker deployment guide
  • backstagedocs_get_page slug=deployment/k8s — Kubernetes deployment guide
  • backstagedocs_get_page slug=auth/github/provider — GitHub auth provider docs
  • backstagedocs_get_page slug=auth/microsoft/provider — Microsoft auth provider docs
  • backstagedocs_search query="app-config" — search configuration docs

Scope

AspectDetail
PlatformAzure AKS (production) or Docker Desktop + kind (local)
RegionEast US 2 (eastus2) — PostgreSQL in Central US (centralus)
ImageCustom-built from backstage/ directory, stored in ACR
AuthGitHub OAuth, Microsoft Entra ID, and Guest (dev only)
CatalogH1 Foundation + H2 Enhancement Golden Paths pre-loaded
Used by@backstage-expert, @deploy

Azure MVP Deployment (rg-<platform>-<env>)

Resources

ResourceNameTypeLocation
AKSaks-<platform>-<env>2x Standard_B2seastus2
ACR<acr-name>Basiceastus2
Key Vaultkv-<platform>-<env>RBAC-enabledeastus2
PostgreSQLpg-<platform>-<env>Flexible B1ms v16centralus
Redisredis-<platform>-<env>Azure Managed B0eastus2
AI Servicesai-<platform>-<env>S0 (GPT-4o + Embeddings)eastus2
Log Analyticslaw-<platform>-<env>PerGB2018eastus2
App Insightsappi-<platform>-<env>Application Insightseastus2
Managed Prometheusprometheus-<platform>-<env>Azure Monitor Workspaceeastus2
Managed Grafanagrafana-<platform>-<env>Standard tiereastus2
MonitorContainer Insights + MetricsEnabled on AKSeastus2
DefenderContainers + KV + OSS DBStandard tiersubscription
Action Groupag-<platform>-sreWebhook → GitHubeastus2
Metric AlertsCPU > 85%, Memory > 85%Severity 2global

Service Principal

NameRoles
sp-<platform>-<env>Contributor (RG), KV Secrets User, AI OpenAI User

Kubernetes Components

HorizonNamespaceComponent
H1ingress-nginxNGINX Ingress + Azure LB
H1cert-managercert-manager v1.14
H1gatekeeper-systemOPA Gatekeeper v3.14
H1external-secretsESO v2.0 → Key Vault
H2argocdArgoCD v2.10
H2monitoringPrometheus + Grafana + Alertmanager
H2backstageBackstage (custom ACR image v1.0.0)

External URLs

ServiceURL
Backstagehttp://backstage.<LB-IP>.sslip.io
ArgoCDhttp://argocd.<LB-IP>.sslip.io
Grafanahttp://grafana.<LB-IP>.sslip.io
Prometheushttp://prometheus.<LB-IP>.sslip.io
Alertmanagerhttp://alertmanager.<LB-IP>.sslip.io

1. Prerequisites

CLI Tools

# Required
az --version        # >= 2.55
terraform --version # >= 1.5
kubectl version     # >= 1.28
helm version        # >= 3.13
docker --version    # >= 24.0
node --version      # >= 20.0
yarn --version      # >= 4.0
gh auth status      # GitHub CLI authenticated

Azure

az login
az account set --subscription "<SUBSCRIPTION_ID>"
az provider register -n Microsoft.ContainerService
az provider register -n Microsoft.KeyVault
az provider register -n Microsoft.Storage

Configuration Files

FilePurpose
backstage/app-config.yamlDevelopment config
backstage/app-config.production.yamlProduction config (baked into image)

2. Azure AKS Deployment

Terraform

cd terraform

# Initialize
terraform init -backend-config=environments/dev-backend.hcl

# Plan
terraform plan \
  -var-file=environments/dev.tfvars \
  -var="portal_name=<client-portal-name>" \
  -var="location=centralus"

# Apply
terraform apply \
  -var-file=environments/dev.tfvars \
  -var="portal_name=<client-portal-name>" \
  -var="location=centralus"

Module: terraform/modules/backstage/

Provisions:

  • Helm release for backstage/backstage chart
  • Custom image from ACR
  • PostgreSQL Flexible Server integration
  • GitHub App secret in Key Vault
  • Ingress with TLS (cert-manager)

Region Validation

variable "location" {
  type    = string
  validation {
    condition     = contains(["centralus", "eastus"], var.location)
    error_message = "Only Central US and East US are supported."
  }
}

4. GitHub App Setup

For AUTH_PROVIDER=entra with GITHUB_IDENTITY_MODE=enterprise-managed-users, Entra ID handles user sign-in. GitHub App credentials are still required for technical GitHub integration: catalog sync, scaffolder writes, Actions, PRs, Codespaces, packages, and AI Impact metrics.

Create GitHub App

./scripts/setup-github-app.sh --target backstage --org <GITHUB_ORG>

Manual Creation

  1. Go to https://github.com/organizations/<ORG>/settings/apps/new
  2. Set:
    • Homepage URL: https://<portal-url>
    • Callback URL: https://<portal-url>/api/auth/github/handler/frame
    • Webhook: Disable (not needed for auth)
  3. Permissions:
    • contents: read
    • metadata: read
    • pull_requests: write
    • members: read
  4. Generate Private Key (.pem file)
  5. Note: App ID, Client ID, Client Secret

Configure in Backstage

Environment variables:

GITHUB_APP_ID=<numeric-app-id>
GITHUB_APP_CLIENT_ID=<client-id>
GITHUB_APP_CLIENT_SECRET=<client-secret>
GITHUB_APP_PRIVATE_KEY=<contents-of-pem-file>

Microsoft Entra ID Sign-In

Environment variables:

AUTH_PROVIDER=entra
GITHUB_IDENTITY_MODE=enterprise-managed-users
ENTRA_TENANT_ID=<tenant-id>
ENTRA_CLIENT_ID=<app-registration-client-id>
ENTRA_CLIENT_SECRET=<client-secret>

Backstage callback URL:

https://<portal-url>/api/auth/microsoft/handler/frame

5. Golden Path Templates

Valid Templates (YAML-compatible with Backstage parser)

TemplateHorizonDescription
api-microserviceH2FastAPI microservice with PostgreSQL
ado-to-github-migrationH2Azure DevOps to GitHub migration
copilot-extensionH3GitHub Copilot Extension
rag-applicationH3RAG application with Azure AI

Registration

Templates are registered via catalog.locations in app-config.production.yaml:

catalog:
  locations:
    - type: url
      target: https://github.com/<org>/<repo>/blob/main/golden-paths/<horizon>/<template>/template.yaml
      rules:
        - allow: [Template]

6. Codespaces Integration

Each Golden Path template skeleton includes a .devcontainer/devcontainer.json that configures:

  • Base image with required SDKs
  • VS Code extensions for the template type
  • Port forwarding for development servers
  • Post-create setup scripts

Example: Python Microservice

{
  "name": "Python Microservice",
  "image": "mcr.microsoft.com/devcontainers/python:3.11",
  "features": {
    "ghcr.io/devcontainers/features/azure-cli:1": {},
    "ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {}
  },
  "customizations": {
    "vscode": {
      "extensions": ["ms-python.python", "ms-python.pylint", "redhat.vscode-yaml"]
    }
  },
  "postCreateCommand": "pip install -r requirements.txt",
  "forwardPorts": [8000]
}

7. Troubleshooting

Backstage pod not starting

kubectl logs -n backstage -l app.kubernetes.io/name=backstage --tail=50
kubectl describe pod -n backstage -l app.kubernetes.io/name=backstage

Templates not loading

# Check for YAML parse errors
kubectl logs -n backstage -l app.kubernetes.io/name=backstage | grep 'YAML error'

# Verify catalog locations
kubectl exec -n backstage deploy/backstage -- cat /app/app-config.production.yaml | grep -A 2 'locations'

GitHub auth not working

# Test auth endpoint
kubectl exec -n backstage deploy/backstage -- \
  node -e "fetch('http://localhost:7007/api/auth/github/start?env=development',{redirect:'manual'}).then(r=>console.log(r.status))"
# Expected: 302

Database connection

kubectl exec -n backstage deploy/backstage -- \
  node -e "fetch('http://localhost:7007/.backstage/health/v1/readiness').then(r=>console.log(r.status))"
# Expected: 200

When not to use it

  • For full platform orchestration
  • For Azure infrastructure provisioning

Prerequisites

az >= 2.55terraform >= 1.5kubectl >= 1.28helm >= 3.13

Limitations

  • The skill is limited to Azure AKS or Docker Desktop + kind platforms
  • The skill supports East US 2 region for AKS, and Central US for PostgreSQL
  • The skill does not handle full platform orchestration

How it compares

This skill automates the complex deployment and configuration of Backstage on specific platforms, providing a structured approach compared to manual setup.

Compared to similar skills

backstage-deployment side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
backstage-deployment (this skill)01moReviewAdvanced
deployment-pipeline-design62moReviewAdvanced
kubernetes-architect63moNo flagsAdvanced
dstack12moCautionIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

deployment-pipeline-design

wshobson

Design multi-stage CI/CD pipelines with approval gates, security checks, and deployment orchestration. Use when architecting deployment workflows, setting up continuous delivery, or implementing GitOps practices.

670

kubernetes-architect

sickn33

Expert Kubernetes architect specializing in cloud-native infrastructure, advanced GitOps workflows (ArgoCD/Flux), and enterprise container orchestration. Masters EKS/AKS/GKE, service mesh (Istio/Linkerd), progressive delivery, multi-tenancy, and platform engineering. Handles security, observability, cost optimization, and developer experience. Use PROACTIVELY for K8s architecture, GitOps implementation, or cloud-native platform design.

636

dstack

dstackai

dstack is an open-source control plane for GPU provisioning and orchestration across GPU clouds, Kubernetes, and on-prem clusters.

14

eks

itsmostafa

AWS EKS Kubernetes management for clusters, node groups, and workloads. Use when creating clusters, configuring IRSA, managing node groups, deploying applications, or integrating with AWS services.

12

deployment-engineer

sickn33

Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.

418

devops

mrgoonie

Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI/CD, GitOps, security audit.

216

Search skills

Search the agent skills registry