Pulumiレジストリは、Pulumiでできるすべてのグローバルインデックスです。 pulumi.com/registryの家。
私たちは常に、新しいPulumiパッケージでそのインデックスを拡張したいと思っています。新しいネイティブプロバイダーを執筆したい場合、Terraformエコシステムからプロバイダーをブリッジしたり、ベストプラクティスと賢明なデフォルトを組み込んだクラウドコンポーネントを作成したりする場合でも、Pulumiレジストリにリストするために協力したいと思います。開始するには、独自のプルミパッケージを作成するガイドを使用してください。
コミュニティに維持されたパッケージをPulumiレジストリにコミュニティメンバーとして公開するには:
docs/_index.md 。これには、プロバイダーの目的(必須)の要約とコードサンプル(優先)が含まれている必要があります。このファイルは、プロバイダーのインデックスページとしてレンダリングされます(例)。docs/installation-configuration.md 。プロバイダー(必要な資格情報や環境変数など)を構成するための指示とともに、各言語のSDKパッケージへのリンクを含める必要があります。このファイルは、プロバイダーのインストール&構成ページとしてレンダリングされます(例)。支援については、PulumiコミュニティのSlackに連絡するか、この連絡先フォームを介して連絡してください。
コミュニティメンバーがPRを提出してプロバイダーをレジストリに追加したら、プルミのスタッフが次の手順を実行する必要があります。
PRを確認します。マージする前に、必要に応じてPRがリベースされていることを確認してください。 OKであれば、マージします。
PRがマージされると、スケジュールされたタスクが変更を受け取り、PRを作成してパッケージメタデータをレジストリに追加します。正しいメタデータPR(例)には、少なくとも次のファイルが含まれます。
data/registry/${PROVIDER}.yamlには、プロバイダーに関する構造化されたメタデータが含まれています。このファイルは、新しいリリースのために生成されるすべてのPRに常に含まれています。themes/default/content/registry/packages/${PROVIDER}/installation-configuration.md 、上記のように。このファイルは最初のリリースに含める必要がありますが、コンテンツが変更された場合にのみ、後続のPRSに含まれます。themes/default/content/registry/packages/exoscale/_index.md 、上記のように。このファイルは最初のリリースに含める必要がありますが、コンテンツが変更された場合にのみ、後続のPRSに含まれます。オプションで、PRには、アップストリームリポジトリに存在する場合、ハウツーガイドのような追加のコンテンツファイルが含まれる場合があります。
問題があるように見える場合は、PRをマージします。
Pulumi/docsでは、スケジュールされたタスクが1時間ごとに実行され、このレポで変更をピックアップし、プロバイダースキーマとdata/registry/${PROVIDER}.yamlからファイルを生成し、pulumi.comに公開します。
このスケジュールされたタスクには現在、適切な監視がなく、完了まで正しく実行されるように監視する必要があります。 (失敗した場合、マーケティングや手動でメンテナンスしたドキュメントページなど、すべての更新をPulumi.comへのブロックします。)
このリポジトリは、Pulumiレジストリを構成するページで簡単に作業できるようにする開発サーバーを兼ねるHugoモジュールです。すべてのHugo contentおよびlayoutsファイル、JavaScript、CSS、およびWebコンポーネントが含まれています。 https://pulumi.com/registryで表示されるもので構成されています
themes/default/themeディレクトリの下で、ここでPulumiレジストリに電力を供給するJavaScriptとCSSバンドルを構築します。サイドコンテンツの変更に沿ってスタイリングの変更を行っている場合は、ページとCSS/JSアセットの両方のホットリロードを可能にするためにmake serve-all使用します。
Pulumi WebサイトをHugoで静的に構築し、Yarnでnode.js依存関係を管理し、マークダウンでドキュメントのほとんどを書きます。以下は、ウェブサイトをローカルに実行するために必要なツールのリストです。
上記の前提条件は、サイトを提供するためにマシンにインストールする必要があります。
実行して、適切なツールとバージョンをmake ensure 、依存関係をインストールします。スクリプトでは、重要なものが欠けている場合はお知らせします。
make ensure
それが成功したら、 make build_assets実行して、サイトが依存している資産を構築します。これは、このリポジトリを初めて提供する前に行う必要があります。これにより、アセットがローカルマシンに存在するようにします。
make build-assets
上記を正常に実行したら、開発サーバーを実行する準備が整いました。
make serve
オプションでは、ページとCSS/JS資産の両方のホットリロードを可能にするためにmake serve-all作成します。
このリポジトリには、API Docsパッケージのコンテンツは含まれていません。これらのページをdeployemnt時間に生成します。ローカルでパッケージのAPIドキュメントをレンダリングするには、API Docsページを生成する必要があります。パッケージ用のAPIドキュメントは、 resourcedocsgenツールを使用してオンデマンドで生成できます。
cd tools/resourcedocsgen
go build -o "${GOPATH}/bin/resourcedocsgen" .
例として、Resourcedocsgenツールを実行し、次のようにパッケージの名前を渡すことにより、特定のパッケージのAPIドキュメントを生成できます。
resourcedocsgen docs registry <package_name> --baseDocsOutDir "./themes/default/content/registry/packages"
run resourcedocsgen --helpその使用に関する助けを借りるか、 resourcedocsgen readmeを参照してください。
プルリクエストを送信する前に、リナーをローカルに実行します。
make lintプルリクエストを送信する準備ができたら、属していないと思われるもの( go.mod / go.sum変更など)を削除していることを確認し、通常の方法でPRを送信してください。
注記
現在、すべてのPacakgeを含むレジストリ全体を構築するには、最低32 GBのメモリ(64 GBが優先される)を持つマシンが必要です。
PRが承認され、このリポジトリのデフォルトブランチに統合されると、レジストリサイト(https://pulumi.com/registry)に展開されます。