CDCgov / prime-reportstream

ReportStream is a public intermediary tool for delivery of data between different parts of the healthcare ecosystem.
https://reportstream.cdc.gov
Creative Commons Zero v1.0 Universal
72 stars 40 forks source link

Importing JosiahSiegel GHA: AzViz-action@v1.0.4 #16156

Open emvaldes opened 1 month ago

emvaldes commented 1 month ago

Profile: JosiahSiegel Objective: Azure Visualizer aka 'AzViz' - PowerShell module to automatically generate Azure resource topology diagrams by just typing a PowerShell cmdlet and passing the name of one or more Azure Resource Group(s). Note: Cloud admins are not anymore doomed to manually document a cloud environment! The pain of inheriting an undocumented cloud landscape to support is gone. It is capable of:

Target: AzViz-action@v1.0.4 : 663e242 Latest: AzViz-action (0ae465075a8f0401db5256f1ea35193ee08ec687)

Warning: This is a clone to another repository PrateekKumarSingh/AzViz

The AzViz-action is a GitHub Action designed to automate the generation of Azure resource topology diagrams directly within your CI/CD pipelines. It leverages the AzViz PowerShell module to visualize Azure resources, aiding in documentation and infrastructure management.

Key Features:

Inputs:

Technical Evaluation:

The action is implemented as a composite action, executing a PowerShell script (viz_run.ps1) to perform the visualization tasks. The workflow includes the following steps:

  1. Graphviz Installation: Installs Graphviz, a prerequisite for AzViz, using package managers appropriate for the runner's operating system.
  2. AzViz Module Installation: Installs and imports the AzViz PowerShell module.
  3. Azure Authentication: Requires prior authentication using the azure/login action with enable-AzPSSession: true to establish a session with Azure.
  4. Visualization Execution: Runs the viz_run.ps1 script with the provided inputs to generate the topology diagram.

Usage Example:

jobs:
  generate-viz:
    runs-on: ubuntu-latest
    steps:
      - name: Login to Azure
        uses: azure/login@v1
        with:
          creds: ${{ secrets.SERVICE_PRINCIPAL_CREDS }}
          enable-AzPSSession: true
      - name: Generate Azure Resource Topology Diagram
        uses: JosiahSiegel/AzViz-action@v1.0.3
        with:
          resource-group: 'myResourceGroup'
          out-file: 'output/viz.svg'
          sub-name: 'MySubscription'
      - name: Upload Diagram
        uses: actions/upload-artifact@v2
        with:
          name: viz
          path: output/*

Relevance to Your Pipeline:

If your pipeline involves managing Azure resources and you require automated, up-to-date visualizations of your infrastructure, the AzViz-action provides significant value. It facilitates better understanding and documentation of resource configurations and relationships. However, if your workflow does not involve Azure resources or if such visualizations are not necessary, this action may be considered non-essential.

Conclusion:

The AzViz-action offers a streamlined solution for generating Azure resource topology diagrams within GitHub workflows. Its utility depends on your pipeline's specific requirements for infrastructure visualization and documentation. Assessing your current processes for managing and documenting Azure resources will help determine the action's relevance to your workflows.

emvaldes commented 1 month ago

This external repo is now inserted in the file structure at: .github/actions/azviz-action in the importing-gha branch.

emvaldes commented 1 month ago
github.action_path
github.event.inputs.depth
github.event.inputs.direction
github.event.inputs.exclude-types
github.event.inputs.format
github.event.inputs.out-file
github.event.inputs.resource-group
github.event.inputs.splines
github.event.inputs.sub-name
github.event.inputs.theme
github.event.inputs.verbosity
inputs.depth
inputs.direction
inputs.exclude-types
inputs.format
inputs.out-file
inputs.resource-group
inputs.splines
inputs.sub-name
inputs.theme
inputs.verbosity
secrets.SERVICE_PRINCIPAL_CREDS
secrets.TEST_RG
emvaldes commented 1 month ago

This GitHub Action (targeted to be imported as a remote/external) is no longer in consideration until we can further evaluate if they are worth the effort to be imported at a later stage.

Warning: I have placed it into the "IceBox" stage as it is out of scope for now.