
Monokle CLIは、Kubernetesリソースの静的分析のためのコマンドラインインターフェイスです。
それを使用して、Kustomize、Helm、またはデフォルトのKubernetesリソース内の誤った採掘を防ぎます。出力は、GitHub CodescanにアップロードできるSARIFファイルとして利用できます。
Monokle CLIでは、Monokle CloudおよびMonokle Enterpriseとの統合を可能にして、すべてのリポジトリとパイプラインの検証ポリシーを中央に管理および実施します。
Blog-Postの発表で、Monokle CLI機能とMonokleエコシステム全体の詳細を読むことができます。
NPM経由でMonokle CLIをインストールできます。
npm install --global @monokle/cliまたは、あなたがmacosにいる場合はbrewを使用してください:
brew install kubeshop/monokle/monokle-cliMonokle CLIは次のコマンドを公開します。
monokle validate [path] - 特定のパスでKubernetesリソースを検証します。monokle initローカル構成ファイルを生成します。monokle login - モノクルクラウドまたはエンタープライズにログインして、リモートポリシーを使用します。monokle logout - Monokle CloudまたはEnterpriseからのログアウト。monokle whoami現在認証されているユーザーに関する情報を取得します。monokle config show [path] - 指定されたパスの検証に使用されるポリシー構成ファイルを表示します。いつでも--help引数を使用して、利用可能なすべてのコマンドのリストまたは各コマンドに関する詳細情報を取得できます。
Monokle CLIには、Bockの外のK8S構成の包括的な検証の可能性を提供するための組み込みのバリデーターが含まれています。
フードの下では、[@monokle/validation] [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 Cloudにログインする必要があります。これはmonokle loginコマンドを介して実行できます。
monokle loginその後、単にvalidateコマンドを実行します。 Monokle CLIは、ユーザーデータに基づいてリモートポリシーを取得します。
monokle validate path/to/validate重要:リモートポリシーを最初に構成する必要があることに注意してください。以下のMonokle Cloudセクションでの使用を参照してください。
Monokle CLIは、Frameworksと呼ばれる事前定義されたルールセットをサポートしています。これにより、追加の構成を必要とせずに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その後、VSCのSarif Viewerまたはその他のツールを使用して、結果を調べることができます。
Monokle CLIでリモートポリシーを使用するには、プロジェクトを作成し、Monokle Cloudでポリシーを構成する必要があります。 Monokle Cloudにサインインすることから始めます。
疑問のある場合は、Getting Guide Guideを参照するか、Discordで直接当たります。
サインアップした後、プロジェクトページでプロジェクトを作成することから始めます。

プロジェクトが作成されたら、プロジェクトにリポジトリ(地元で作業するもの)をプロジェクトに追加します。これは、プロジェクトビューのRepositoriesタブに移動し、 Add repository ]ボタンを使用して実行できます。

最後のステップはポリシーセットアップです。プロジェクトビューのPolicyタブに移動することで、ポリシーウィザードを使用できます。

セットアップが完了したら、 monokle validateコマンドを実行でき、ログインしている限りリモートポリシーを使用できます。
Monokle Enterprise(自己ホスト)で使用することは、Monokle Cloudでの使用に非常に似ています。主な違いは、モノクルCLIが通信する起源(URL)です。これは、 loginまたは各コマンドに対して個別に設定できます(自動シナリオに役立ちます)。
monokle login --origin https://monokle.mydomain.com重要:env変数
MONOKLE_ORIGIN使用して、ロギングコマンドの原点を設定することもできます。どちらも使用しない場合、CLIはカスタムオリジンを使用するたびに促します。
ログインせずに--originフラグを使用するには、以下のCI/CDパイプラインの使用を参照してください。
Monokle GitHub Bot専用しており、CLIを直接使用するよりも、Monokle Cloudとの統合をより厳しくするGithub CI/CDパイプラインに集中型ポリシー管理を統合しています。
CI/CDパイプラインの一部としてMonokle CLIを使用するには、最初にインストールしてから、 monokle validate path/to/resourcesで実行する必要があります。
もう1つのケースは、このようなシナリオでMonokle Cloudから中央管理ポリシーを使用することです。そのため、Project IDとともに、ポリシーを使用するプロジェクトIDとともに、自動化トークン( WorkspaceビューのAutomation tokenタブを介して生成できます)を使用する必要があります。
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_IDプロジェクトIDは、url
https://app.monokle.com/dashboard/projects/<projectId>からプロジェクトの詳細ページで取得できます。
また、モノクルエンタープライズの独自のインスタンスを実行するときにポリシーを取得するために使用される原点を変更することもできます。
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 Githubアクションを使用して、GitHubのCI/CDパイプラインの一部としてリソースを検証できます。ドライランの結果の検証に関しては、よりカスタマイズ可能性が得られます。
Monokle Cloudとしっかりと統合されたものが必要な場合は、 Monokle GitHub Botを使用することをお勧めします。
--helpを使用するには、CLIから直接ヘルプ情報にアクセスできます。
Monokle CLIは./monokle.validation.yaml 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モノクルCLIを、Monokleコミュニティプラグインリポジトリを使用して他の人と共有できるカスタムバリッターを使用して簡単に拡張できます。
Docker Image monokle-cli:latestを使用して、コンテナ化された環境でMonokle CLIを実行できます。これは、モノクルを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ホストシステムからDockerコンテナ内の/入力ディレクトリにディレクトリをマウントします。-e CONFIG_FILE=my-validation-config.yaml Dockerコンテナ内の環境変数を設定します。この環境変数が設定されている場合、Dockerコンテナは指定されたファイルをMonokle検証構成として使用します。validate /inputモノクルCLIに渡されるコマンドです。これをMonokle CLIで実行するコマンドに置き換えることができます。