terraform-azurerm-set-diff-analyzer

Par github · awesome-copilot

Analysez la sortie JSON d'un plan Terraform pour l'AzureRM Provider afin de distinguer les faux positifs (changements d'ordre uniquement dans les attributs de type Set) des modifications réelles de ressources. À utiliser lors de l'examen des sorties `terraform plan` pour les ressources Azure telles qu'Application Gateway, Load Balancer, Firewall, Front Door, NSG, et d'autres ressources présentant des attributs de type Set qui génèrent des diffs parasites dus à des changements d'ordre interne.

npx skills add https://github.com/github/awesome-copilot --skill terraform-azurerm-set-diff-analyzer

Terraform AzureRM Set Diff Analyzer

Une skill pour identifier les « faux positifs de diff » dans les plans Terraform causés par les attributs de type Set du Provider AzureRM et les distinguer des véritables modifications.

When to Use

  • terraform plan affiche de nombreuses modifications, mais vous n'avez ajouté/supprimé qu'un seul élément
  • Application Gateway, Load Balancer, NSG, etc. affichent « tous les éléments modifiés »
  • Vous voulez filtrer automatiquement les faux positifs de diff en CI/CD

Background

Le type Set de Terraform compare par position plutôt que par clé, donc lors de l'ajout ou la suppression d'éléments, tous les éléments apparaissent comme « modifiés ». C'est un problème général de Terraform, mais il est particulièrement visible avec les ressources AzureRM qui utilisent massivement les attributs de type Set comme Application Gateway, Load Balancer et NSG.

Ces « faux positifs de diff » n'affectent pas réellement les ressources, mais ils rendent difficile la révision de la sortie terraform plan.

Prerequisites

  • Python 3.8+

Si Python n'est pas disponible, installez via votre gestionnaire de paquets (par exemple, apt install python3, brew install python3) ou depuis python.org.

Basic Usage

# 1. Generate plan JSON output
terraform plan -out=plan.tfplan
terraform show -json plan.tfplan > plan.json

# 2. Analyze
python scripts/analyze_plan.py plan.json

Troubleshooting

  • python: command not found : Utilisez python3 à la place, ou installez Python
  • ModuleNotFoundError : Le script utilise uniquement la bibliothèque standard ; assurez-vous que Python 3.8+

Detailed Documentation

Skills similaires