2.2. ルールのラベル
ラベルは、ルールまたはルールセット、および依存関係に対して指定された key=val
のペアです。依存関係の場合、プロバイダーは依存関係を取得する際にラベルを依存関係に追加します。ルールセットのラベルは、それに属するすべてのルールに自動的に継承されます。
ラベル形式
ラベルは key=val
形式の文字列のリストとして、labels
フィールドの下に次のように指定されます。
labels: - "key1=val1" - "key2=val2"
labels:
- "key1=val1"
- "key2=val2"
ラベルのキーにはサブドメインの接頭辞を付けることができます。
labels: - "konveyor.io/key1=val1"
labels:
- "konveyor.io/key1=val1"
ラベルの値は空にすることもできます。
labels: - "konveyor.io/key="
labels:
- "konveyor.io/key="
ラベルの値は省略できます。その場合は空の値として処理されます。
labels: - "konveyor.io/key"
labels:
- "konveyor.io/key"
予約済みラベル
アナライザーは、次のように特別な意味を持ついくつかのラベルを定義します。
-
konveyor.io/source
: ルールまたはルールセットが適用されるソーステクノロジーを識別します。 -
konveyor.io/target
: ルールまたはルールセットが適用されるターゲットテクノロジーを識別します。
ラベルセレクター
アナライザー CLI は、オプションとして --label-selector
フィールドを使用します。これは、論理演算 AND、OR、NOT をサポートする文字列式です。これを使用して、ラベルに基づきルールをフィルターインまたはフィルターアウトできます。
例:
キーが
konveyor.io/source
、値がeap6
のラベルを持つすべてのルールをフィルターインするには、次のようにします。--label-selector="konveyor.io/source=eap6"
konveyor.io/source
キーと任意の値のラベルを持つすべてのルールをフィルターインするには、次のようにします。--label-selector="konveyor.io/source"
複数のルールの一致に対して
&&
演算子を使用して論理 AND 演算を実行するには、次のようにします。--label-selector="key1=val1 && key2"
複数のルールの一致に対して
||
演算子を使用して論理 OR 演算を実行するには、次のようにします。--label-selector="key1=val1 || key2"
!
演算子を使用して NOT 演算を実行し、key1=val1
ラベルが設定されているルールをフィルターアウトするには、次のようにします。--label-selector="!key1=val1"
部分式をグループ化し、AND を使用して優先順位を制御するには、次のようにします。
--label-selector="(key1=val1 || key2=val2) && !val3"
依存関係ラベル
アナライザーエンジンは、依存関係にラベルを追加します。このラベルは、プログラミング言語や依存関係がオープンソースか内部依存かなど、依存関係に関する追加情報を提供します。
現在、アナライザーは次のラベルを依存関係に追加します。
labels: - konveyor.io/dep-source=internal - konveyor.io/language=java
labels:
- konveyor.io/dep-source=internal
- konveyor.io/language=java
依存関係ラベルセレクター
アナライザー CLI は --dep-label-selector
オプションを受け入れます。これにより、依存関係から生成されたインシデントを、ラベルに基づきフィルターインまたはフィルターアウトできます。
たとえばアナライザーは、依存関係が既知のオープンソース依存関係であるかどうかを示す値を持つ konveyor.io/dep-source
ラベルを依存関係に追加します。
このようなオープンソース依存関係のインシデントをすべて除外するには、次のように --dep-label-selector
を使用します。
konveyor-analyzer … --dep-label-selector !konveyor.io/dep-source=open-source
アナライザーの Java プロバイダーは、パッケージのリストに除外ラベルを追加することもできます。このようなパッケージをすべて除外するには、次のように --dep-label-selector
と !
演算子を使用します。
konveyor-analyzer … --dep-label-selector !konveyor.io/exclude