-
Notifications
You must be signed in to change notification settings - Fork 191
Add Azure Local skills #2163
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
Open
Tim Frankland (tfrankland2)
wants to merge
14
commits into
microsoft:main
Choose a base branch
from
tfrankland2:feature/azure-local-skill
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Add Azure Local skills #2163
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
08fbdaf
Add Azure Local skill
tfrankland2 4e34278
Fix Azure Local skill checks
tfrankland2 6cbf4c5
Refine Azure Local routing metadata
tfrankland2 e601284
Address Azure Local review feedback
tfrankland2 e6314e3
Remove adjacent Azure Local routing changes
tfrankland2 bb2a84f
Use KQL fences for Azure Local ARG examples
tfrankland2 3b0e146
Add Azure Local skill tests
tfrankland2 1306b83
Fix Azure Local skill frontmatter
tfrankland2 64b8757
fix: address azure local skill review feedback
tfrankland2 5af86ad
fix: clarify azure local mcp tool scope
tfrankland2 5392a0f
fix: revert README wording change
tfrankland2 d922943
fix: keep azure local rebase scope
tfrankland2 c0feb54
fix: reduce azure local skill tokens
tfrankland2 587c327
fix: fit azure local skill budget
tfrankland2 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| --- | ||
| name: azure-local | ||
| description: "WHEN: Azure Local, Stack HCI, resource" | ||
| license: MIT | ||
| metadata: | ||
| author: Microsoft | ||
| version: "0.0.0-placeholder" | ||
| --- | ||
|
|
||
| # Azure Local | ||
|
|
||
| ## Quick Reference | ||
|
|
||
| Azure Local planning, deployment, operations, workloads, networking, updates, troubleshooting. References: [MCP/CLI](references/mcp-and-cli-tools.md), [docs-map](references/docs-map.md), [resource-types](references/resource-types.md), [safety-rules](references/safety-rules.md). | ||
|
|
||
| ## When to Use This Skill | ||
|
|
||
| Use for Azure Local, Azure Stack HCI, Azure Local VMs, AKS on Azure Local, AKS hybrid, SDN, lifecycle updates, disconnected sites. Do not use for cloud VM or public AKS guidance. | ||
|
|
||
| ## MCP Tools | ||
|
|
||
| Use `mcp_azure_mcp_extension_cli_generate`, `mcp_azure_mcp_monitor`, `mcp_azure_mcp_resourcehealth`, and `mcp_azure_mcp_documentation`; verify scope with [MCP/CLI](references/mcp-and-cli-tools.md). | ||
|
|
||
| ## Workflow | ||
|
|
||
| 1. Deploy: [Plan](workflows/plan-and-deploy/plan-and-deploy.md) | ||
| 2. Operate/update: [Operate](workflows/operate-and-update/operate-and-update.md) | ||
| 3. VMs, AKS, SQL, images, disks, networks: [Workloads](workflows/workload-management/workload-management.md) | ||
| 4. SDN, NSG, gateway, security: [Network](workflows/networking-and-security/networking-and-security.md) | ||
| 5. Failures: [Troubleshoot](workflows/troubleshooting/troubleshooting.md) | ||
|
|
||
| Read the matched workflow first. Start read-only. Ask before updates, deletes, reimages, network changes, VM power/delete operations, or Arc bridge/custom location changes. | ||
|
|
||
| ## Error Handling | ||
|
|
||
|
tfrankland2 marked this conversation as resolved.
|
||
| | Scenario | Remediation | | ||
| | --- | --- | | ||
| | Version unknown | Ask or fetch latest docs. | | ||
| | Risky change | Stop; follow [safety-rules](references/safety-rules.md). | | ||
| | No local access | Use Azure control-plane only. | | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,86 @@ | ||
| # Azure Local Documentation Map | ||
|
|
||
| Use Microsoft Learn as the authoritative source for Azure Local procedures. Use latest-version URLs by default; add a version-aware view parameter only when the user asks about a specific Azure Local release, and fetch current docs before giving detailed commands. | ||
|
|
||
| ## Core entry points | ||
|
|
||
| | Area | Microsoft Learn path | | ||
| | --- | --- | | ||
| | Azure Local landing page | `https://learn.microsoft.com/azure/azure-local/` | | ||
| | What is Azure Local | `https://learn.microsoft.com/azure/azure-local/overview` | | ||
| | Scalability and deployments | `https://learn.microsoft.com/azure/azure-local/scalability-deployments` | | ||
| | Release information | `https://learn.microsoft.com/azure/azure-local/release-information-23h2` | | ||
| | Known issues | `https://learn.microsoft.com/azure/azure-local/known-issues` | | ||
|
|
||
| ## Planning and deployment | ||
|
|
||
| | Need | Microsoft Learn path | | ||
| | --- | --- | | ||
| | System requirements | `https://learn.microsoft.com/azure/azure-local/concepts/system-requirements-23h2` | | ||
| | Physical network requirements | `https://learn.microsoft.com/azure/azure-local/concepts/physical-network-requirements` | | ||
| | Host network requirements | `https://learn.microsoft.com/azure/azure-local/concepts/host-network-requirements` | | ||
| | Firewall requirements | `https://learn.microsoft.com/azure/azure-local/concepts/firewall-requirements` | | ||
| | Network reference patterns | `https://learn.microsoft.com/azure/azure-local/plan/network-patterns-overview` | | ||
| | Choose network pattern | `https://learn.microsoft.com/azure/azure-local/plan/choose-network-pattern` | | ||
| | Deployment introduction | `https://learn.microsoft.com/azure/azure-local/deploy/deployment-introduction` | | ||
| | Deployment prerequisites | `https://learn.microsoft.com/azure/azure-local/deploy/deployment-prerequisites` | | ||
| | Prepare Active Directory | `https://learn.microsoft.com/azure/azure-local/deploy/deployment-prep-active-directory` | | ||
| | Install OS | `https://learn.microsoft.com/azure/azure-local/deploy/deployment-install-os` | | ||
| | Simplified machine provisioning | `https://learn.microsoft.com/azure/azure-local/deploy/simplified-machine-provisioning` | | ||
| | Subscription permissions | `https://learn.microsoft.com/azure/azure-local/deploy/deployment-arc-register-server-permissions` | | ||
| | Register without Arc gateway | `https://learn.microsoft.com/azure/azure-local/deploy/deployment-without-azure-arc-gateway` | | ||
| | Register with Arc gateway | `https://learn.microsoft.com/azure/azure-local/deploy/deployment-with-azure-arc-gateway` | | ||
| | Deploy via portal | `https://learn.microsoft.com/azure/azure-local/deploy/deploy-via-portal` | | ||
| | Deploy via ARM template | `https://learn.microsoft.com/azure/azure-local/deploy/deployment-azure-resource-manager-template` | | ||
|
|
||
| ## Operations, updates, and upgrades | ||
|
|
||
| | Need | Microsoft Learn path | | ||
| | --- | --- | | ||
| | About updates | `https://learn.microsoft.com/azure/azure-local/update/about-updates-23h2` | | ||
| | Update phases | `https://learn.microsoft.com/azure/azure-local/update/update-phases-23h2` | | ||
| | Update via PowerShell | `https://learn.microsoft.com/azure/azure-local/update/update-via-powershell-23h2` | | ||
| | Limited connectivity updates | `https://learn.microsoft.com/azure/azure-local/update/import-discover-updates-offline-23h2` | | ||
| | Update via Azure portal | `https://learn.microsoft.com/azure/azure-local/update/azure-update-manager-23h2` | | ||
| | Update best practices | `https://learn.microsoft.com/azure/azure-local/update/update-best-practices` | | ||
| | Troubleshoot updates | `https://learn.microsoft.com/azure/azure-local/update/update-troubleshooting-23h2` | | ||
| | About upgrades | `https://learn.microsoft.com/azure/azure-local/upgrade/about-upgrades-23h2` | | ||
| | Upgrade troubleshooting | `https://learn.microsoft.com/azure/azure-local/upgrade/troubleshoot-upgrade-to-23h2` | | ||
|
|
||
| ## Workloads | ||
|
|
||
| | Need | Microsoft Learn path | | ||
| | --- | --- | | ||
| | Azure Local VM management overview | `https://learn.microsoft.com/azure/azure-local/manage/azure-arc-vm-management-overview` | | ||
| | VM management prerequisites | `https://learn.microsoft.com/azure/azure-local/manage/azure-arc-vm-management-prerequisites` | | ||
| | Assign VM RBAC roles | `https://learn.microsoft.com/azure/azure-local/manage/assign-vm-rbac-roles` | | ||
| | Create storage path | `https://learn.microsoft.com/azure/azure-local/manage/create-storage-path` | | ||
| | Create logical networks | `https://learn.microsoft.com/azure/azure-local/manage/create-logical-networks` | | ||
| | Create network interfaces | `https://learn.microsoft.com/azure/azure-local/manage/create-network-interfaces` | | ||
| | Create Arc VMs | `https://learn.microsoft.com/azure/azure-local/manage/create-arc-virtual-machines` | | ||
| | Manage Arc VMs | `https://learn.microsoft.com/azure/azure-local/manage/manage-arc-virtual-machines` | | ||
| | Troubleshoot Arc VMs | `https://learn.microsoft.com/azure/azure-local/manage/troubleshoot-arc-enabled-vms` | | ||
| | AKS on Azure Local | `https://learn.microsoft.com/azure/aks/hybrid/aks-create-clusters-portal?toc=/azure/azure-local/toc.json&bc=/azure/azure-local/breadcrumb/toc.json` | | ||
| | SQL Server on Azure Local | `https://learn.microsoft.com/azure/azure-local/deploy/sql-server-23h2` | | ||
| | Disaster recovery overview | `https://learn.microsoft.com/azure/azure-local/manage/disaster-recovery-overview` | | ||
|
|
||
| ## Networking and security | ||
|
|
||
| | Need | Microsoft Learn path | | ||
| | --- | --- | | ||
| | Security features | `https://learn.microsoft.com/azure/azure-local/concepts/security-features` | | ||
| | Security book | `https://learn.microsoft.com/azure/azure-local/security-book/overview` | | ||
| | Private endpoints | `https://learn.microsoft.com/azure/azure-local/deploy/about-private-endpoints` | | ||
| | SDN overview | `https://learn.microsoft.com/azure/azure-local/concepts/sdn-overview` | | ||
| | Enable SDN integration | `https://learn.microsoft.com/azure/azure-local/deploy/enable-sdn-integration` | | ||
| | Network security groups | `https://learn.microsoft.com/azure/azure-local/manage/create-network-security-groups` | | ||
| | Manage NSGs | `https://learn.microsoft.com/azure/azure-local/manage/manage-network-security-groups` | | ||
| | SDN troubleshooting | `https://learn.microsoft.com/azure/azure-local/manage/sdn-troubleshooting` | | ||
| | External storage | `https://learn.microsoft.com/azure/azure-local/deploy/enable-external-storage` | | ||
|
|
||
| ## Documentation usage rules | ||
|
|
||
| 1. Fetch current docs for detailed procedures, command syntax, or supported topology decisions. | ||
| 2. If a URL redirects or 404s, search Microsoft Learn for the article title and keep the user's requested Azure Local version in the query. | ||
| 3. Do not copy long procedural content into responses; summarize the decision and link or cite the authoritative doc. | ||
| 4. When documentation differs by version, ask for the Azure Local version or use the version provided by the user. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| # MCP and CLI Tools for Azure Local | ||
|
|
||
| Prefer Azure MCP tools for Azure control-plane discovery where they support the Azure Local resource type, then use generated Azure CLI/PowerShell commands when a documented operation requires command execution. Azure MCP does not currently expose a dedicated Azure Local tool namespace; treat support as partial through generic Azure, Azure Resource Graph, documentation, monitor/resource health, and Bicep schema surfaces. | ||
|
|
||
| ## MCP tools | ||
|
|
||
| | Tool | Use | | ||
| | --- | --- | | ||
| | `mcp_azure_mcp_subscription_list` | Discover subscription scope. | | ||
| | `mcp_azure_mcp_group_list` | Discover resource groups. | | ||
| | `mcp_azure_mcp_extension_cli_generate` | Generate Azure CLI or Azure Resource Graph commands for Azure Local/Arc inventory and operations. | | ||
| | `mcp_azure_mcp_monitor` | Query logs/metrics when Azure Monitor or Log Analytics is configured. | | ||
| | `mcp_azure_mcp_resourcehealth` | Check resource health where supported. | | ||
| | `mcp_azure_mcp_documentation` | Retrieve current Microsoft Learn content. | | ||
| | `mcp_azure_mcp_bicepschema` | Inspect ARM/Bicep schemas for Azure Local resource types such as `Microsoft.AzureStackHCI/clusters` when authoring templates. | | ||
|
|
||
| Do not assume public Azure service-specific MCP tools are interchangeable with Azure Local. For example, public Azure VM and AKS tools may not cover Arc VMs or AKS on Azure Local; confirm the resource provider/type and use ARG, generated CLI, or documented PowerShell when the dedicated MCP tool does not match. | ||
|
|
||
| ## Azure CLI patterns | ||
|
|
||
| Use Azure CLI for Azure control-plane operations: | ||
|
|
||
| ```bash | ||
| az account show | ||
| az group list -o table | ||
| az graph query -q "Resources | where type =~ 'microsoft.azurestackhci/clusters' | project name, resourceGroup, location" -o table | ||
| az resource show --ids <resource-id> | ||
| az monitor activity-log list --resource-id <resource-id> --max-events 20 | ||
| ``` | ||
|
|
||
| For Azure Local VM operations, use the Azure Local VM management docs to determine the required extension/CLI commands and parameters. Do not assume public Azure VM commands have identical behavior for Azure Local VMs enabled by Azure Arc. | ||
|
|
||
| ## PowerShell patterns | ||
|
|
||
| Use PowerShell when Microsoft Learn specifies Azure Local lifecycle, update, or local cluster commands. Confirm the command is supported for the user's Azure Local version before execution. | ||
|
|
||
| Common categories: | ||
|
|
||
| - Azure Local update assessment, import, scheduling, and installation. | ||
| - Local evidence collection from an Azure Local machine. | ||
| - SDN management/troubleshooting when docs require local or administrative PowerShell modules. | ||
| - Upgrade readiness and post-upgrade validation. | ||
|
|
||
| ## When local machine access is required | ||
|
|
||
| Ask the user to confirm direct administrative access to an Azure Local machine before local commands. Local access may be required for: | ||
|
|
||
| - OS installation or simplified machine provisioning. | ||
| - Local logs or evidence collection. | ||
| - Update/upgrade commands that must run on a system node. | ||
| - SDN certificate or infrastructure troubleshooting. | ||
| - Arc resource bridge local VM state checks. | ||
|
|
||
| ## Command safety | ||
|
|
||
| - Generate commands with read-only flags first. | ||
| - Scope all commands to the subscription/resource group/resource ID. | ||
| - Use `--first`, `--query`, or projection for large Azure Resource Graph queries. | ||
| - Ask before update installation, resource deletion, VM power operations, network changes, or decommissioning. | ||
| - Never embed secrets in commands. Use Key Vault, environment variables, or interactive authentication where documented. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| # Azure Local Resource Types and ARG Patterns | ||
|
|
||
| Use Azure Resource Graph for cross-resource inventory. Resource providers and API coverage can evolve; verify against live resources and current Microsoft Learn docs. | ||
|
|
||
| ## Common resource types | ||
|
|
||
| | Area | Resource type pattern | | ||
| | --- | --- | | ||
| | Azure Local instance / cluster | `microsoft.azurestackhci/clusters` | | ||
| | Arc machines | `microsoft.hybridcompute/machines` | | ||
| | Arc resource bridge | `microsoft.resourceconnector/appliances` | | ||
| | Custom locations | `microsoft.extendedlocation/customlocations` | | ||
| | Kubernetes/Arc extensions | `microsoft.kubernetesconfiguration/extensions` | | ||
| | AKS Arc / connected Kubernetes | `microsoft.kubernetes/connectedclusters` | | ||
| | Azure Local Arc VMs | `microsoft.azurestackhci/virtualmachineinstances`, `microsoft.hybridcompute/machines` | | ||
| | Azure Local logical networks | `microsoft.azurestackhci/logicalnetworks` | | ||
| | Azure Local network interfaces | `microsoft.azurestackhci/networkinterfaces` | | ||
| | Azure Local virtual hard disks | `microsoft.azurestackhci/virtualharddisks` | | ||
| | Azure Local gallery/images | `microsoft.azurestackhci/galleryimages`, `microsoft.azurestackhci/marketplacegalleryimages` | | ||
| | Azure Local storage paths | `microsoft.azurestackhci/storagecontainers` | | ||
| | Network security groups | `microsoft.azurestackhci/networksecuritygroups`, `microsoft.network/networksecuritygroups` | | ||
|
|
||
| ## Inventory queries | ||
|
|
||
| List Azure Local instances: | ||
|
|
||
| ```kql | ||
| Resources | ||
| | where type =~ 'microsoft.azurestackhci/clusters' | ||
| | project name, resourceGroup, location, id, properties | ||
| ``` | ||
|
|
||
| List Arc resource bridges and custom locations: | ||
|
|
||
| ```kql | ||
| Resources | ||
| | where type in~ ('microsoft.resourceconnector/appliances', 'microsoft.extendedlocation/customlocations') | ||
| | project name, type, resourceGroup, location, id, properties | ||
| ``` | ||
|
|
||
| List Azure Local workload resources: | ||
|
|
||
| ```kql | ||
| Resources | ||
| | where type startswith 'microsoft.azurestackhci/' | ||
| | project name, type, resourceGroup, location, id, properties | ||
| ``` | ||
|
|
||
| Find Arc machines associated with Azure Local: | ||
|
|
||
| ```kql | ||
| Resources | ||
| | where type =~ 'microsoft.hybridcompute/machines' | ||
| | project name, resourceGroup, location, id, properties | ||
| ``` | ||
|
|
||
| ## Query rules | ||
|
|
||
| - Use `=~`, `in~`, or lower-case type comparisons because resource types are case-insensitive but commonly stored lower-case. | ||
| - Project only needed fields for large tenants. | ||
| - Use `--subscriptions` or resource group filters when possible. | ||
| - Do not mutate through ARG; it is read-only. | ||
| - Validate resource-type names against live inventory because Azure Local resource providers evolve. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| # Azure Local Safety Rules | ||
|
|
||
| Azure Local changes can affect physical hosts, storage networks, Azure Arc connectivity, and local workloads. Default to assessment and reversible actions. | ||
|
|
||
| ## Always ask before | ||
|
|
||
| - Installing, scheduling, importing, or retrying updates that can reboot hosts or affect workloads. | ||
| - Upgrading Azure Local or changing feature releases. | ||
| - Deleting, recreating, or repairing Azure Arc resource bridge. | ||
| - Deleting custom locations. | ||
| - Decommissioning, reimaging, or unregistering Azure Local machines. | ||
| - Changing physical network settings, VLANs, IP pools, DNS, gateways, proxy, Arc gateway, private endpoints, SDN infrastructure, NSGs, load balancers, gateways, or firewall policy. | ||
| - Creating, deleting, resizing, stopping, restarting, or migrating Azure Local VMs. | ||
| - Deleting disks, NICs, VM images, logical networks, storage paths, AKS clusters, SQL deployments, or backup/disaster-recovery resources. | ||
| - Disabling security baseline controls, Defender, Policy, monitoring, or auditing. | ||
|
|
||
| ## Critical components | ||
|
|
||
| | Component | Rule | | ||
| | --- | --- | | ||
| | Azure Arc resource bridge | Do not delete unless following confirmed reimage/decommission guidance after dependent workload resources are removed. | | ||
| | Custom location | Do not delete until dependent workloads are removed and resource bridge decommission guidance allows it. | | ||
| | Infrastructure logical network | Treat as required infrastructure for Azure Local VM management. | | ||
| | VM management extension | Check health before VM remediation; do not remove as a generic fix. | | ||
| | SDN infrastructure | Treat certificate, controller, load balancer, and gateway changes as high risk. | | ||
|
|
||
| ## Safe default sequence | ||
|
|
||
| 1. Read-only inventory. | ||
| 2. Health and activity log review. | ||
| 3. Documentation lookup for the user's version. | ||
| 4. Impact analysis and rollback plan. | ||
| 5. User confirmation. | ||
| 6. Scoped change. | ||
| 7. Post-change validation. | ||
|
|
||
| ## Response requirements | ||
|
|
||
| When recommending a risky change, include: | ||
|
|
||
| - The specific resource(s) affected. | ||
| - Why the change is needed. | ||
| - Expected workload/control-plane impact. | ||
| - Validation steps. | ||
| - Rollback or recovery notes when available. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| { | ||
| "version": "1.0", | ||
| "pathFilters": [ | ||
| "." | ||
| ] | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.