Pulumi Registry เป็นดัชนีระดับโลกของทุกสิ่งที่คุณสามารถทำได้กับ Pulumi บ้านของ pulumi.com/registry
เรากระตือรือร้นที่จะขยายดัชนีนั้นด้วยแพ็คเกจ Pulumi ใหม่ ไม่ว่าคุณจะต้องการเขียนผู้ให้บริการพื้นเมืองรายใหม่เชื่อมโยงผู้ให้บริการจากระบบนิเวศ Terraform หรือสร้างองค์ประกอบคลาวด์ที่มีแนวทางปฏิบัติที่ดีที่สุดและค่าเริ่มต้นที่เหมาะสมในตัวเราต้องการทำงานร่วมกับคุณ ในการเริ่มต้นใช้คำแนะนำของเราเกี่ยวกับการเขียนแพ็คเกจ Pulumi ของคุณเอง
เพื่อเผยแพร่แพ็คเกจที่ได้รับการดูแลชุมชนใน Pulumi Registry ในฐานะสมาชิกชุมชน:
docs/_index.md ซึ่งควรมีบทสรุปของวัตถุประสงค์ของผู้ให้บริการ (จำเป็น) พร้อมกับตัวอย่างรหัส (ต้องการ) ไฟล์นี้จะแสดงเป็นหน้าดัชนีสำหรับผู้ให้บริการของคุณ (ตัวอย่าง)docs/installation-configuration.md md ซึ่งควรมีลิงก์ไปยังแพ็คเกจ SDK ในแต่ละภาษาพร้อมกับคำแนะนำสำหรับการกำหนดค่าผู้ให้บริการ (เช่นข้อมูลรับรองที่จำเป็นและ/หรือตัวแปรสภาพแวดล้อม) ไฟล์นี้จะแสดงผลเป็นหน้าการติดตั้งและการกำหนดค่าสำหรับผู้ให้บริการของคุณ (ตัวอย่าง)สำหรับความช่วยเหลือโปรดติดต่อชุมชน Pulumi Slack หรือติดต่อกับเราผ่านแบบฟอร์มการติดต่อนี้
เมื่อสมาชิกชุมชนได้ส่ง PR เพื่อเพิ่มผู้ให้บริการลงในรีจิสทรีสมาชิกพนักงาน Pulumi ควรทำตามขั้นตอนต่อไปนี้:
ทบทวน PR ตรวจสอบให้แน่ใจว่าการประชาสัมพันธ์ได้รับการ rebased หากจำเป็นก่อนที่จะรวม ถ้าโอเครวม
เมื่อรวม 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 อาจรวมไฟล์เนื้อหาเพิ่มเติมเช่นวิธีการใช้วิธีการหากมีอยู่ใน repo upstream
ผสาน PR ถ้ามันดูโอเค
ใน pulumi/docs งานที่กำหนดเวลาทำงานทุกชั่วโมงและจะรับการเปลี่ยนแปลงใด ๆ ใน repo นี้สร้างไฟล์จากสคีมาของผู้ให้บริการและ data/registry/${PROVIDER}.yaml และเผยแพร่ไปยัง pulumi.com
งานที่กำหนดเวลานี้ในปัจจุบันขาดการตรวจสอบที่เพียงพอและ ควรดูเพื่อให้แน่ใจว่ามันทำงานได้อย่างถูกต้องจนถึงการเสร็จสิ้น (หากล้มเหลวมันจะบล็อกการอัปเดตทั้งหมดเป็น pulumi.com รวมถึงการตลาดและการดูแลหน้าเอกสารด้วยตนเอง)
ที่เก็บนี้เป็นโมดูล Hugo ที่เพิ่มเป็นสองเท่าเป็นเซิร์ฟเวอร์การพัฒนาเพื่อให้ง่ายต่อการทำงานบนหน้าเว็บที่ประกอบขึ้นเป็นรีจิสทรี Pulumi มันมีไฟล์ Hugo content และ layouts ทั้งหมด JavaScript, CSS และส่วนประกอบเว็บ ประกอบด้วยสิ่งที่คุณเห็นที่ https://pulumi.com/registry
เราสร้าง JavaScript และ CSS Bundles ที่ให้พลังงานกับ Pulumi Registry ที่นี่ภายใต้ themes/default/theme หากคุณกำลังทำการเปลี่ยนแปลงการจัดแต่งทรงผมการเปลี่ยนแปลงเนื้อหาด้านข้างให้ใช้ make serve-all เพื่อเปิดใช้งานการโหลดซ้ำของทั้งหน้าและสินทรัพย์ CSS/JS
เราสร้างเว็บไซต์ Pulumi แบบคงที่ด้วย Hugo จัดการการพึ่งพา node.js ของเราด้วยเส้นด้ายและเขียนเอกสารส่วนใหญ่ของเราใน Markdown ด้านล่างนี้เป็นรายการเครื่องมือที่คุณต้องใช้ในการเรียกใช้เว็บไซต์ในพื้นที่:
ข้อกำหนดเบื้องต้นที่ระบุไว้ข้างต้นจำเป็นต้องติดตั้งบนเครื่องของคุณเพื่อให้บริการเว็บไซต์
เรียกใช้ make ensure ได้ตรวจสอบเครื่องมือและเวอร์ชันที่เหมาะสมและติดตั้งการอ้างอิงใด ๆ สคริปต์จะแจ้งให้คุณทราบหากคุณขาดสิ่งที่สำคัญ
make ensure
เมื่อประสบความสำเร็จให้เรียกใช้ make build_assets เพื่อสร้างสินทรัพย์ที่เว็บไซต์ขึ้นอยู่กับ สิ่งนี้จะต้องทำก่อนครั้งแรกที่คุณให้บริการ repo นี้เพื่อให้สินทรัพย์มีอยู่ในเครื่องในท้องถิ่นของคุณ
make build-assets
เมื่อคุณทำงานได้สำเร็จแล้วคุณก็พร้อมที่จะเรียกใช้เซิร์ฟเวอร์การพัฒนา:
make serve
เลือกใช้ make serve-all เพื่อเปิดใช้งานการโหลดซ้ำของทั้งหน้าและสินทรัพย์ CSS/JS
ที่เก็บนี้ไม่มีเนื้อหาของแพ็คเกจเอกสาร API เราสร้างหน้าเหล่านี้ตามเวลาปรับใช้ ในการแสดงเอกสาร API สำหรับแพ็คเกจในเครื่องคุณจะต้องสร้างหน้าเอกสาร API สำหรับมัน เอกสาร 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 GB (ต้องการ 64 GB) เพื่อสร้างรีจิสทรีอย่างครบถ้วนรวมถึง Pacakges ทั้งหมด
เมื่อ PR ของคุณได้รับการอนุมัติและรวมเข้ากับสาขาเริ่มต้นของที่เก็บนี้จะถูกนำไปใช้กับไซต์รีจิสทรี (https://pulumi.com/registry)