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
orassur 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_providersdans le module : la plateforme les compare auxProviderdu tenant. - Exposez des outputs pour tout ce qu'un autre Workspace ou une
Appdevra connaître (identifiants, adresses, noms) : c'est le seul canal entre Workspaces. - Pas de backend ni de bloc
providerfigé 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.