[72] Correction ci #250

Closed
justine wants to merge 0 commits from justine/72-garde-terraform into develop
Member

Ce que ça change

Les tâches terraform et checkov ne travaillaient pas quand il fallait : elles démarraient sur chaque demande de fusion et tournaient en entier, si bien qu'une correction de CSS téléchargeait Terraform et rougissait sur une
faute d'infrastructure arrivée par quelqu'un d'autre. Elles démarrent toujours — c'est ce qui rend le blocage possible — mais leurs étapes se désistent désormais quand la demande ne touche à rien de Terraform ; et les huit
constats que checkov levait sur stockage.tf portent maintenant leur motif, écrit sur la ressource.

Closes #72

Preuve

$ tests/ci/test-terraform-touche.sh
ok une poussée hors demande de fusion contrôle tout
ok une demande sans branche de base connue contrôle tout
ok une base introuvable contrôle tout, au lieu de se taire
ok une demande qui ne touche que README se désiste
ok « infra/terraform/main.tf » réveille les tâches Terraform (+ 6 autres chemins)
ok un seul fichier Terraform au milieu d'autres suffit à réveiller les tâches
Le désistement des tâches Terraform ne rend « non » que sur un diff obtenu et vide.

$ checkov --directory infra/terraform --config-file infra/terraform/.checkov.yml --compact
Passed checks: 9, Failed checks: 0, Skipped checks: 9 # code 0, rapport JUnit produit

$ tests/ci/test-garde-terraform.sh # CKV_AZURE_59 n'a PAS été éteinte ailleurs
ok checkov nomme CKV_AZURE_59, la règle sur l'accès public au stockage
2 garde(s) éprouvée(s) : le fichier fautif est bien refusé.

$ terraform fmt -check -recursive infra/terraform && tflint --chdir=infra/terraform && echo OK
OK

Les treize autres bancs sont inchangés ; actionlint, shellcheck, yamllint et zizmor sont propres sur ci.yml.

Si ça touche infra/terraform/

Le plan est vide. Ce travail n'ajoute aucun argument Terraform : seulement des commentaires #checkov:skip=… et leur justification. Aucune propriété Azure ne change, il n'y a donc rien à appliquer — mais la trace reste due, et
c'est justement elle qui prouve que le plan est bien vide.

  • terraform plan -out=tfplan ci-dessous, avant la fusion — attendu : No changes.
  • terraform apply tfplan — sans objet, le plan ne porte aucun changement
  • Le pair a relu le plan, pas seulement le code

Relecture

  • Un pair a relu et laissé un commentaire, même court
  • Ses remarques sont traitées, ou une réponse explique pourquoi elles ne le sont pas

Ce qui suit le code

  • docs/runbooks/ mis à jour, un geste d'exploitation a changé — ci.md : sous-section « Le désistement », et l'état des exceptions checkov

Où regarder en priorité

  1. Le sens du doute dans terraform-touche.sh. Un « oui » de trop coûte deux minutes d'exécuteur ; un « non » de trop laisse fusionner une faute d'infrastructure sous une tâche verte, que personne ne verra puisqu'il n'y a rien
    à voir. Tout ce qui n'est pas un diff obtenu et vide vaut donc « on contrôle tout ». C'est ce que tient le banc.
  2. Les huit exceptions sont sur la ressource, pas dans .checkov.yml. Une exception globale éteindrait la règle pour la ressource que quelqu'un ajoutera demain sans le savoir. Deux d'entre elles sont marquées DÉCISION OUVERTE
    et non « refus » : CKV2_AZURE_38 (suppression réversible) et CKV2_AZURE_41 (expiration des SAS, qui appartient au #70). Je n'ai rien tranché à leur place — à confirmer que c'est bien le partage voulu.
  3. CKV2_AZURE_21 a déménagé. Elle était globale au #72, au motif que « ce dépôt ne gère aucun compte de stockage » ; le #69 a adopté le compte, ce motif est devenu faux, la règle lève toujours. Elle est désormais posée sur le
    conteneur d'archive.tf avec un motif vérifiable. .checkov.yml ne porte plus aucune exception globale.

Hors périmètre, mais à savoir : shellcheck échoue déjà sur develop (tests/ci/test-supervision.sh:495, SC2034), la tâche meta est donc rouge pour tout le monde. Je ne l'ai pas touché.

Ce que ça change Les tâches terraform et checkov ne travaillaient pas quand il fallait : elles démarraient sur chaque demande de fusion et tournaient en entier, si bien qu'une correction de CSS téléchargeait Terraform et rougissait sur une faute d'infrastructure arrivée par quelqu'un d'autre. Elles démarrent toujours — c'est ce qui rend le blocage possible — mais leurs étapes se désistent désormais quand la demande ne touche à rien de Terraform ; et les huit constats que checkov levait sur stockage.tf portent maintenant leur motif, écrit sur la ressource. Closes #72 Preuve $ tests/ci/test-terraform-touche.sh ok une poussée hors demande de fusion contrôle tout ok une demande sans branche de base connue contrôle tout ok une base introuvable contrôle tout, au lieu de se taire ok une demande qui ne touche que README se désiste ok « infra/terraform/main.tf » réveille les tâches Terraform (+ 6 autres chemins) ok un seul fichier Terraform au milieu d'autres suffit à réveiller les tâches Le désistement des tâches Terraform ne rend « non » que sur un diff obtenu et vide. $ checkov --directory infra/terraform --config-file infra/terraform/.checkov.yml --compact Passed checks: 9, Failed checks: 0, Skipped checks: 9 # code 0, rapport JUnit produit $ tests/ci/test-garde-terraform.sh # CKV_AZURE_59 n'a PAS été éteinte ailleurs ok checkov nomme CKV_AZURE_59, la règle sur l'accès public au stockage 2 garde(s) éprouvée(s) : le fichier fautif est bien refusé. $ terraform fmt -check -recursive infra/terraform && tflint --chdir=infra/terraform && echo OK OK Les treize autres bancs sont inchangés ; actionlint, shellcheck, yamllint et zizmor sont propres sur ci.yml. Si ça touche infra/terraform/ Le plan est vide. Ce travail n'ajoute aucun argument Terraform : seulement des commentaires #checkov:skip=… et leur justification. Aucune propriété Azure ne change, il n'y a donc rien à appliquer — mais la trace reste due, et c'est justement elle qui prouve que le plan est bien vide. - [ ] terraform plan -out=tfplan ci-dessous, avant la fusion — attendu : No changes. - [x] terraform apply tfplan — sans objet, le plan ne porte aucun changement - [ ] Le pair a relu le plan, pas seulement le code Relecture - [ ] Un pair a relu et laissé un commentaire, même court - [ ] Ses remarques sont traitées, ou une réponse explique pourquoi elles ne le sont pas Ce qui suit le code - [x] docs/runbooks/ mis à jour, un geste d'exploitation a changé — ci.md : sous-section « Le désistement », et l'état des exceptions checkov Où regarder en priorité 1. Le sens du doute dans terraform-touche.sh. Un « oui » de trop coûte deux minutes d'exécuteur ; un « non » de trop laisse fusionner une faute d'infrastructure sous une tâche verte, que personne ne verra puisqu'il n'y a rien à voir. Tout ce qui n'est pas un diff obtenu et vide vaut donc « on contrôle tout ». C'est ce que tient le banc. 2. Les huit exceptions sont sur la ressource, pas dans .checkov.yml. Une exception globale éteindrait la règle pour la ressource que quelqu'un ajoutera demain sans le savoir. Deux d'entre elles sont marquées DÉCISION OUVERTE et non « refus » : CKV2_AZURE_38 (suppression réversible) et CKV2_AZURE_41 (expiration des SAS, qui appartient au #70). Je n'ai rien tranché à leur place — à confirmer que c'est bien le partage voulu. 3. CKV2_AZURE_21 a déménagé. Elle était globale au #72, au motif que « ce dépôt ne gère aucun compte de stockage » ; le #69 a adopté le compte, ce motif est devenu faux, la règle lève toujours. Elle est désormais posée sur le conteneur d'archive.tf avec un motif vérifiable. .checkov.yml ne porte plus aucune exception globale. Hors périmètre, mais à savoir : shellcheck échoue déjà sur develop (tests/ci/test-supervision.sh:495, SC2034), la tâche meta est donc rouge pour tout le monde. Je ne l'ai pas touché.
justine closed this pull request 2026-09-09 14:32:02 +00:00
All checks were successful
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 9s
Required
Details
Intégration / Terraform — format, validité et lint (pull_request) Successful in 28s
Required
Details
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 46s
Required
Details
Intégration / Workflows — lint et audit de sécurité (pull_request) Successful in 22s
Required
Details
Intégration / Checkov — audit de la configuration (pull_request) Successful in 49s
Required
Details
Infra Ansible / Playbooks Ansible valides (pull_request) Successful in 2m13s
Intégration / Python — qualité, tests et dépendances (pull_request) Successful in 5m50s
Required
Details

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
g2/enervision!250
No description provided.