Pulumi Registry es el índice global de todo lo que puede hacer con Pulumi. El hogar de Pulumi.com/registry.
Siempre estamos ansiosos por expandir ese índice con nuevos paquetes Pulumi. Ya sea que desee autorizar a un nuevo proveedor nativo, unir a un proveedor del ecosistema Terraform o crear un componente de la nube con las mejores prácticas y los valores predeterminados sensibles integrados, nos gustaría trabajar con usted para enumerarlo en el registro de Pulumi. Para comenzar, use nuestra guía para autorizar un paquete Pulumi propio.
Para publicar un paquete mantenido por la comunidad en el registro de Pulumi como miembro de la comunidad:
docs/_index.md , que debe contener un resumen del propósito del proveedor (requerido) junto con una muestra de código (preferida). Este archivo se convertirá en la página de índice para su proveedor (ejemplo).docs/installation-configuration.md , que debe contener enlaces a paquetes SDK en cada idioma junto con instrucciones para configurar el proveedor (por ejemplo, credenciales requeridas y/o variables de entorno). Este archivo se convertirá en la página de instalación y configuración para su proveedor (ejemplo).Para obtener ayuda, comuníquese con Pulumi Community Slack o póngase en contacto con nosotros a través de este formulario de contacto.
Una vez que el miembro de la comunidad ha presentado el PR para agregar el proveedor al registro, un miembro del personal de Pulumi debe realizar los siguientes pasos:
Revisa el PR. Asegúrese de que el PR haya sido rebajado si es necesario antes de fusionarse. Si está bien, fusione.
Una vez que se fusiona el PR, una tarea programada recogerá los cambios y creará un PR para agregar los metadatos del paquete al registro. Un Metadata PR (ejemplo) correcto incluirá los siguientes archivos, como mínimo:
data/registry/${PROVIDER}.yaml que incluye metadatos estructurados sobre el proveedor. Este archivo siempre se incluye con cada PR que se genera para una nueva versión.themes/default/content/registry/packages/${PROVIDER}/installation-configuration.md , como se describió anteriormente. Este archivo debe incluirse en la primera versión, pero solo se incluirá en PRS posteriores si el contenido ha cambiado.themes/default/content/registry/packages/exoscale/_index.md , como se describió anteriormente. Este archivo debe incluirse en la primera versión, pero solo se incluirá en PRS posteriores si el contenido ha cambiado.Opcionalmente, el PR puede incluir archivos de contenido adicionales como guías de instrucciones si están presentes en el repositorio aguas arriba.
Fusionar el PR si se ve bien.
En Pulumi/Docs, una tarea programada se ejecuta por hora y recogerá cualquier cambio en este repositorio, generará archivos del esquema del proveedor y data/registry/${PROVIDER}.yaml , y publicará en pulumi.com.
Esta tarea programada actualmente carece de un monitoreo adecuado y debe ser observado para asegurarse de que se ejecute correctamente hasta su finalización . (Si falla, bloqueará todas las actualizaciones a Pulumi.com, incluidas las páginas de Docs de marketing y mantenidas manualmente).
Este repositorio es un módulo Hugo que funciona como un servidor de desarrollo para facilitar el trabajo en las páginas que conforman el registro de Pulumi. Contiene todos los archivos content y layouts de Hugo, JavaScript, CSS y componentes web. Compuesto por lo que ves en https://pulumi.com/registry
Construimos los paquetes de JavaScript y CSS que alimentan el registro Pulumi aquí, bajo el directorio de themes/default/theme . Si está realizando cambios de estilo en el lado del lado, use make serve-all para habilitar la recarga en caliente de las páginas y los activos CSS/JS.
Construimos el sitio web de Pulumi estáticamente con Hugo, administramos nuestras dependencias Node.js con hilo y escribimos la mayor parte de nuestra documentación en Markdown. A continuación se muestra una lista de las herramientas que necesitará para ejecutar el sitio web localmente:
Los requisitos previos enumerados anteriormente deben instalarse en su máquina para servir al sitio.
Ejecute make ensure para verificar las herramientas y versiones apropiadas, e instalar cualquier dependencia. El guión le hará saber si te estás perdiendo algo importante.
make ensure
Una vez que eso tenga éxito, ejecute make build_assets para construir los activos de los que depende el sitio. Esto debe hacerse antes de la primera vez que sirva este repositorio para que los activos existan en su máquina local.
make build-assets
Una vez que haya ejecutado lo anterior con éxito, está listo para ejecutar el servidor de desarrollo:
make serve
Opcionalmente, use make serve-all para habilitar la recarga en caliente de las páginas y los activos CSS/JS.
Este repositorio no contiene el contenido de los paquetes API Docs. Generamos estas páginas en el momento de la implementación. Para representar los documentos de API para un paquete localmente, deberá generar las páginas de documentos API para ello. Los documentos API para paquetes se pueden generar a pedido utilizando la herramienta resourcedocsgen .
cd tools/resourcedocsgen
go build -o "${GOPATH}/bin/resourcedocsgen" .
Como ejemplo, puede generar los documentos API para un paquete específico ejecutando la herramienta ResourceCsGen y transmitiendo el nombre del paquete de la siguiente manera:
resourcedocsgen docs registry <package_name> --baseDocsOutDir "./themes/default/content/registry/packages"
Ejecute resourcedocsgen --help para obtener ayuda con respecto a su uso o consulte el readMe resourcedocsgen .
Antes de enviar una solicitud de extracción, ejecute el enlace localmente:
make lint Cuando esté listo para enviar una solicitud de extracción, asegúrese de eliminar cualquier cosa que no parezca pertenecer ( go.mod / go.sum Cambios, etc.) y envíe el PR de la manera habitual.
Nota
Actualmente requiere una máquina con un mínimo de 32 GB de memoria (64 GB preferido) para construir el registro en su totalidad, incluidos todos los Pacakges.
Una vez que su PR se apruebe y se fusione en la rama predeterminada de este repositorio, se implementará en el sitio de registro (https://pulumi.com/registry).