Azure Infrastructure
Convert Azure infrastructure planning needs into opinionated Open Horizons patterns for naming, tagging, security posture, and platform resource design without executing deployment commands.
When to invoke
- "Plan Azure infrastructure for Open Horizons."
- "Design a hub-spoke network or private endpoint pattern."
- "Define Workload Identity and managed identity access."
- "Create naming conventions and tag strategy."
- "Review AKS, Key Vault, or secure PaaS topology."
Prerequisites and context
- Azure subscription access.
- Terraform knowledge.
- Understanding of Azure services.
- Use bundled scripts only when infrastructure bootstrap automation is explicitly needed.
Criteria
Reference patterns
Resource Group Naming
rg-<project>-<environment>-<region>
Example: rg-3horizons-prod-eastus2
AKS Cluster Naming
aks-<project>-<environment>-<region>
Example: aks-3horizons-prod-eastus2
Key Vault Naming
kv-<project>-<environment>-<region>
Example: kv-3horizons-prod-eus2
Storage Account Naming
st<project><environment><region>
Example: st3horizonsprodeus2
Required Tags
locals {
common_tags = {
Environment = var.environment
Project = var.project_name
Owner = var.owner
CostCenter = var.cost_center
ManagedBy = "terraform"
}
}
Security Patterns
- Use Workload Identity (not service principals).
- Enable private endpoints for PaaS services.
- Configure NSGs with deny-all default.
- Enable Azure Defender for Cloud.
Best practices
- Use Azure Verified Modules when available.
- Follow CAF naming conventions.
- Enable diagnostic settings.
- Configure resource locks for production.
- Use managed identities.
Output template
Return exactly this structure:
Azure Infrastructure Recommendation
**Status:** PASS | FAIL | BLOCKED
**Summary:** One sentence describing the recommended Azure infrastructure pattern.
### Details
- Scope: landing zone, network, identity, naming, tagging, AKS, Key Vault, or PaaS topology
- Recommended pattern: selected pattern and rationale
- Naming and tags: required names and tag block or deviations
- Security posture: Workload Identity, private endpoints, NSGs, Defender, diagnostics, and locks
### Validation
- Pattern fit: PASS | FAIL with evidence from the request and repository context
- Security check: PASS | FAIL | SKIPPED with managed identity and private connectivity evidence
- Handoff check: PASS | FAIL with any required `azure-cli`, `azure-terraform-cli`, or `open-horizons-deploy-orchestration` boundary
Limits
- Do not use this skill for running
az commands.
- Use
azure-cli (skill) instead when command execution or live Azure resource changes are required.
- Do not use this skill for writing Terraform plans.
- Use
azure-terraform-cli (skill) instead when the task needs Terraform command execution or plan output.
- Do not use this skill for Kubernetes operations.
- Use
azure-kubectl-cli (skill) instead when inspecting or mutating Kubernetes resources.
- Do not use this skill for full deployment sequencing.
- Use
open-horizons-deploy-orchestration (skill) instead when coordinating H1, H2, or H3 deployment order.
Progressive disclosure and bundled resources
At discovery time, only name and description are loaded. Read or run bundled resources only when the requested task needs bootstrap automation.
scripts/bootstrap.sh: infrastructure bootstrap script.
scripts/platform-bootstrap.sh: platform bootstrap script.
Related primitives
| Name |
Type |
Use it when |
open-horizons-terraform |
agent |
Azure infrastructure guidance must become Terraform module code or review. |
open-horizons-security-reviewer |
agent |
The infrastructure design needs security posture, RBAC, or compliance review. |
open-horizons-azure-readiness |
agent |
Azure provider registration, quotas, resource inventory, or portal validation is needed. |
azure-cli |
skill |
The next step is executing Azure CLI operations. |
open-horizons-deploy-orchestration |
skill |
The task needs end-to-end platform deployment sequencing. |
Quality gate
1---2name: azure-infrastructure-43description: Azure infrastructure patterns guide landing-zone, networking, identity, naming, tagging, and private connectivity decisions. Use this skill when designing hub-spoke networks, private endpoint patterns, Workload Identity, naming conventions, tag strategies, AKS architecture, Key Vault access, or secure PaaS topology.4---56<!-- Generated from harness/github-copilot/plugins/azure-cloud-development/skills/azure-infrastructure/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->78# Azure Infrastructure910Convert Azure infrastructure planning needs into opinionated Open Horizons patterns for naming, tagging, security posture, and platform resource design without executing deployment commands.1112## When to invoke1314- "Plan Azure infrastructure for Open Horizons."15- "Design a hub-spoke network or private endpoint pattern."16- "Define Workload Identity and managed identity access."17- "Create naming conventions and tag strategy."18- "Review AKS, Key Vault, or secure PaaS topology."1920## Prerequisites and context2122- Azure subscription access.23- Terraform knowledge.24- Understanding of Azure services.25- Use bundled scripts only when infrastructure bootstrap automation is explicitly needed.2627## Criteria2829### Reference patterns3031#### Resource Group Naming3233```34rg-<project>-<environment>-<region>35Example: rg-3horizons-prod-eastus236```3738#### AKS Cluster Naming3940```41aks-<project>-<environment>-<region>42Example: aks-3horizons-prod-eastus243```4445#### Key Vault Naming4647```48kv-<project>-<environment>-<region>49Example: kv-3horizons-prod-eus250```5152#### Storage Account Naming5354```55st<project><environment><region>56Example: st3horizonsprodeus257```5859### Required Tags6061```hcl62locals {63 common_tags = {64 Environment = var.environment65 Project = var.project_name66 Owner = var.owner67 CostCenter = var.cost_center68 ManagedBy = "terraform"69 }70}71```7273### Security Patterns7475- Use Workload Identity (not service principals).76- Enable private endpoints for PaaS services.77- Configure NSGs with deny-all default.78- Enable Azure Defender for Cloud.7980### Best practices81821. Use Azure Verified Modules when available.832. Follow CAF naming conventions.843. Enable diagnostic settings.854. Configure resource locks for production.865. Use managed identities.8788## Output template8990Return exactly this structure:9192```markdown93Azure Infrastructure Recommendation9495**Status:** PASS | FAIL | BLOCKED96**Summary:** One sentence describing the recommended Azure infrastructure pattern.9798### Details99- Scope: landing zone, network, identity, naming, tagging, AKS, Key Vault, or PaaS topology100- Recommended pattern: selected pattern and rationale101- Naming and tags: required names and tag block or deviations102- Security posture: Workload Identity, private endpoints, NSGs, Defender, diagnostics, and locks103104### Validation105- Pattern fit: PASS | FAIL with evidence from the request and repository context106- Security check: PASS | FAIL | SKIPPED with managed identity and private connectivity evidence107- Handoff check: PASS | FAIL with any required `azure-cli`, `azure-terraform-cli`, or `open-horizons-deploy-orchestration` boundary108```109110## Limits111112- Do not use this skill for running `az` commands.113- Use `azure-cli` (`skill`) instead when command execution or live Azure resource changes are required.114- Do not use this skill for writing Terraform plans.115- Use `azure-terraform-cli` (`skill`) instead when the task needs Terraform command execution or plan output.116- Do not use this skill for Kubernetes operations.117- Use `azure-kubectl-cli` (`skill`) instead when inspecting or mutating Kubernetes resources.118- Do not use this skill for full deployment sequencing.119- Use `open-horizons-deploy-orchestration` (`skill`) instead when coordinating H1, H2, or H3 deployment order.120121## Progressive disclosure and bundled resources122123At discovery time, only `name` and `description` are loaded. Read or run bundled resources only when the requested task needs bootstrap automation.124125- `scripts/bootstrap.sh`: infrastructure bootstrap script.126- `scripts/platform-bootstrap.sh`: platform bootstrap script.127128## Related primitives129130| Name | Type | Use it when |131| --- | --- | --- |132| `open-horizons-terraform` | `agent` | Azure infrastructure guidance must become Terraform module code or review. |133| `open-horizons-security-reviewer` | `agent` | The infrastructure design needs security posture, RBAC, or compliance review. |134| `open-horizons-azure-readiness` | `agent` | Azure provider registration, quotas, resource inventory, or portal validation is needed. |135| `azure-cli` | `skill` | The next step is executing Azure CLI operations. |136| `open-horizons-deploy-orchestration` | `skill` | The task needs end-to-end platform deployment sequencing. |137138## Quality gate139140- [ ] `name` matches the `azure-infrastructure` directory.141- [ ] The recommendation uses existing naming patterns, required tags, and security patterns.142- [ ] Workload Identity, private endpoints, NSG posture, and Defender are considered when relevant.143- [ ] No live `az`, Terraform, or Kubernetes operation is presented as completed unless actually run by the owning primitive.144- [ ] Every bundled resource path referenced above exists.145- [ ] The response follows the output template with validation evidence.