Aller au contenu principal

Publier un module

À venir

Fonctionnalité en préparation. Cette page décrit l'interface cible pour recueillir vos retours ; rien n'est encore utilisable.

Un Workspace ne référence que des modules publiés en OCI (format natif d'OpenTofu 1.10 et plus, type d'artefact application/vnd.opentofu.modulepkg). Un dépôt git n'est pas accepté : la version appliquée est toujours un tag ou un digest immuable.

Prérequis​

  • OpenTofu ≥ 1.10 et oras sur votre poste, ou dans la CI.
  • Un dépôt du registre de votre tenant pour accueillir le module (Dépôts), ou un registre externe accessible.

Empaqueter et pousser​

Le module est une archive de son dossier racine (fichiers .tf, sous-modules, README) :

cd modules/ovh-network
tar -czf /tmp/ovh-network.tgz .
oras push ovh-gra-0.registry.dev.stackngo.fr/acme/ovh-network:1.4.0 \
--artifact-type application/vnd.opentofu.modulepkg \
/tmp/ovh-network.tgz:archive/tar+gzip
Pushed [registry] ovh-gra-0.registry.dev.stackngo.fr/acme/ovh-network:1.4.0
Digest: sha256:9f1c…

Gardez le digest : un Workspace qui le référence est insensible à un tag réécrit.

Vérifier en local​

tofu init -from-module="oci://ovh-gra-0.registry.dev.stackngo.fr/acme/ovh-network?tag=1.4.0" /tmp/test

Bonnes pratiques​

  • Versionnez avec des tags sémantiques, et ne réécrivez jamais un tag publié.
  • Déclarez required_providers dans le module : la plateforme les compare aux Provider du tenant.
  • Exposez des outputs pour tout ce qu'un autre Workspace ou une App devra connaître (identifiants, adresses, noms) : c'est le seul canal entre Workspaces.
  • Pas de backend ni de bloc provider figé dans le module : la plateforme les génère.
  • Pour une rétention raisonnable, une politique keepTagsRegex: ["^\\d+\\.\\d+\\.\\d+$"] sur le dépôt garde les versions publiées et purge les essais.

Voir aussi​