
Monokle CLI是用於靜態分析Kubernetes資源的命令行界面。
使用它來防止Kustomize,Helm或默認的Kubernetes資源中的錯誤配置。輸出可作為SARIF文件可用,您可以將其上傳到GitHub Codescan。
Monokle CLI允許與Monokle Cloud和Monokle Enterprise集成,以中心管理和執行所有存儲渠和管道的驗證策略。
您可以在公告博客群中閱讀有關Monokle CLI功能和整個Monokle生態系統的更多信息。
您可以通過NPM安裝Monokle CLI:
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或Enterprise註銷。monokle whoami獲取有關當前身份驗證用戶的信息。monokle config show [path] - 顯示策略配置文件,該文件將用於驗證的給定路徑。您可以始終使用--help參數獲取所有可用命令的列表或有關每個命令的詳細信息。
Monokle CLI包括內置驗證器,為您提供開箱即用的K8S配置的全面驗證可能性:
在引擎蓋下,它使用[@monokle/驗證] [https://github.com/kubeshop/monokle-core/tree/main/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 Cloud。可以通過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使用Frameworks是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之後,您可以使用VSC的SARIF查看器或其他工具來檢查結果。
要使用Monokle CLI使用遠程策略,您將需要在Monokle Cloud中創建一個項目並為其配置策略。首先登錄Monokle Cloud。
如果有疑問,請參閱“入門指南”或直接在不和諧中擊中我們。
註冊後,首先在項目頁面上創建一個項目:

創建項目後,將一個存儲庫(您將在本地使用的存儲庫)添加到一個項目。這可以通過在項目視圖中的Repositories庫標籤中使用並使用Add repository按鈕來完成:

最後一步是策略設置。您可以通過轉到項目視圖中的Policy選項卡來使用策略嚮導:

設置完成後,您可以運行monokle validate命令,只要您登錄,它就會使用遠程策略。
使用Monokle Enterprise(自我託管)與Monokle Cloud的使用非常相似。主要區別是Monokle CLI將與之交流的起源(URL)。可以在login或每個命令上設置此設置(對於自動場景)。
monokle login --origin https://monokle.mydomain.com重要的是:ENV變量
MONOKLE_ORIGIN也可用於將原點設置為記錄命令。如果兩者都不使用,CLI將在使用自定義原始原點時提示。
對於使用--origin標誌而無需登錄,請參閱下面的CI/CD管道部分上的使用。
我們已經專門使用
Monokle GitHub Bot將集中策略管理集成到GitHub CI/CD管道中,該策略與直接使用CLI相比,它與Monokle Cloud更加更緊密地集成。
要將Monokle CLI用作CI/CD管道的一部分,需要先安裝它,然後簡單地使用monokle validate path/to/resources運行。
另一種情況是在這種情況下使用Monokle Cloud中心管理的政策。在這種情況下,應該使用自動化令牌(可以通過Workspace視圖中的Automation token製成)以及應使用策略的項目ID:
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_ID可以從url
https://app.monokle.com/dashboard/projects/<projectId>從項目詳細信息頁面上獲取項目ID。
您還可以更改將使用該來源的來源(例如運行自己的Monokle Enterprise實例時):
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_ID -r https://monokle.mydomain.com重要的是:始終記住將API代幣作為秘密,並以與其他秘密相同的方式將其傳遞給CI/CD作業。
Monokle GitHub機器人可以用來驗證您的資源作為GitHub CI/CD管道的一部分。它與Monokle Cloud開箱即用,以允許簡單的集中策略管理。
Monokle GitHub動作可用於驗證您的資源,作為您在GitHub上的CI/CD管道的一部分。在驗證乾式運行結果時,它提供了更多的自定義性。
如果您需要與Monokle Cloud緊密集成的東西,我們建議使用Monokle GitHub Bot 。
您可以使用--help直接從CLI訪問幫助信息。
Monokle CLI在./monokle.validation.yaml上尋找Monokle驗證配置文件。您可以使用--config標誌來更改此操作。
默認情況下啟用了所有規則,並在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 Image monokle-cli:latest ,以在容器化的環境中運行Monokle CLI。這對於將Monokle集成到CI/CD管道或其他自動化系統中可能特別有用。
要運行Docker映像,您可以使用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 。-e CONFIG_FILE=my-validation-config.yaml設置了碼頭容器內的環境變量。如果設置了此環境變量,則Docker容器將使用指定的文件作為Monokle驗證配置。validate /input是將傳遞給Monokle CLI的命令。您可以用要使用Monokle CLI運行的任何命令替換此命令。