17.4. デプロイメントコレクションの作成
コレクションを作成する場合は、コレクションに名前を付けて、コレクションのルールを定義する必要があります。
手順
- Collections ページで、Create collection をクリックします。
- コレクションの名前と説明を入力します。
Collection rules セクションで、次のアクションの 1 つ以上を実行する必要があります。
- コレクションのルールを定義します。詳細は、「コレクションルールの作成」セクションを参照してください。
- 既存のコレクションをコレクションにアタッチします。詳細は、「アタッチされたコレクションの追加」セクションを参照してください。
- ルールの設定またはアタッチされたコレクションの選択の結果は、Collection results ライブプレビューパネルで確認できます。このパネルを非表示にするには、Hide results をクリックします。
- Save をクリックします。
17.4.1. コレクションルールの作成
コレクションを作成する場合は、1 つ以上のルールを設定するか、作成する新しいコレクションに別のコレクションをアタッチする必要があります。
現在、コレクションはデプロイメントでのみ使用できます。
コレクションに含めるリソースを選択するルールを設定します。プレビューパネルを使用して、設定したコレクションルールの結果を確認します。ルールは任意の順序で設定できます。
手順
Deployments セクションで、ドロップダウンリストから次のいずれかのオプションを選択します。
- No deployments specified: 検索でデプロイメント条件を使用しない場合は、このオプションを選択します。
Deployments with names matching: 名前で選択する場合はこのプションを選択し、次のいずれかのオプションを選択します。
- An exact value of: デプロイメントの正確な名前を入力します。
-
A regex value of: 正規表現を使用してデプロイメントを検索できます。このオプションは、デプロイメントの正確な名前がわからない場合に役立ちます。正規表現は、パターンを定義する文字、数字、および記号の文字列です。RHACS は、このパターンを使用して、文字または文字グループを照合し、結果を返します。正規表現では、RE2 構文 がサポートされています。Perl 構文はサポートされていません。すべてのデプロイメント を選択するには、このオプションを選択して
.*
を入力します。詳細と例は、「正規表現の使用」を参照してください。
-
Deployments with labels matching exactly: このオプションを選択して、入力したテキストと正確に一致するラベルが付いたデプロイメントを選択します。ラベルは、
key=value
形式の有効な Kubernetes ラベルにする必要があります。
- オプション: 追加の包含条件に一致する名前またはラベルが付いたデプロイメントをさらに追加するには、OR をクリックして、別の正確な値または正規表現の値を設定します。
17.4.1.1. 正規表現の使用
RHACS は、デプロイメントを内包または除外するようにコレクションを設定する場合など、ポータルの一部の領域で正規表現を使用します。
たとえば、コレクションの設定時に正規表現を使用してデプロイメントを検索できます。このオプションは、デプロイメントの正確な名前がわからない場合に役立ちます。正規表現は、パターンを定義する文字、数字、および記号の文字列です。RHACS は、このパターンを使用して、文字または文字グループを照合し、結果を返します。正規表現は、次のガイドラインに注意してください。
- RE2 構文 はサポートされています。
- Perl 構文はサポートされていません。
- たとえば https://regex101.com/ などのサイトを使用して、正規表現の構文をテストすることが推奨されます。フレーバーとして Golang を選択します。
次の例では、実稼働クラスターの名前に prod
という単語が含まれており、これは命名規則に準拠していると想定しています。
実稼働環境のクラスターのコレクション作成に使用する正規表現の例
- Collection rules で、Clusters with names matching を選択します。
ドロップダウンリストから A regex value of を選択し、次のテキストを入力します。
^prod.*
^prod.*
Copy to Clipboard Copied!
非実稼働環境のクラスターのコレクション作成に使用する正規表現の例
RE2 構文では、否定先読みを使用して一致させることはできません。つまり、要素が 存在しない 場合に正規表現を一致させることはできません。回避策として、クラスター名に prod
という単語が表示されない場合、正規表現を使用して一致させることができます。つまり、p
、r
、o
、d
の文字が順番に表示されない場合に一致させることができます。
- Collection rules で、Clusters with names matching を選択します。
ドロップダウンリストから A regex value of を選択し、次のテキストを入力します。
^[^p]*(p([^r]|$|r([^o]|$|o([^d]|$))))*[^p]*$
^[^p]*(p([^r]|$|r([^o]|$|o([^d]|$))))*[^p]*$
Copy to Clipboard Copied!
クラスター、namespace、デプロイメント階層内のすべてのエンティティーに一致するコレクション作成に使用する正規表現の例
Collection rules で、Deployments with names matching を選択します。
-
ドロップダウンリストから A regex value of を選択し、
.*
を入力します。
-
ドロップダウンリストから A regex value of を選択し、
Namespaces with names matching を選択します。
-
ドロップダウンリストから A regex value of を選択し、
.*
を入力します。
-
ドロップダウンリストから A regex value of を選択し、
Clusters with names matching を選択します。
-
ドロップダウンリストから A regex value of を選択し、
.*
を入力します。
-
ドロップダウンリストから A regex value of を選択し、
名前付きデプロイメントとデータベース、および特定のラベルが含まれるコレクション作成に使用する正規表現の例
次の例は、医療アプリケーションのコレクションを設定する手順を示しています。この例では、コレクションに reporting
デプロイメント、つまり patient-db
というデータベースを含め、key = kubernetes.io/metadata.name
および value = medical
というラベルが付いた namespace を選択します。この例では、次の手順を実行します。
- Collection rules で、Deployments with names matching を選択します。
- An exact value of をクリックし、reporting と入力します。
- OR をクリックします。
A regex value of をクリックし、
.*-db
と入力し、環境内で名前がdb
で終わるすべてのデプロイメントを選択します。regex value
オプションは、パターンマッチングに正規表現を使用します。正規表現では、RE2 構文 がサポートされています。Perl 構文はサポートされていません。右側のパネルには、含めたくないデータベースが表示される場合があります。追加のフィルターを使用して、これらのデータベースを除外できます。以下に例を示します。-
Namespaces with labels matching exactly をクリックし、
kubernetes.io/metadata.name=medical
と入力して、namespace ラベルでフィルタリングして、medical
というラベルが付いた namespace にデプロイメントのみを含めます。 - namespace の名前がわかっている場合は、Namespaces with names matching をクリックし、名前を入力します。
-
Namespaces with labels matching exactly をクリックし、
17.4.2. アタッチされたコレクションの追加
デプロイメントに基づいて、小さなコレクションを作成する場合は、コレクションをグループ化して、他のコレクションに追加すると、便利です。これらの小さなコレクションを再利用および結合し、より大きな階層コレクションにすることができます。作成中のコレクションにコレクションを追加するには:
次のいずれかの操作を実行します。
- Filter by name フィールドにテキストを入力し、→ を押して、一致する結果を表示します。
- Available collections リストからコレクションの名前をクリックして、コレクションの名前とルール、およびそのコレクションに一致するデプロイメントなど、コレクションに関する情報を表示します。
- コレクション情報を表示したら、ウィンドウを閉じて、Attached collections ページに戻ります。
+Attach をクリックします。Attached collections セクションには、アタッチしたコレクションが一覧表示されます。
注記アタッチされたコレクションを追加すると、アタッチされたコレクションには、設定された選択ルールに基づく結果が含まれます。たとえば、アタッチされたコレクションに、親コレクションで使用されるルールによって除外されるリソースが含まれている場合は、アタッチされたコレクションのルールにより、それらのアイテムは引き続き親コレクションに追加されます。アタッチされたコレクションは、
OR
演算子を使用して、元のコレクションを拡張します。- Save をクリックします。