Config Connector CRD について

Config Connector には、カスタム リソース定義(CRD)のコレクションが含まれています。各 CRD を使用すると、Kubernetes から Google Cloudリソースを構成できます。Config Connector を使用すると、 Google Cloud リソースの管理に Kubernetes のさまざまな機能を使用することもできます。

このページでは、Config Connector が Kubernetes オブジェクトとそのメタデータを使用する方法について説明します。

Kubernetes オブジェクトと Config Connector のリソース

たとえば、kind: SQLInstance の Kubernetes オブジェクトを作成すると、Config Connector は Cloud SQL インスタンスを作成します。このセクションでは、Config Connector がオブジェクト タイプを拡張する方法について説明します。

Spec と Status

各 Config Connector リソースは、Spec と Status を含む Kubernetes オブジェクトです。

Spec
spec フィールドには、オブジェクトの望ましい状態を定義するすべてのフィールドが含まれています。spec のサブフィールドは、関連付けられた Google Cloud リソースを参照します。サブフィールドを変更すると、 Google Cloud リソースの値は、意図した値と最終的に整合性が取れます。
書き込み可能なフィールドの例は、SQLInstance リソースの databaseVersion です。
spec.labels を含む Config Connector リソースの場合、Config Connector リソースの spec.labels フィールドで構成されたラベルが、関連付けられた Google Cloud リソースに適用されます。詳しくは、ラベルの管理をご覧ください。
ステータス
status フィールドは読み取り専用で、オブジェクトの現在の状態が含まれています。Config Connector は、 Google Cloudリソースの情報を定期的に読み取り、status を更新します。リソースのエラー メッセージまたは準備状況を確認するには、Status.Condition を確認します。
読み取り専用の status フィールドの例として、SQLInstance リソースの connectionName があります。

オブジェクトのメタデータ

各 Config Connector リソースには、metadata フィールドが含まれています。このセクションでは、Config Connector がメタデータ内のサブフィールドを使用する方法について説明します。

名前
Config Connector リソースの名前。Kubernetes オブジェクト名の命名規則に従う必要があります。デフォルトでは、対応する Google Cloud リソースの名前として使用されます。Config Connector リソースで resourceID フィールドがサポートされている場合は、 Google Cloudリソースの命名規則に従って、spec.resourceID フィールドの対応する Google Cloud リソースに別の名前を指定できます。詳細については、resourceID フィールドを使用したリソースの管理をご覧ください。
名前空間
Config Connector リソースを作成する Namespace によって、 Google Cloud リソースを含むプロジェクトが決まります。Namespace の詳細については、Kubernetes Namespace と Google Cloud プロジェクトをご覧ください。
ラベル
リソースによっては、Config Connector リソースの metadata.labels フィールドのラベルが関連付けられた Google Cloudリソースに適用されることがあります。詳しくは、ラベルの管理をご覧ください。
Config Connector は、ラベルをサポートする Google Cloud リソースに、値が true の managed-by-cnrm という名前のシステムラベルを追加します。
アノテーション
Config Connector は、spec で定義されていないリソースに対して追加のアクションを実行できます。これらのアクションは、metadata.annotations のサブフィールドで定義されます。アノテーション値は文字列であることが必須です。Config Connector がサポートするアノテーションのタイプについては、アノテーションをご覧ください。

ラベルの管理

ラベルをサポートする Google Cloud リソースの場合、ラベルを定義する場所は、Config Connector リソースに spec.labels フィールドがあるかどうかによって異なります。

  • spec.labels フィールドを含むリソース: spec.labels でラベルを管理する必要があります。このフィールドでユーザーが指定したラベルは、Google Cloud リソースに適用されます。
  • spec.labels フィールドのないリソース: metadata.labels のすべてのラベル(ユーザー指定のラベルとシステムラベルの両方を含む)が Google Cloud リソースに適用されます。

フォルダと階層リソース

Config Connector は、 Google Cloud プロダクトのリソースの管理に加えて、Google Cloud フォルダと組織内でのリソースの作成と管理もサポートしています。詳細については、Namespace とプロジェクトをご覧ください。

RBAC をアクセス制御に使用する

Kubernetes のロールベースのアクセス制御(RBAC)によって、リソースが保護されます。RBAC 権限を割り当てることで、 Google Cloudリソースの作成を制御できます。詳細については、リソースへのアクセスの保護をご覧ください。

ステータスの状態

Config Connector は、status.condition の準備完了状態を次の 2 つの目的で使用します。

  • リソースの準備が整うタイミングを示しています。リソースの調整と準備が完了すると、status.condition.status は True に設定されます。リソースの準備が完了するタイミングを確認するには、リソースの準備を待機するをご覧ください。
  • 追加のエラーまたは情報を表示しています。準備完了条件には、リソースのステータスに関する追加情報を示す Message フィールドと Reason フィールドがあります。

イベント

Config Connector リソースの重要なステータスの変更は、Kubernetes イベントとして表示されます。詳細については、イベントの表示をご覧ください。

宣言型構成と結果整合性

調整をご覧ください。

次のステップ