Pulumi注册表是您可以使用Pulumi所做的一切的全球指数。 Pulumi.com/Registry的故乡。
我们始终渴望通过新的Pulumi软件包扩展该索引。无论您是想撰写新的本地提供商,从Terraform生态系统中桥接提供商,还是创建具有最佳实践和内置明智默认值的云组件,我们都希望与您一起在Pulumi注册表上列出。要开始,请使用我们的指南来创作自己的Pulumi包。
以社区成员的身份发布有关PULUMI注册表的社区维护包:
docs/_index.md ,该文档应包含提供商目的(必需)以及代码示例(首选)的摘要。此文件将作为您的提供商的索引页面(示例)。docs/installation-configuration.md ,它应包含每种语言中SDK软件包的链接以及配置提供商的说明(例如,必需的凭据和/或环境变量)。该文件将作为提供商的安装和配置页面(示例)。为了帮助您,请在Pulumi社区懈怠中与我们联系,或通过此联系表与我们联系。
一旦社区成员提交公关将提供商添加到注册表中,PULUMI工作人员应执行以下步骤:
查看公关。在合并之前,请确保在必要时重新重新重建公关。如果可以的话,合并。
PR合并后,计划的任务将拾取更改并创建PR将软件包元数据添加到注册表中。正确的元数据PR(示例)将至少包含以下文件:
data/registry/${PROVIDER}.yaml ,其中包括有关提供商的结构化元数据。该文件始终包含在新版本生成的每个PR中。themes/default/content/registry/packages/${PROVIDER}/installation-configuration.md ,如上所述。该文件必须包含在第一个版本中,但如果内容已更改,则仅包含在后续PR中。themes/default/content/registry/packages/exoscale/_index.md 。该文件必须包含在第一个版本中,但如果内容已更改,则仅包含在后续PR中。可选的是,如果PR在上游存储库中存在,则可能包括其他内容文件,例如操作指南。
如果看起来还可以,则合并PR。
在Pulumi/Docs中,一个计划的任务每小时运行,并将在此存储库中获取任何更改,从提供商模式和data/registry/${PROVIDER}.yaml生成文件,并发布到Pulumi.com。
目前,该计划的任务缺乏足够的监视,应注意确保其正确运行以完成。 (如果失败,它将阻止pulumi.com的所有更新,包括营销和手动维护文档页面。)
该存储库是一个雨果模块,可作为开发服务器加倍,以使其更容易在组成Pulumi注册表的页面上工作。它包含Hugo content和layouts文件,JavaScript,CSS和Web组件。包括您在https://pulumi.com/Registry上看到的内容
我们构建了JavaScript和CSS捆绑包,该捆绑包在这里,在themes/default/theme目录下为pulumi注册表提供动力。如果您正在按照侧面内容的更改进行样式更改,请使用make serve-all以使同时重新加载页面和CSS/JS资产。
我们使用Hugo静态地构建Pulumi网站,使用纱线来管理我们的Node.js依赖项,然后在Markdown中写出大部分文档。以下是您在本地运行该网站所需的工具的列表:
上面列出的先决条件需要在计算机上安装才能为网站服务。
运行make ensure检查适当的工具和版本,并安装任何依赖项。该脚本会让您知道您是否缺少任何重要的东西。
make ensure
一旦成功,运行make build_assets以构建网站所取决于的资产。这需要在您第一次服务此存储库之前进行,以便本地机器上的资产存在。
make build-assets
一旦成功运行以上操作,就可以运行开发服务器:
make serve
可选地,请使用make serve-all来启用页面和CSS/JS资产的热重新加载。
该存储库不包含API文档软件包的内容。我们在部署时间生成这些页面。为了在本地渲染API文档,您需要为其生成API文档页面。可以使用resourcedocsgen工具在按需生成包装的API文档。
cd tools/resourcedocsgen
go build -o "${GOPATH}/bin/resourcedocsgen" .
例如,您可以通过运行ResourceCsgen工具来生成特定软件包的API文档,并将其传递给软件包的名称:如下:
resourcedocsgen docs registry <package_name> --baseDocsOutDir "./themes/default/content/registry/packages"
运行resourcedocsgen --help在其使用方面提供帮助,或者查看resourcedocsgen Replme。
在提交拉动请求之前,请在本地运行Linter:
make lint当您准备提交拉动请求时,请确保您删除了似乎不属于的任何东西( go.mod / go.sum更改等),并以通常的方式提交PR。
笔记
目前,它需要一台至少32 GB内存(64 GB首选)的机器,以整体构建注册表,包括所有Pacakges。
一旦您的PR被批准并合并到该存储库的默认分支中,它将部署到注册表网站(https://pulumi.com/registry)。