Le registre Pulumi est l'indice global de tout ce que vous pouvez faire avec Pulumi. La maison de Pulumi.com/registry.
Nous sommes toujours impatients d'étendre cet index avec de nouveaux packages Pulumi. Que vous souhaitiez faire rédiger un nouveau fournisseur natif, combler un fournisseur à partir de l'écosystème Terraform ou créer un composant cloud avec les meilleures pratiques et les défauts sensibles intégrés, nous aimerions travailler avec vous pour le répertorier sur le registre Pulumi. Pour commencer, utilisez notre guide sur la création d'un package Pulumi.
Pour publier un package entre communautaire sur le registre Pulumi en tant que membre de la communauté:
docs/_index.md , qui doit contenir un résumé de l'objectif du fournisseur (requis) avec un échantillon de code (préféré). Ce fichier rendra la page d'index pour votre fournisseur (exemple).docs/installation-configuration.md , qui doit contenir des liens vers les packages SDK dans chaque langue ainsi que des instructions pour configurer le fournisseur (par exemple, des informations d'identification requises et / ou des variables d'environnement). Ce fichier sera rendu en tant que page d'installation et de configuration pour votre fournisseur (exemple).Pour obtenir de l'aide, veuillez contacter la communauté Pulumi Slack ou contacter nous via ce formulaire de contact.
Une fois que le membre de la communauté a soumis le RP pour ajouter le fournisseur au registre, un membre du personnel de Pulumi devrait effectuer les étapes suivantes:
Examiner le PR. Assurez-vous que le PR a été rediffonable si nécessaire avant la fusion. Si OK, fusionnez.
Une fois le PR fusionné, une tâche planifiée ramassera les modifications et créera un PR pour ajouter les métadonnées du package au registre. Une métadonnée correcte PR (exemple) comprendra les fichiers suivants, au minimum:
data/registry/${PROVIDER}.yaml qui comprend des métadonnées structurées sur le fournisseur. Ce fichier est toujours inclus avec tous les relations publiques qui sont générés pour une nouvelle version.themes/default/content/registry/packages/${PROVIDER}/installation-configuration.md , comme décrit ci-dessus. Ce fichier doit être inclus dans la première version, mais ne sera inclus que dans les PR suivis si le contenu a changé.themes/default/content/registry/packages/exoscale/_index.md , comme décrit ci-dessus. Ce fichier doit être inclus dans la première version, mais ne sera inclus que dans les PR suivis si le contenu a changé.Facultativement, le PR peut inclure des fichiers de contenu supplémentaires comme des guides pratiques s'ils sont présents dans le repo en amont.
Fusionner le PR si ça a l'air correct.
Dans Pulumi / Docs, une tâche planifiée s'exécute toutes les heures et ramassera toutes les modifications dans ce référentiel, générera des fichiers à partir du schéma du fournisseur et data/registry/${PROVIDER}.yaml et publier à Pulumi.com.
Cette tâche planifiée manque actuellement de surveillance adéquate et doit être surveillée pour s'assurer qu'elle s'exécute correctement à la fin . (S'il échoue, il bloquera toutes les mises à jour de Pulumi.com, y compris le marketing et les pages DOCS entretenues manuellement.)
Ce référentiel est un module Hugo qui sert de serveur de développement pour faciliter le travail sur les pages qui composent le registre Pulumi. Il contient tous les fichiers Hugo content and layouts , JavaScript, CSS et les composants Web. comprenant ce que vous voyez sur https://pulumi.com/registry
Nous construisons les bundles JavaScript et CSS qui alimentent le registre Pulumi ici, sous le répertoire themes/default/theme . Si vous apportez des modifications du style le long des changements de contenu côté, utilisez make serve-all pour permettre le rechargement chaud des pages et des actifs CSS / JS.
Nous construisons le site Web Pulumi statiquement avec Hugo, gérons nos dépendances Node.js avec du fil et écrivons la plupart de notre documentation dans Markdown. Vous trouverez ci-dessous une liste des outils dont vous aurez besoin pour exécuter le site Web localement:
Les conditions préalables énumérées ci-dessus doivent être installées sur votre machine afin de servir le site.
Exécutez make ensure de vérifier les outils et les versions appropriés et installez toutes les dépendances. Le script vous fera savoir si vous manquez quelque chose d'important.
make ensure
Une fois que cela réussit, exécutez make build_assets pour construire les actifs dont dépend le site. Cela doit être fait avant la première fois que vous servez ce repo afin que les actifs existent sur votre machine locale.
make build-assets
Une fois que vous avez exécuté ce qui précède avec succès, vous êtes prêt à exécuter le serveur de développement:
make serve
Facultativement, utilisez make serve-all pour permettre le rechargement chaud des pages et des actifs CSS / JS.
Ce référentiel ne contient pas le contenu des packages API DOCS. Nous générons ces pages à un temps de déploiement. Afin de rendre localement les documents API pour un package, vous devrez générer les pages de documents API. Les documents API pour les packages peuvent être générés à la demande à l'aide de l'outil resourcedocsgen .
cd tools/resourcedocsgen
go build -o "${GOPATH}/bin/resourcedocsgen" .
À titre d'exemple, vous pouvez générer les documents API pour un package spécifique en exécutant l'outil ResourceDocsGen et en le faisant passer le nom du package comme suit:
resourcedocsgen docs registry <package_name> --baseDocsOutDir "./themes/default/content/registry/packages"
Exécutez resourcedocsgen --help help pour obtenir de l'aide concernant son utilisation ou consultez le ReadMe resourcedocsgen .
Avant de soumettre une demande de traction, exécutez le linter localement:
make lint Lorsque vous êtes prêt à soumettre une demande de traction, assurez-vous d'avoir supprimé tout ce qui ne semble pas appartenir ( go.mod / go.sum changes, etc.) et soumettre le PR de la manière habituelle.
Note
Il nécessite actuellement une machine avec un minimum de 32 Go de mémoire (64 Go de préférence) pour construire le registre dans son intégralité, y compris tous les pacakges.
Une fois que votre PR est approuvé et fusionné dans la branche par défaut de ce référentiel, il sera déployé sur le site de registre (https://pulumi.com/registry).