第23章 プロファイルの自動タグ付けの設定
イントロスペクションプロセスでは、一連のベンチマークテストを実行します。director は、これらのテストからデータを保存します。このデータをさまざまな方法で使用するポリシーセットを作成することができます。
- ポリシーにより、パフォーマンスの低いノードまたは不安定なノードを特定して、これらのノードがオーバークラウドで使用されないように隔離することができます。
- ポリシーにより、ノードを自動的に特定のプロファイルにタグ付けするかどうかを定義することができます。
23.1. ポリシーファイルの構文
ポリシーファイルは JSON 形式で、ルールセットが記載されます。各ルールでは、説明、条件、およびアクションが定義されます。説明 はプレーンテキストで記述されたルールの説明で、条件 はキー/値のパターンを使用して評価を定義し、アクション は条件のパフォーマンスを表します。
説明
これは、プレーンテキストで記述されたルールの説明です。
例:
"description": "A new rule for my node tagging policy"
conditions
ここでは、以下のキー/値のパターンを使用して評価を定義します。
- field
評価するフィールドを定義します。
-
memory_mb
: ノードのメモリーサイズ (MB 単位) -
cpus
: ノードの CPU の合計スレッド数 -
cpu_arch
: ノードの CPU のアーキテクチャー -
local_gb
: ノードのルートディスクの合計ストレージ容量
-
- op
評価に使用する演算を定義します。これには、以下の属性が含まれます。
-
eq
: 等しい -
ne
: 等しくない -
lt
: より小さい -
gt
: より大きい -
le
: より小さいか等しい -
ge
: より大きいか等しい -
in-net
: IP アドレスが指定のネットワーク内にあることを確認します。 -
matches
: 指定の正規表現と完全に一致する必要があります。 -
contains
: 値には、指定の正規表現が含まれる必要があります。 -
is-empty
:field
が空欄であることを確認します。
-
- invert
- 評価の結果をインバージョン (反転) するかどうかを定義するブール値
- multiple
複数の結果が存在する場合に、使用する評価を定義します。このパラメーターには以下の属性が含まれます。
-
any
: いずれかの結果が一致する必要があります。 -
all
: すべての結果が一致する必要があります。 -
first
: 最初の結果が一致する必要があります。
-
- value
- 評価する値を定義します。フィールド、演算および値の条件が満たされる場合には、true の結果を返します。そうでない場合には、条件は false の結果を返します。
例:
"conditions": [ { "field": "local_gb", "op": "ge", "value": 1024 } ],
アクション
条件が true
の場合には、ポリシーはアクションを実行します。アクションでは、action
キーおよび action
の値に応じて追加のキーが使用されます。
-
fail
: イントロスペクションが失敗します。失敗のメッセージには、message
パラメーターが必要です。 -
set-attribute
: ironic ノードの属性を設定します。ironic の属性へのパス (例:/driver_info/ipmi_address
) を指定するpath
フィールドおよび設定するvalue
が必要です。 -
set-capability
: ironic ノードのケイパビリティーを設定します。新しいケイパビリティーの名前と値を指定するname
およびvalue
フィールドが必要です。これにより、このケイパビリティーの既存の値が置き換えられます。たとえば、これを使用してノードのプロファイルを定義します。 -
extend-attribute
:set-attribute
と同じですが、既存の値をリストとして扱い、そのリストに値を追記します。オプションのunique
パラメーターを True に設定すると、対象の値がすでにリストに含まれている場合には何も追加しません。
例:
"actions": [ { "action": "set-capability", "name": "profile", "value": "swift-storage" } ]