Skip to content

feat: complete azure-vm-starterkit BBD with child VM BBD, logo and e2e#225

Open
malhussan wants to merge 4 commits into
mainfrom
feat/azure-vm-starterkit-complete
Open

feat: complete azure-vm-starterkit BBD with child VM BBD, logo and e2e#225
malhussan wants to merge 4 commits into
mainfrom
feat/azure-vm-starterkit-complete

Conversation

@malhussan

Copy link
Copy Markdown
Member

Adds the composed child azure-virtual-machine BBD, a starter-kit logo and an e2e test, and finishes the starter-kit BBD so it can be deployed and smoke-tested.

The azure-virtual-machine-starterkit shipped only the buildingblock/ implementation — it
never had a meshstack_integration.tf, so no building block definition (and no permissions
array / ephemeral run key) was ever wired up. Its buildingblock creates a meshProject, a
meshstack_tenant_v4 and a composed Azure VM child building block via provider "meshstack" {},
which needs the auto-injected ephemeral token that only a BBD permissions array grants.

Add the integration.tf modeled on the AKS/SKE starter kits (workspace-level permissions).

Reconstructed, never tested end-to-end — input assignment types (USER_INPUT vs STATIC),
the readme, and the composed azure_vm_definition_version_uuid wiring need author review.
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Scorecard Check

Scorecard run on commit b17032516c8e3088980adf66a9265d4cbc7b2dd8 relative to origin/main

📊 meshstack-hub Module Scorecard

Generated: 2026-07-16 | Modules scanned: 2 | Categories: 5

📋 Per-Module Category Summary

Score per category per building block. n/a = category does not apply to this module.

Module Overall Core Structure Integration Azure Backplane STACKIT Backplane Testing
azure/azure-virtual-machine 🟡 68% 🟢 100% 🟢 100% 🔴 11% n/a 🔴 33%
azure/azure-virtual-machine-starterkit 🟢 95% 🟢 100% 🟢 100% n/a n/a 🟡 67%

⚠️ 2 modules have failing checks — failing categories are expanded below.

Core Structure — ✅ all passing

Basic module file structure and documentation — applies to 2 modules

Module Score 📦 🔗 📋 📝 🖼️ 📌 🔒
azure/azure-virtual-machine 🟢 100%
azure/azure-virtual-machine-starterkit 🟢 100%

Core Structure — Summary

Emoji Criterion Coverage Status
📦 buildingblock/ directory exists 2/2 🟢 100%
🔗 meshstack_integration.tf present 2/2 🟢 100%
📋 buildingblock/APP_TEAM_README.md present (no-integration fallback) n/a
📝 buildingblock/README.md with YAML front-matter 2/2 🟢 100%
🖼️ buildingblock/logo.png included 2/2 🟢 100%
📌 buildingblock/versions.tf present 2/2 🟢 100%
🔒 Provider versions use minimum constraint (>=) 2/2 🟢 100%
Integration — ✅ all passing

meshstack_integration.tf conventions — applies to 2 modules

Module Score 🏷️ 🏢 📤 🔌 📎 🔀 📋 🏷️ 🧱 📖 📝 📊 🚫 🔄
azure/azure-virtual-machine 🟢 100%
azure/azure-virtual-machine-starterkit 🟢 100%

Integration — Summary

Emoji Criterion Coverage Status
🏷️ variable "hub" in integration 2/2 🟢 100%
🏢 variable "meshstack" in integration 2/2 🟢 100%
📤 building_block_definition output exposed 2/2 🟢 100%
🔌 meshcloud/meshstack in required_providers 2/2 🟢 100%
📎 backplane source uses var.hub.git_ref 2/2 🟢 100%
🔀 ref_name uses var.hub.git_ref 2/2 🟢 100%
📋 version_spec.draft uses var.hub.bbd_draft 2/2 🟢 100%
🏷️ BBD metadata.tags forwards var.meshstack.tags 2/2 🟢 100%
🧱 BBD input argument vars with optional() have explicit defaults 2/2 🟢 100%
📖 BBD readme field present 2/2 🟢 100%
📝 BBD readme starts with plain-text description (no heading) 2/2 🟢 100%
📊 BBD readme has shared responsibility table (✅/❌) 2/2 🟢 100%
🚫 No documentation_md output in backplane 2/2 🟢 100%
🔄 meshstack_platform has lifecycle ignore_changes = [availability] n/a
Azure Backplane — some checks failing

Azure UAMI-based automation principal conventions — applies to 1 modules

Module Score 🪪 🚫 🚫 🔑 🔗 🧹 📤 📍
azure/azure-virtual-machine 🔴 11%

Azure Backplane — Summary

Emoji Criterion Coverage Status
🪪 Uses azurerm_user_assigned_identity 0/1 🔴 0%
🚫 No azuread_application resources 0/1 🔴 0%
🚫 No azuread_service_principal resources 0/1 🔴 0%
🔑 No azuread_application_password resources 0/1 🔴 0%
🔗 Uses azurerm_federated_identity_credential 0/1 🔴 0%
workload_identity_federation is non-nullable 1/1 🟢 100%
🧹 No create_service_principal_name toggle 0/1 🔴 0%
📤 Outputs identity (client_id, principal_id, tenant_id) 0/1 🔴 0%
📍 Integration has azure_location 0/1 🔴 0%
STACKIT Backplane — not applicable

STACKIT WIF-based automation principal conventions — applies to 0 modules

No applicable modules.

Testing — some checks failing

End-to-end test coverage — applies to 2 modules

Module Score ⚙️ 🧪
azure/azure-virtual-machine 🔴 33%
azure/azure-virtual-machine-starterkit 🟡 67%

Testing — Summary

Emoji Criterion Coverage Status
⚙️ backplane/ directory (optional tier) 1/2 🟡 50%
🧪 e2e/ test directory exists 1/2 🟡 50%
e2e/ contains .tftest.hcl files 1/2 🟡 50%

📈 Overall Summary

Overall Average Score: 82%

Score Distribution

  • 🟢 High maturity (≥80%): 1 modules
  • 🟡 Medium maturity (50–79%): 1 modules
  • 🔴 Low maturity (<50%): 0 modules

@aws-amplify-eu-central-1

Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-225.d1o16zfeoh2slu.amplifyapp.com

Adds the composed child azure-virtual-machine BBD, a starter-kit logo and an
e2e test, and finishes the starter-kit BBD so it can be deployed and smoke-tested.
@malhussan
malhussan force-pushed the feat/azure-vm-starterkit-complete branch from eae1862 to 8ac91d5 Compare July 16, 2026 07:54
meshStack has no optional-input concept, so the mutually-exclusive
Linux/Windows credentials couldn't both be non-required. Drop Windows
support (VM resources, os_type, admin_password) from the module and
starter kit, leaving a required SSH key.
Enables the meshstack_building_block_v2 -> meshstack_building_block moved block:
cross-type moves need OpenTofu >= 1.10 (1.9 errors "Resource type mismatch"),
and the provider implements the move since v0.23.0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants