Реестр Pulumi - это глобальный индекс всего, что вы можете сделать с Pulumi. Дом Pulumi.com/registry.
Мы всегда стремимся расширить этот индекс с помощью новых пакетов Pulumi. Независимо от того, хотите ли вы создать нового нативного поставщика, подключить поставщика из экосистемы Terraform или создать облачный компонент с лучшими практиками и разумными значениями по умолчанию, мы хотели бы поработать с вами, чтобы перечислить его в реестре Pulumi. Чтобы начать, используйте наше руководство по созданию собственного пакета Pulumi.
Чтобы опубликовать пакет, поддержанный сообществом в реестре Пулуми, в качестве члена сообщества:
docs/_index.md , который должен содержать сводку цели поставщика (требуется) вместе с образцом кода (предпочтительно). Этот файл будет отображаться в качестве страницы индекса для вашего поставщика (пример).docs/installation-configuration.md , который должен содержать ссылки на пакеты SDK на каждом языке, а также инструкции по настройке поставщика (например, необходимые учетные данные и/или переменные среды). Этот файл будет отображаться в качестве страницы установки и конфигурации для вашего поставщика (пример).Для получения помощи, пожалуйста, свяжитесь с сообществом Pulumi Slack или свяжитесь с нами через эту контактную форму.
Как только член сообщества представит PR, чтобы добавить поставщика в реестр, сотрудник Pulumi должен выполнить следующие шаги:
Просмотрите PR. Убедитесь, что PR был переизменен в случае необходимости перед слиянием. Если хорошо, слияние.
Как только PR объединится, запланированная задача подберет изменения и создаст PR, чтобы добавить метаданные пакета в реестр. Правильный PR Metadata (пример) будет включать в себя следующие файлы как минимум:
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 может включать в себя дополнительные файлы контента, такие как руководства по рекомендациям, если они присутствуют в восходящем репо.
Объедините пиар, если он выглядит нормально.
В Pulumi/Docs запланированная задача работает почасово и будет привлекать любые изменения в этом репо, генерировать файлы из схемы поставщика и data/registry/${PROVIDER}.yaml и опубликовать на Pulumi.com.
Эта запланированная задача в настоящее время не имеет адекватного мониторинга, и его следует следить, чтобы убедиться, что она работает правильно до завершения . (Если это не удастся, он заблокирует все обновления для Pulumi.com, включая маркетинг и поддерживаемые вручную страницы DOCS.)
Этот репозиторий - модуль Hugo, который удваивается как сервер разработки, чтобы облегчить работу на страницах, которые составляют реестр Pulumi. Он содержит все файлы content и layouts Hugo, JavaScript, CSS и веб -компоненты. включающее то, что вы видите на https://pulumi.com/registry
Мы строим пакеты JavaScript и CSS, которые питают реестр Pulumi здесь, в рамках каталога themes/default/theme . Если вы вносите изменения в стиль вдоль изменений содержимого, используйте make serve-all чтобы обеспечить горячую перезагрузку как страниц, так и активов CSS/JS.
Мы строим веб -сайт Pulumi статически с Hugo, управляем нашими зависимостями Node.js с пряжей и пишем большую часть нашей документации в Markdown. Ниже приведен список инструментов, которые вам понадобятся для запуска веб -сайта на локальном уровне:
Предварительные условия, перечисленные выше, должны быть установлены на вашей машине, чтобы обслуживать сайт.
Запустите make ensure что проверяйте соответствующие инструменты и версии и установите любые зависимости. Сценарий даст вам знать, если вы упустите что -то важное.
make ensure
Как только это преуспеет, запустите make build_assets для создания активов, от которых зависит сайт. Это должно быть сделано до того, как вы в первый раз обслуживает это репо, чтобы активы существовали на вашей местной машине.
make build-assets
После успешного запуска выше, вы готовы запустить сервер разработки:
make serve
При желании используйте make serve-all , чтобы обеспечить горячую перезагрузку как страниц, так и активов CSS/JS.
Этот репозиторий не содержит содержания пакетов DOCS API. Мы генерируем эти страницы во время развертывания. Чтобы отобразить документы API для посылки локально, вам нужно будет создать для него страницы API DOCS. Документы API для пакетов могут быть сгенерированы по требованию с использованием инструмента resourcedocsgen .
cd tools/resourcedocsgen
go build -o "${GOPATH}/bin/resourcedocsgen" .
В качестве примера вы можете генерировать документы API для конкретного пакета, запустив инструмент ResourceDocsGen и передав его имя пакета следующим образом:
resourcedocsgen docs registry <package_name> --baseDocsOutDir "./themes/default/content/registry/packages"
Запустите resourcedocsgen --help для помощи в отношении его использования или увидеть resourcedocsgen Readme.
Перед отправкой запроса на привлечение запустите Linter локально:
make lint Когда вы будете готовы отправить запрос на привлечение, убедитесь, что вы удалили все, что, кажется, не принадлежит ( go.mod / go.sum изменяется и т. Д.) И отправьте PR обычным способом.
Примечание
В настоящее время ему требуется машина с минимумом 32 ГБ памяти (предпочтительнее 64 ГБ), чтобы построить реестр в полном объеме, включая все Pacakges.
Как только ваш PR будет одобрен и объединен в филиал этого репозитория по умолчанию, он будет развернут на сайте реестра (https://pulumi.com/registry).