OpenTF : des éditeurs vent debout contre le changement de licence de Terraform

Sans véritable surprise, le changement de licence chez HashiCorp provoque la discorde auprès des éditeurs et usagers qui exploitent Terraform. L’affaire prend racine avant l’adoption du modèle commercial chez l’éditeur californien. Celui-ci aurait ignoré des contributions open source, selon les allégations de membres de la communauté.

Le logiciel d’infrastructure as code Terraform est au centre d’une controverse concernant les contributions open source depuis que HashiCorp a rendu publique sa décision de passer à une licence commerciale.

En réponse à la mesure prise par HashiCorp, un consortium d’éditeurs dont les activités reposent sur Terraform, ainsi que des contributeurs individuels ont créé l’initiative OpenTF.

Le collectif menace de forker le logiciel d’IaC si HashiCorp refuse de reconsidérer son changement de licence. Ce faisant, les organisateurs d’OpenTF et d’autres contributeurs de la communauté Terraform ont démenti une des affirmations de HashiCorp pour justifier son adoption de la licence Business Source (BSL). L’éditeur californien assure que ses concurrents ont utilisé le code source de Terraform sans contribuer en retour.

« C’est inexact et trompeur », indique le manifeste publié sur le site OpenTF.org, qui a été lancé cette semaine. « Beaucoup d’éditeurs impactés par le passage à la licence BSL ont apporté d’importantes contributions à la communauté Terraform ».

Le site énumère ensuite des exemples de contributions, notamment des mises à jour des binaires principaux, des modules Terraform, des outils tels que Terragrunt et tfsec, ainsi que de la documentation et des ressources pédagogiques.

L’OpenTF cherche la conciliation, mais brandit la fourche

Les organisateurs d’OpenTF ont déclaré que le meilleur scénario serait que HashiCorp reconsidère le changement de licence de Terraform. Le fait de fourcher (forker) l’outil IaC est présenté comme un éventuel « plan de repli ».

« Chaque fois que l’on fait bifurquer un produit, on duplique les efforts, et… c’est dans l’intérêt de personne de faire deux fois le même travail », avance Sebastian Stadil, fondateur et PDG de Scalr, qui commercialise un back-end d’opérations à distance pour Terraform. « Idéalement, Terraform restera open source, mais s’il ne peut pas l’être, le manifeste vise à préserver une voie ouverte ».

Cependant, les cosignataires du manifeste Open Terraform ont également promis des ressources, notamment des ingénieurs à temps plein (ETP), pour rendre possible ce fork de Terraform, si HashiCorp reste sourd à leur demande.

Des engagements accueillis avec incrédulité par un membre de la communauté Terraform.

« Vous me dites que trois entreprises peuvent s’engager à fournir 13 ETP sur cinq ans », écrit Rick Rackow, ingénieur SRE chez TomTom, un éditeur de solutions de géolocalisation basée à Amsterdam, dans un message publié sur LinkedIn cette semaine. « Il est étrange que 13 ETP aient si peu de contributions [récentes] [à Terraform], à moins que, peut-être, ces entreprises n’aient pas eu 13 personnes engagées pour contribuer à Terraform jusqu’à présent et qu’elles ne puissent pas construire leur entreprise sur un projet maintenu par une autre entreprise. »

En réponse aux doutes exprimés par Rick Rackow, un responsable d’une entreprise qui a promis des ressources techniques à OpenTF prétend que les tentatives précédentes de contribution à Terraform ont été soit rejetées, soit ignorées.

« Les chances de voir nos contributions acceptées étaient nulles », assure Marcin Wyszynski, chef de produit chez Spacelift, un des éditeurs potentiellement affectés par le changement de licence opéré par HashiCorp. « C’est vraiment dommage, car le fait de pouvoir contribuer à Terraform nous aurait grandement facilité la vie ».

L’OpenTF dénonce la stagnation de la version open source de Terraform

Invité à citer un exemple précis de contribution rejetée dans le fil de discussion LinkedIn, Marcin Wyszynski s’est dérobé, déclarant « qu’il serait trop tôt pour jouer cette carte, si notre meilleure option est de recoller les morceaux ».

Sebastian Stadil rappelle le nombre de pull requests ouvertes, ou de changements en attente qui n’ont pas encore été traités, sur la page GitHub de Terraform – 188 au total depuis cette semaine. Il y a également plus de contributions proposées qui sont passées à la trappe parmi les milliers de demandes fermées, ajoute le dirigeant de Scalr.

« Il y a des centaines et des centaines de contributions que les gens ont essayé de faire, mais ils [les ingénieurs d’HashiCorp] ne les ont pas acceptées ».
Sebastian StadilCEO et cofondateur, Scalr

« Il y a des centaines et des centaines de contributions que les gens ont essayé de faire, mais ils [les ingénieurs d’HashiCorp] ne les ont pas acceptées », déclare-t-il lors d’un entretien mené cette semaine auprès de SearchITOperations, une publication sœur du MagIT. « Ils ont une mainmise importante sur l’évolution de ce produit ».

M. Stadil persiste en affirmant que les développeurs de son entreprise ont cessé d’essayer d’apporter des contributions au projet il y a plusieurs années, après que les relations de HashiCorp avec la communauté ont commencé à changer, selon lui, à l’approche de son introduction en bourse en décembre 2021.

« Au début [Terraform], était un véritable projet open source, collaboratif et sous licence [open source] », énonce Sebastian Stadil. « Puis, il y a quelques années, il était sous licence open source, mais non collaboratif, et maintenant, il n’est ni collaboratif ni sous licence open source ».

Comme Marcin Wyszynski, Sebastian Stadil n’a pas fourni d’exemple précis de pull requests sur le dépôt GitHub de Terraform émanant de son entreprise qui aurait été rejetée ou ignorée.

Cependant, un autre contributeur de Terraform non affilié à l’OpenTF en a fourni un. Robert Hafner, auteur du livre à paraître « Terraform in Depth », a mentionné sa pull request numéro 28603, intitulée « standalone client-side remote state encryption ».

Ouverte en mai 2021, la modification proposée ajouterait de la sécurité à Terraform, selon Robert Hafner, en permettant aux fichiers d’état d’infrastructure d’être chiffrés côté client, sous le contrôle de l’utilisateur, et non plus seulement côté serveur. Le changement proposé comprenait des tests, qui ont tous été réussis, et ne présentait pas de changements incompatibles avec l’existant, allègue-t-il.

« Pour une raison ou une autre, HashiCorp a complètement ignoré la demande de modification », constate Robert Hafner. « Ils ne disent pas aux gens ce qu’il faut changer pour l’accepter et ne fournissent aucun retour d’information. Ils ignorent tout simplement la demande d’extension ».

« Le problème, c’est que cela envoie un signal », interprète-t-il. « Si vous êtes un développeur et que vous voyez des demandes populaires, bien conçues et testées qui sont ignorées, vous n’allez pas perdre votre temps à essayer de contribuer à votre tour ».

Un autre exemple, mis au jour par la rédaction de Techtarget [propriétaire du MagIT], concerne la pull request 31863. Celle-ci a été ouverte en septembre 2022 et est intitulée « GitHub Workflows security hardening » (renforcement de la sécurité des flux GitHub).

La demande a reçu une réponse positive d’un représentant de HashiCorp sur son fil GitHub, même si la réponse indiquait que HashiCorp n’acceptait généralement pas les pulls requests liées au processus de construction et de livraison de Terraform.

En décembre 2022, après des demandes de suivi de la part du contributeur, le même employé de HashiCorp s’est excusé pour la réponse tardive et a déclaré que les mainteneurs principaux devraient encore examiner le changement, mais que l’équipe de sécurité de HashiCorp avait approuvé l’approche générale. Le fil de discussion GitHub pour cette demande de modification se termine là.

Changement de culture ou manque de personnel ?

Alors que certains organisateurs de l’OpenTF ont perçu un changement dans l’attitude de HashiCorp concernant les pull requests Terraform en attente, Rick Rackow rappelle les déclarations publiques et la documentation de HashiCorp qui attribuent au manque de personnel la lenteur des réponses aux contributions de la communauté.

« Le PR 31863 n’a pas l’air de subir un blocage délibéré, mais plutôt une pénurie de personnel, ce qui corrobore les déclarations publiques des représentants d’HashiCorp », note-t-il.

M. Rackow cite un billet de blog de HashiCorp datant de septembre 2021 qui fait référence à un « défi d’échelle » pour l’entreprise, étant donné la croissance de Terraform depuis sa création en 2014 pour englober plus de 1 000 providers Terraform, parmi d’autres composants du projet.

« Bien que nous ayons de nombreuses équipes, certains changements de personnel à court terme ont eu un impact sur notre capacité à examiner les changements apportés à Terraform Core en temps opportun », indique le billet de blog. Il fait également référence à une mise à jour de la documentation de contribution GitHub du projet, destinée à « aider à définir les attentes des contributeurs potentiels quant au moment où une réponse peut être attendue ».

Cette mise à jour indiquait : « À l’heure actuelle, nous n’avons pas de processus formel pour examiner les propositions extérieures qui modifient de manière significative le flux de travail de Terraform, ses principaux schémas d’utilisation et son langage. En outre, certaines propositions apparemment simples peuvent avoir des effets profonds sur Terraform, c’est pourquoi nous suggérons fortement de commencer par une proposition portant sur un problème précis. »

Bien que cela constitue une explication possible pour les retards et les lacunes dans la révision des contributions communautaires à Terraform, cela ne contredit pas l’affirmation des organisateurs de l’OpenTF selon laquelle HashiCorp a maintenu un contrôle strict sur les mises à jour du projet.

HashiCorp n’a pas répondu à la demande de commentaire effectuée par la rédaction de Techtarget au moment de publier cet article.

Un manifeste populaire malgré le scepticisme des experts

Un utilisateur des produits de HashiCorp se dit favorable à l’appel d’OpenTF pour que HashiCorp reconsidère le changement de licence, au moins pour Terraform.

« Ce qui est intéressant, c’est que rien de tel ne se produit pour Packer, Vault et d’autres produits », note Andrey Devyatkin, consultant senior en ingénierie cloud chez Hippo, un éditeur new-yorkais d’une application de gestion du prix des médicaments sur ordonnance. « Si j’étais HashiCorp, je conserverais la licence précédente pour Terraform et la changerais pour le reste des produits ».

« Si j’étais HashiCorp, je conserverais la licence précédente pour Terraform et la changerais pour le reste des produits ».
Andrey Devyatkinconsultant senior ingénierie cloud, Hippo

Il existe un effort pour forker HashiCorp Vault sur GitHub, lancé en 2020, qui n’a pas trouvé de soutien généralisé et qui reste des milliers de commits derrière le dépôt officiel de Vault.

Pendant ce temps-là, la popularité d’OpenTF grimpe. Le 17 août, les organisateurs déclaraient avoir rassemblé plus de 70 soutiens au manifeste et plus de 1000 étoiles sur GitHub. Le 18 août 2023 à 11 h 10, le manifeste d’OpenTF a récolté plus de 1300 étoiles sur GitHub et 349 signatures uniques sur le site Web, dont 80 sont attribuées à des entreprises, 262 à des particuliers (la fondation citée dans la liste n’existe pas et l’on ne compte pas un doublon N.D.L.R), 6 à d’autres projets open source.

Malgré cela, d’autres observateurs de l’industrie ont exprimé des doutes sur la viabilité d’un fork de Terraform.

Selon le site Web de l’OpenTF, l’objectif, en cas de fork, est de donner le projet à une fondation open source établie, mais aucune fondation spécifique n’a été nommée. HashiCorp est un membre Silver de la Cloud Native Computing Foundation et il est peu probable qu’il permette à OpenTF de donner un Terraform forké, selon Rick Rackow – tout comme il est peu probable que HashiCorp fasse un tel don de lui-même.

« Aucune fondation saine d’esprit n’acceptera un fork de Terraform pour l’instant ».
Rick RackowIngénieur Senior SRE, TomTom

« Je vois mal HashiCorp faire don de Terraform. Ils auraient pu le faire tout de suite sans [subir] les problèmes de licence et les mauvaises relations publiques », commente Rick Rackow. « Aucune fondation saine d’esprit n’acceptera un fork de Terraform pour l’instant ».

Un autre expert de l’industrie n’a pas manqué d’insister sur le fait que le projet d'embranchement n’existe que sur le papier.

« Jusqu’à ce que cela devienne une réalité et non une prétendue menace, je n’y accorderais pas trop de crédit », lance Donnie Berkholz, fondateur et analyste en chef du cabinet Platify Insights. « Le dépôt [OpenTF] contient un manifeste, pas un fork du code source de Terraform, et la grande majorité des engagements sont vagues ».

« Je doute que quiconque chez HashiCorp tremble dans ses bottes ».
Andi MannCTO et fondateur, Sageable

Un troisième observateur de l’industrie rejette en bloc l’initiative d’OpenTF, allant jusqu’à la qualifier de « ridicule ».

« Je doute que quiconque chez HashiCorp tremble dans ses bottes », assène Andi Mann, directeur technique mondial et fondateur de Sageable, une société de conseil en technologie à Boulder, au Colorado. « Il me semble que ces contestataires crient dans le vide, se battent contre des moulins à vent… Je vous laisse le choix de la métaphore éculée pour qualifier cette action inutile ».

Pour approfondir sur Open Source