Skip to content
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

feat: child modules telemetry check #4370

Open
wants to merge 30 commits into
base: main
Choose a base branch
from

Conversation

ReneHezser
Copy link
Contributor

@ReneHezser ReneHezser commented Feb 3, 2025

Description

Child modules should be references with telemetry disabled. A static test checks that and lists the affected resources.

[-] [network/virtual-network] Telemetry should be disabled for referenced modules with dedicated telemetry. 3150.12s (3150.12s|1ms)
     Expected $null or empty, because cross reference modules must be referenced with the enableTelemetry parameter set to false. Found incorrect items: [virtualNetwork_subnets, virtualNetwork_peering_local]., but got @('virtualNetwork_subnets', 'virtualNetwork_peering_local').
     at $incorrectCrossReferences | Should -BeNullOrEmpty -Because ('cross reference modules must be referenced with the enableTelemetry parameter set to false. Found incorrect items: [{0}].' -f ($incorrectCrossReferences -join ', ')), C:\Code\bicep-registry-modules\utilities\pipelines\staticValidation\compliance\module.tests.ps1:1023
     at <ScriptBlock>, C:\Code\bicep-registry-modules\utilities\pipelines\staticValidation\compliance\module.tests.ps1:1023

Depends on Cross referenced Modules

Pipeline Reference

Pipeline
avm.ptn.aca-lza.hosting-environment
avm.ptn.ai-platform.baseline
avm.ptn.app.container-job-toolkit.yml
avm.ptn.authorization.policy-assignment
avm.ptn.authorization.policy-exemption
avm.ptn.authorization.resource-role-assignment
avm.ptn.authorization.role-assignment
avm.ptn.authorization.role-definition
avm.ptn.azd.acr-container-app
avm.ptn.azd.aks-automatic-cluster
avm.ptn.azd.aks
avm.ptn.azd.apim-api
avm.ptn.azd.container-app-upsert
avm.ptn.azd.container-apps-stack
avm.ptn.azd.insights-dashboard
avm.ptn.azd.ml-ai-environment
avm.ptn.azd.ml-hub-dependencies
avm.ptn.azd.ml-project
avm.ptn.azd.monitoring
avm.ptn.data.private-analytical-workspace
avm.ptn.deployment-script.import-image-to-acr
avm.ptn.dev-ops.cicd-agents-and-runners
avm.ptn.finops-toolkit.finops-hub
avm.ptn.lz.sub-vending
avm.ptn.mgmt-groups.subscription-placement
avm.ptn.network.hub-networking
avm.ptn.network.private-link-private-dns-zones
avm.ptn.policy-insights.remediation
avm.ptn.security.security-center
avm.ptn.virtual-machine-images.azure-image-builder
avm.res.aad.domain-service
avm.res.alerts-management.action-rule
avm.res.analysis-services.server
avm.res.api-management.service
avm.res.app-configuration.configuration-store
avm.res.app.container-app
avm.res.app.job
avm.res.app.managed-environment
avm.res.app.session-pool
avm.res.automation.automation-account
avm.res.azure-stack-hci.cluster
avm.res.batch.batch-account
avm.res.cache.redis
avm.res.cdn.profile
avm.res.cognitive-services.account
avm.res.communication.communication-service
avm.res.communication.email-service
avm.res.compute.availability-set
avm.res.compute.disk-encryption-set
avm.res.compute.disk
avm.res.compute.gallery
avm.res.compute.image
avm.res.compute.proximity-placement-group
avm.res.compute.ssh-public-key
avm.res.compute.virtual-machine-scale-set
avm.res.compute.virtual-machine
avm.res.consumption.budget
avm.res.container-instance.container-group
avm.res.container-registry.registry
avm.res.container-service.managed-cluster
avm.res.data-factory.factory
avm.res.data-protection.backup-vault
avm.res.databricks.access-connector
avm.res.databricks.workspace
avm.res.db-for-my-sql.flexible-server
avm.res.db-for-postgre-sql.flexible-server
avm.res.desktop-virtualization.application-group
avm.res.desktop-virtualization.host-pool
avm.res.desktop-virtualization.scaling-plan
avm.res.desktop-virtualization.workspace
avm.res.dev-ops-infrastructure.pool
avm.res.dev-test-lab.lab
avm.res.digital-twins.digital-twins-instance
avm.res.document-db.database-account
avm.res.document-db.mongo-cluster
avm.res.elastic-san.elastic-san
avm.res.event-grid.domain
avm.res.event-grid.namespace
avm.res.event-grid.system-topic
avm.res.event-grid.topic
avm.res.event-hub.namespace
avm.res.fabric.capacity
avm.res.health-bot.health-bot
avm.res.healthcare-apis.workspace
avm.res.hybrid-compute.machine
avm.res.insights.action-group
avm.res.insights.activity-log-alert
avm.res.insights.component
avm.res.insights.data-collection-endpoint
avm.res.insights.data-collection-rule
avm.res.insights.diagnostic-setting
avm.res.insights.metric-alert
avm.res.insights.private-link-scope
avm.res.insights.scheduled-query-rule
avm.res.insights.webtest
avm.res.key-vault.vault
avm.res.kubernetes-configuration.extension
avm.res.kubernetes-configuration.flux-configuration
avm.res.kusto.cluster
avm.res.load-test-service.load-test
avm.res.logic.workflow
avm.res.machine-learning-services.workspace
avm.res.maintenance.maintenance-configuration
avm.res.managed-identity.user-assigned-identity
avm.res.managed-services.registration-definition
avm.res.management.management-group
avm.res.net-app.net-app-account
avm.res.network.application-gateway-web-application-firewall-policy
avm.res.network.application-gateway
avm.res.network.application-security-group
avm.res.network.azure-firewall
avm.res.network.bastion-host
avm.res.network.connection
avm.res.network.ddos-protection-plan
avm.res.network.dns-forwarding-ruleset
avm.res.network.dns-resolver
avm.res.network.dns-zone
avm.res.network.express-route-circuit
avm.res.network.express-route-gateway
avm.res.network.express-route-port
avm.res.network.firewall-policy
avm.res.network.front-door-web-application-firewall-policy
avm.res.network.front-door
avm.res.network.ip-group
avm.res.network.load-balancer
avm.res.network.local-network-gateway
avm.res.network.nat-gateway
avm.res.network.network-interface
avm.res.network.network-manager
avm.res.network.network-security-group
avm.res.network.network-watcher
avm.res.network.p2s-vpn-gateway
avm.res.network.private-dns-zone
avm.res.network.private-endpoint
avm.res.network.private-link-service
avm.res.network.public-ip-address
avm.res.network.public-ip-prefix
avm.res.network.route-table
avm.res.network.service-endpoint-policy
avm.res.network.trafficmanagerprofile
avm.res.network.virtual-hub
avm.res.network.virtual-network-gateway
avm.res.network.virtual-network
avm.res.network.virtual-wan
avm.res.network.vpn-gateway
avm.res.network.vpn-server-configuration
avm.res.network.vpn-site
avm.res.operational-insights.workspace
avm.res.operations-management.solution
avm.res.portal.dashboard
avm.res.power-bi-dedicated.capacity
avm.res.purview.account
avm.res.recovery-services.vault
avm.res.relay.namespace
avm.res.resource-graph.query
avm.res.resources.deployment-script
avm.res.resources.resource-group
avm.res.search.search-service
avm.res.service-bus.namespace
avm.res.service-fabric.cluster
avm.res.service-networking.traffic-controller
avm.res.signal-r-service.signal-r
avm.res.signal-r-service.web-pub-sub
avm.res.sql.instance-pool
avm.res.sql.managed-instance
avm.res.sql.server
avm.res.storage.storage-account
avm.res.synapse.private-link-hub
avm.res.synapse.workspace
avm.res.virtual-machine-images.image-template
avm.res.web.connection
avm.res.web.hosting-environment
avm.res.web.serverfarm
avm.res.web.site
avm.res.web.static-site
avm.utl.types.avm-common-types

Type of Change

  • Update to CI Environment or utilities (Non-module affecting changes)
  • Azure Verified Module updates:
    • Bugfix containing backwards-compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in version.json:
      • Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description.
      • The bug was found by the module author, and no one has opened an issue to report it yet.
    • Feature update backwards compatible feature updates, and I have bumped the MINOR version in version.json.
    • Breaking changes and I have bumped the MAJOR version in version.json.
    • Update to documentation

Checklist

  • I'm sure there are no other open Pull Requests for the same update/change
  • I have run Set-AVMModule locally to generate the supporting module files.
  • My corresponding pipelines / checks run clean and green without any errors or warnings

@microsoft-github-policy-service microsoft-github-policy-service bot added Needs: Triage 🔍 Maintainers need to triage still Type: AVM 🅰️ ✌️ Ⓜ️ This is an AVM related issue labels Feb 3, 2025
@ReneHezser ReneHezser marked this pull request as ready for review February 12, 2025 17:47
@ReneHezser ReneHezser requested a review from a team as a code owner February 12, 2025 17:47
@avm-team-linter avm-team-linter bot added the Needs: Core Team 🧞 This item needs the AVM Core Team to review it label Feb 12, 2025
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd suggest to run the static validation step only on the whole library before merge

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. No red pipeline is a result of this PR. I've updated all res modules to fulfill the new spec.

@AlexanderSehr AlexanderSehr self-requested a review February 14, 2025 10:04
@AlexanderSehr
Copy link
Contributor

Hey @ReneHezser, just added one ask as a comment and resolved the rest. Looks legit. 💪

@ReneHezser ReneHezser requested review from a team as code owners February 21, 2025 18:41
@ReneHezser ReneHezser requested a review from eriqua February 21, 2025 22:28
@AlexanderSehr
Copy link
Contributor

AlexanderSehr commented Feb 21, 2025

Hey @ReneHezser,
I'll review the PR over the weekend.

Edit: Done

Copy link
Contributor

@AlexanderSehr AlexanderSehr Feb 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comment regarding workflows

To remidiate

  • avm.res.network.virtual-network would run if you pull latest upstream. The module is not orhpaned anymore
  • avm.res.document-db.database-account failed due to transient error

For Info

  • elastic-san/elastic-san fails due to a bug in the If a UDT definition [managedIdentitiesType] exists and supports system-assigned-identities, the template should have an output for its principal ID. test. This is not caused by your changes, but I found it worth pointing out as this was not tracked (- created PR fix: Fixed MSI UDT test to only check for the required output if the imported type is also used by a parameter  #4498)
  • azd/apim-api failed due to the module using \n as a line-ending, but your local devise used \r\n. This is already an issue in main and not related to your code. But it's an interesting takeaway - presumably caused by a contributor on Linux/Mac.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs: Core Team 🧞 This item needs the AVM Core Team to review it Needs: Triage 🔍 Maintainers need to triage still Type: AVM 🅰️ ✌️ Ⓜ️ This is an AVM related issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants