4.16.5. ポリシーコマンドラインツール
policytools コマンドラインツールを使用すると、ポリシーをローカルで操作して、作成とデバッグを支援できます。policytools コマンドラインツールは、ハブクラスターコンソールからダウンロードできます。コマンドラインツール を参照してください。
template-resolvertemplate-resolverはポリシーに埋め込まれているマネージドクラスターとハブクラスターテンプレートを解決するpolicytoolsのサブコマンドです。template-resolverは、ファイルまたは標準入力から読み取ります。ハブクラスターテンプレートを使用してポリシーを解決するには、Red Hat Advanced Cluster Management にインポートされるマネージドクラスターの名前を
--cluster-name引数に指定する必要があります。また、ハブクラスターを参照するkubeconfigファイルへのパスを--hub-kubeconfig引数に指定する必要があります。入力ポリシーで
.ObjectNameまたは.ObjectNamespaceテンプレート変数が使用されている場合は、--object-nameおよび--object-namespace引数を使用して値を設定する必要があります。template-resolverサブコマンドは、マネージドクラスターとハブクラスターに接続して、テンプレートを解決するために必要な情報を取得します。--save-resourcesおよび--save-hub-resources引数を使用してパスを指定し、template-resolverが取得するリソースを保存します。保存されたファイルは、dryrunサブコマンドの入力として使用できます。テクノロジープレビュー:
policytoolsコマンドラインインターフェイスでは、template-resolverサブコマンドに--lint引数が導入され、入力ポリシーから解決された Go テンプレートとともに、リンティングの問題がすべて出力されます。リンターの実行結果を Static Analysis Results Interchange Format (SARIF) レポートとして生成するには、--sarif引数でファイルパスを指定します。dryrundryrunは、クラスターの状態の静的入力リソースを使用して、ConfigurationPolicyリソースをローカルで評価するpolicytoolsのサブコマンドです。ポリシーを実行するには、
--policyフラグを使用してConfigurationPolicyYAML にパスを追加します。現在のクラスターの状態として使用される追加のリソース YAML ファイルを提供できます。たとえば、ポリシーで namespace の特定の設定を定義する場合は、現在の namespace の状態を指定して、ポリシーが何を行うかを確認します。同じリソースファイル内に複数のリソースを含めることができます。ライブクラスターの現在の状態に対してポリシーを評価するには、
--from-clusterフラグを使用するか、DRYRUN_FROM_CLUSTER環境変数をtrueに設定します。
dryrun サブコマンドは、kubeconfig ファイルで設定したクラスター、または KUBECONFIG 環境変数で指定されたクラスターから、リソースの現在の状態を直接読み取ります。どちらのシナリオでも、dryun サブコマンドは、リソースファイルから情報を収集しません。
--from-cluster フラグを有効にすると、入力として提供された YAML リソースファイルはすべて無視されます。--from-cluster フラグを有効にすると、リソースファイルを手動でエクスポートしてサポートすることなく、実際のクラスターの状態に対してポリシーをテストできます。
+ デフォルトでは、dryrun は、ポリシーで定義されたオブジェクトの望ましい状態とそれらのリソースの現在の状態の違い、および ConfigurationPolicy によって作成されるコンプライアンスメッセージを出力します。
コンプライアンスメッセージを別のファイルに保存するには、--messages-path 引数を使用します。関連オブジェクトに関する追加情報を含む完全なポリシーステータスを保存するには、--status-path 引数を使用します。
+ 入力に基づいてポリシーが NonCompliant の場合、ツールはゼロ以外の終了コードを返します。結果のステータスを既知のステータスと比較するには、--desired-status 引数を使用します。たとえば、ポリシーが不足しているリソースを報告していることを確認するには、不足しているリソースを .relatedObjects リスト内に含める YAML ファイルを提供します。ポリシーが NonCompliant であることを確認するには、compliant: NonCompliant 行を含む YAML ファイルを作成します。