
Monokle CLI เป็นอินเทอร์เฟซบรรทัดคำสั่งสำหรับการวิเคราะห์แบบคงที่ของทรัพยากร Kubernetes
ใช้เพื่อป้องกันการกำหนดค่าผิดพลาดภายใน kustomize, helm หรือทรัพยากร Kubernetes เริ่มต้น เอาต์พุตมีอยู่เป็นไฟล์ Sarif ซึ่งคุณสามารถอัปโหลดไปยัง GitHub Codescan
Monokle CLI อนุญาตให้รวมเข้ากับ Monokle Cloud และ Monokle Enterprise เพื่อจัดการและบังคับใช้นโยบายการตรวจสอบความถูกต้องส่วนกลางสำหรับ repos และท่อทั้งหมดของคุณ
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับคุณสมบัติ Monokle CLI และระบบนิเวศ Monokle ทั้งหมดในการประกาศบล็อกโพสต์
คุณสามารถติดตั้ง Monokle CLI ผ่าน NPM:
npm install --global @monokle/cliหรือใช้ชงหากคุณอยู่ใน MacOS:
brew install kubeshop/monokle/monokle-cliMonokle CLI เปิดเผยคำสั่งต่อไปนี้:
monokle validate [path] - ตรวจสอบทรัพยากร Kubernetes ในเส้นทางที่กำหนดmonokle init - สร้างไฟล์การกำหนดค่าท้องถิ่นmonokle login - เข้าสู่ระบบ Monokle Cloud หรือ Enterprise เพื่อใช้นโยบายระยะไกลmonokle logout - ออกจากระบบ Monokle Cloud หรือ Enterprisemonokle whoami - รับข้อมูลเกี่ยวกับผู้ใช้ที่ได้รับการรับรองความถูกต้องในปัจจุบันmonokle config show [path] - แสดงไฟล์กำหนดค่านโยบายซึ่งจะใช้ในการตรวจสอบเส้นทางที่กำหนด คุณสามารถใช้ --help อาร์กิวเมนต์เพื่อรับรายการคำสั่งที่มีอยู่ทั้งหมดหรือข้อมูลรายละเอียดทั้งหมดเกี่ยวกับแต่ละคำสั่ง
Monokle CLI รวมถึงตัวตรวจสอบความถูกต้องในตัวเพื่อให้ความเป็นไปได้ในการตรวจสอบความถูกต้องที่ครอบคลุมสำหรับการกำหนดค่า K8S นอกกรอบ:
ภายใต้ฮูดมันใช้ [@monokle/การตรวจสอบ] [https://github.com/kubeshop/monokle-core/tree/main/packages/validation] ซึ่งช่วยให้คุณกำหนดค่ากฎการตรวจสอบอย่างกว้างขวาง
เมื่อติดตั้งแล้วการใช้ CLI นั้นตรงไปตรงมา
monokle validate bundle.yamlสิ่งนี้จะสแกนไฟล์ YAML ทั้งหมดซ้ำ ๆ และแยกวิเคราะห์เป็นทรัพยากร Kubernetes ธรรมดา
monokle validate k8s-dirhelm template helm-dir | monokle validate -kustomize build kustomize-dir/overlays/local | monokle validate -monokle validate path/to/validate -c path/to/config/monokle.validation.yaml ในการใช้นโยบายระยะไกลคุณต้องเข้าสู่ระบบคลาวด์ Monokle ก่อน สามารถทำได้ผ่านคำสั่ง monokle login :
monokle login หลังจากนั้นเพียงแค่เรียกใช้คำสั่ง validate Monokle CLI จะดึงนโยบายระยะไกลตามข้อมูลผู้ใช้ของคุณ:
monokle validate path/to/validateสำคัญ : โปรดทราบว่านโยบายระยะไกลต้องได้รับการกำหนดค่าก่อน โปรดดูการใช้กับส่วน Monokle Cloud ด้านล่าง
Monokle CLI รองรับชุดของกฎที่กำหนดไว้ล่วงหน้าที่เรียกว่าเฟรมเวิร์กซึ่งช่วยให้คุณสามารถเรียกใช้การตรวจสอบ Monokle ได้อย่างรวดเร็วโดยไม่จำเป็นต้องมีการกำหนดค่าเพิ่มเติม ด้วยการใช้เฟรมเวิร์กคุณสามารถดำเนินการตรวจสอบความถูกต้องตามแนวทางปฏิบัติที่ดีที่สุดและมาตรฐานอุตสาหกรรมได้อย่างง่ายดาย
เมื่อใช้เฟรมเวิร์กคุณไม่จำเป็นต้องกำหนดค่าไฟล์ monokle.validation.yaml ด้วยตนเอง เพียงแค่ระบุเฟรมเวิร์กที่ต้องการโดยใช้อาร์กิวเมนต์ --framework หรือ -f CLI และ Monokle CLI จะใช้ชุดกฎที่สอดคล้องกันโดยอัตโนมัติ
เฟรมเวิร์กที่มีอยู่:
pss-restrictedpss-baselinensaการใช้เฟรมเวิร์กเป็นวิธีที่ยอดเยี่ยมในการเริ่มต้นอย่างรวดเร็วด้วย Monokle CLI และดำเนินการตรวจสอบความถูกต้องที่ครอบคลุมโดยไม่จำเป็นต้องมีการกำหนดค่าที่กว้างขวาง
นี่คือตัวอย่างของวิธีการใช้อาร์กิวเมนต์ --framework เวิร์ก:
monokle validate k8s-dir --framework pss-restricted หากคุณต้องการการตรวจสอบความถูกต้องที่กำหนดเองมากขึ้นคุณยังสามารถกำหนดค่าไฟล์ monokle.validation.yaml ด้วยกฎของคุณเอง วิธีที่ง่ายที่สุดคือการใช้คำสั่ง monokle init ซึ่งจะแนะนำคุณผ่านการสร้างการกำหนดค่าที่กำหนดเองตามเฟรมเวิร์กที่มีอยู่
Monokle CLI สามารถส่งออกผลลัพธ์ในรูปแบบ Sarif
monokle validate --output sarif k8s-dir > results.sarifหลังจากนั้นคุณสามารถใช้ตัวชม Sarif ของ VSC หรือเครื่องมืออื่น ๆ เพื่อตรวจสอบผลลัพธ์
ในการใช้นโยบายระยะไกลกับ Monokle CLI คุณจะต้องสร้างโครงการและกำหนดค่านโยบายสำหรับมันใน Monokle Cloud เริ่มต้นด้วยการลงชื่อเข้าใช้ Monokle Cloud
ในกรณีที่มีข้อสงสัยโปรดดูที่คู่มือเริ่มต้นใช้งานหรือตีเราโดยตรงบน Discord
หลังจากลงทะเบียนแล้วเริ่มต้นด้วยการสร้างโครงการในหน้าโครงการ:

หลังจากสร้างโครงการแล้วเพิ่มที่เก็บ (อันที่คุณจะทำงานในพื้นที่) ในโครงการ สามารถทำได้โดยไปที่แท็บ Repositories ในมุมมองโครงการและใช้ปุ่ม Add repository :

ขั้นตอนสุดท้ายคือการตั้งค่านโยบาย คุณสามารถใช้ตัวช่วยสร้างนโยบายโดยไปที่แท็บ Policy ในมุมมองโครงการ:

หลังจากการตั้งค่าเสร็จสิ้นคุณสามารถเรียกใช้คำสั่ง monokle validate และจะใช้นโยบายระยะไกลตราบใดที่คุณเข้าสู่ระบบ
การใช้กับ Monokle Enterprise (โฮสต์ตัวเอง) นั้นคล้ายกับการใช้งานกับ Monokle Cloud ความแตกต่างที่สำคัญคือต้นกำเนิด (URL) ที่ Monokle CLI จะสื่อสาร สิ่งนี้สามารถตั้งค่าเมื่อ login หรือสำหรับแต่ละคำสั่งแยกกัน (มีประโยชน์สำหรับสถานการณ์อัตโนมัติ)
monokle login --origin https://monokle.mydomain.comสำคัญ : ตัวแปร Env
MONOKLE_ORIGINสามารถใช้เพื่อตั้งค่าแหล่งกำเนิดสำหรับคำสั่งการบันทึก หากไม่มีการใช้งาน CLI จะแจ้งเมื่อใดก็ตามที่ใช้ต้นกำเนิดที่กำหนดเอง
สำหรับการใช้ธง --origin โดยไม่ต้องเข้าสู่ระบบโปรดดูที่การใช้ในส่วนท่อ CI/CD ด้านล่าง
เราได้ทุ่มเท
Monokle GitHub Botเพื่อรวมการจัดการนโยบายส่วนกลางเข้ากับท่อ GitHub CI/CD ซึ่งให้การรวมที่เข้มงวดมากขึ้นกับ Monokle Cloud มากกว่าการใช้ CLI โดยตรง
ในการใช้ Monokle CLI เป็นส่วนหนึ่งของไปป์ไลน์ CI/CD จะต้องติดตั้งก่อนจากนั้นเพียงแค่เรียกใช้กับ monokle validate path/to/resources
อีกกรณีหนึ่งกำลังใช้นโยบายที่มีการจัดการจากส่วนกลางจาก Monokle Cloud ในสถานการณ์ดังกล่าว ในเช่นนี้ควรใช้โทเค็นระบบอัตโนมัติ (ซึ่งสามารถสร้างได้ผ่านแท็บ Automation token ในมุมมอง Workspace ) พร้อมกับรหัสโครงการที่ควรใช้นโยบาย:
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_IDสามารถรับรหัสโครงการได้ในหน้ารายละเอียดโครงการจาก URL
https://app.monokle.com/dashboard/projects/<projectId>
นอกจากนี้คุณยังสามารถเปลี่ยนแหล่งกำเนิดซึ่งจะใช้ในการดึงนโยบายจาก (เช่นเมื่อเรียกใช้อินสแตนซ์ของ Monokle Enterprise ของคุณเอง):
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_ID -r https://monokle.mydomain.comสำคัญ : อย่าลืมเก็บโทเค็น API ของคุณไว้เป็นความลับและส่งผ่านไปยังงาน CI/CD ในลักษณะเดียวกับความลับอื่น ๆ
Monokle GitHub Bot สามารถใช้เพื่อตรวจสอบทรัพยากรของคุณเป็นส่วนหนึ่งของท่อ GitHub CI/CD ของคุณ มันถูกรวมเข้ากับ Monokle Cloud นอกกรอบเพื่อให้การจัดการนโยบายส่วนกลางง่ายขึ้น
การกระทำของ Monokle GitHub สามารถใช้เพื่อตรวจสอบทรัพยากรของคุณเป็นส่วนหนึ่งของท่อ CI/CD ของคุณบน GitHub มันให้ความสามารถในการปรับแต่งได้มากขึ้นเมื่อพูดถึงการตรวจสอบผลลัพธ์การทำงานแบบแห้ง
หากคุณต้องการบางสิ่งบางอย่างที่รวมเข้ากับ Monokle Cloud เราขอแนะนำให้ใช้ Monokle GitHub Bot
คุณสามารถใช้ --help เข้าถึงข้อมูลความช่วยเหลือโดยตรงจาก CLI
Monokle CLI มองหาไฟล์การกำหนดค่าการตรวจสอบความถูกต้องของ monokle ที่ . ./monokle.validation.yaml คุณสามารถเปลี่ยนสิ่งนี้ได้โดยใช้ --config flag
กฎทั้งหมดถูกเปิดใช้งานโดยค่าเริ่มต้นและอธิบายไว้ในเอกสารการกำหนดค่าการตรวจสอบความถูกต้องของ Monokle
ตัวอย่าง
plugins :
yaml-syntax : true
kubernetes-schema : true
rules :
yaml-syntax/no-bad-alias : " warn "
yaml-syntax/no-bad-directive : false
open-policy-agent/no-last-image : " err "
open-policy-agent/cpu-limit : " err "
open-policy-agent/memory-limit : " err "
open-policy-agent/memory-request : " err "
settings :
kubernetes-schema :
schemaVersion : v1.24.2เป็นเรื่องง่ายที่จะขยาย Monokle CLI ด้วยตัวตรวจสอบที่กำหนดเองซึ่งสามารถแบ่งปันกับผู้อื่นโดยใช้ที่เก็บปลั๊กอินชุมชน Monokle ของเรา
คุณสามารถใช้ภาพ Docker monokle-cli:latest เพื่อเรียกใช้ Monokle CLI ในสภาพแวดล้อมที่บรรจุ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการรวม monokle เข้ากับท่อ CI/CD หรือระบบอัตโนมัติอื่น ๆ
ในการเรียกใช้อิมเมจนักเทียบท่าคุณสามารถใช้คำสั่ง docker run อาร์กิวเมนต์ Monokle CLI สามารถส่งโดยตรงไปยังคำสั่ง Docker Run ตัวอย่างเช่น:
docker run -v /path/to/input:/input -e CONFIG_FILE=my-validation-config.yaml monokle-cli:latest validate /input
ในคำสั่งนี้:
-v /path/to/input:/input ติดตั้งไดเรกทอรีจากระบบโฮสต์ของคุณไปยังไดเรกทอรี/อินพุตภายในคอนเทนเนอร์ Docker-e CONFIG_FILE=my-validation-config.yaml ตั้งค่าตัวแปรสภาพแวดล้อมภายในคอนเทนเนอร์ Docker หากตั้งค่าตัวแปรสภาพแวดล้อมนี้คอนเทนเนอร์ Docker จะใช้ไฟล์ที่ระบุเป็นการกำหนดค่าการตรวจสอบความถูกต้องของ Monoklevalidate /input เป็นคำสั่งที่จะถูกส่งผ่านไปยัง Monokle CLI คุณสามารถแทนที่สิ่งนี้ด้วยคำสั่งใด ๆ ที่คุณต้องการเรียกใช้กับ Monokle CLI