Pulumi Registry는 Pulumi로 할 수있는 모든 것의 글로벌 색인입니다. pulumi.com/registry의 고향.
우리는 항상 새로운 Pulumi 패키지로 해당 지수를 확장하기를 간절히 원합니다. 새로운 기본 제공 업체를 작성하든 Terraform Ecosystem의 제공자를 브리지 또는 모범 사례 및 현명한 기본값으로 클라우드 구성 요소를 만들려면 Pulumi Registry에 나열하기 위해 작업하고 싶습니다. 시작하려면 Pulumi 패키지 작성에 대한 가이드를 사용하십시오.
커뮤니티 회원으로서 Pulumi Registry에 커뮤니티 관리 패키지를 게시하려면 :
docs/_index.md 는 코드 샘플 (선호)과 함께 제공자의 목적 (필수)을 요약해야합니다. 이 파일은 제공자의 색인 페이지로 렌더링됩니다 (예).docs/installation-configuration.md 는 제공자 구성 (예 : 필요한 자격 증명 및/또는 환경 변수)을 구성하기위한 지침과 함께 각 언어의 SDK 패키지에 대한 링크를 포함해야합니다. 이 파일은 제공자의 설치 및 구성 페이지로 렌더링됩니다 (예).도움을 받으려면 Pulumi Community Slack에 연락 하거나이 연락처 양식을 통해 저희와 연락하십시오.
커뮤니티 회원이 PR을 제출하여 제공자를 레지스트리에 추가하면 Pulumi 직원이 다음 단계를 수행해야합니다.
PR을 검토하십시오. 병합하기 전에 필요한 경우 PR이 재조정되었는지 확인하십시오. 괜찮다면 병합.
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 Registry를 구성하는 페이지에서 쉽게 작업 할 수 있도록 개발 서버로 두 배가되는 Hugo 모듈입니다. 여기에는 모든 Hugo content 및 layouts 파일, JavaScript, CSS 및 웹 구성 요소가 포함되어 있습니다. https://pulumi.com/registry에서 볼 수있는 것
우리는 themes/default/theme Directory에서 Pulumi 레지스트리에 전원을 공급하는 JavaScript 및 CSS 번들을 빌드합니다. 측면 컨텐츠 변경을 따라 스타일 변경을 수행하는 경우 make serve-all 호출 할 수 있습니다.
우리는 Hugo와 정적으로 Pulumi 웹 사이트를 구축하고 Yarn을 사용하여 Node.js 종속성을 관리하며 대부분의 문서를 Markdown에 작성합니다. 아래는 웹 사이트를 로컬로 실행하는 데 필요한 도구 목록입니다.
위에 나열된 전제 조건은 사이트에 서비스를 제공하기 위해 컴퓨터에 설치해야합니다.
RUN은 적절한 도구 및 버전을 make ensure 하고 종속성을 설치하십시오. 스크립트는 중요한 것을 놓치면 알려줄 것입니다.
make ensure
성공하면 make build_assets 사이트가 의존하는 자산을 구축하십시오. 이 리베르를 처음으로 제공하기 전에이를 수행해야하므로 자산이 로컬 컴퓨터에 존재합니다.
make build-assets
위의 성공을 성공적으로 실행하면 개발 서버를 실행할 준비가되었습니다.
make serve
선택적으로, make serve-all 사용하여 페이지와 CSS/JS 자산을 모두 호출 할 수 있습니다.
이 저장소에는 API 문서 패키지의 내용이 포함되어 있지 않습니다. 배포 시간 에서이 페이지를 생성합니다. 패키지의 API 문서를 로컬로 렌더링하려면 API 문서 페이지를 생성해야합니다. 패키지에 대한 API 문서는 resourcedocsgen 도구를 사용하여 주문형으로 생성 될 수 있습니다.
cd tools/resourcedocsgen
go build -o "${GOPATH}/bin/resourcedocsgen" .
예를 들어, ResourcedOcsGen 도구를 실행하고 패키지 이름을 다음과 같이 전달하여 특정 패키지의 API 문서를 생성 할 수 있습니다.
resourcedocsgen docs registry <package_name> --baseDocsOutDir "./themes/default/content/registry/packages"
resourcedocsgen --help 헬프 사용에 대한 도움을 받거나 resourcedocsgen ReadMe를 참조하십시오.
풀 요청을 제출하기 전에 Linter를 로컬로 실행하십시오.
make lint 풀 요청을 제출할 준비가되면 속하지 않은 것으로 보이지 않는 것 ( go.mod / go.sum 변경 등)을 제거하고 일반적인 방식으로 PR을 제출하십시오.
메모
현재 모든 Pacakges를 포함한 레지스트리를 전체적으로 구축하려면 최소 32GB의 메모리 (64GB 선호)가있는 기계가 필요합니다.
PR이 승인 되고이 저장소의 기본 지점으로 병합되면 레지스트리 사이트 (https://pulumi.com/registry)에 배포됩니다.