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 planaffiche 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: Utilisezpython3à la place, ou installez PythonModuleNotFoundError: Le script utilise uniquement la bibliothèque standard ; assurez-vous que Python 3.8+
Detailed Documentation
- scripts/README.md - Toutes les options, formats de sortie, codes de sortie, exemples CI/CD
- references/azurerm_set_attributes.md - Ressources et attributs supportés