リソース

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

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

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

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

Spec と Status

各 Config Connector リソースは、SpecStatus を持つ Kubernetes オブジェクトです。

Spec
spec フィールドには、Labels を除いて、オブジェクトの目的とする状態を定義するすべてのフィールドが含まれています。spec のサブフィールドは、関連付けられた Google Cloud リソースを参照します。サブフィールドを変更すると、Google Cloud リソースの値は、意図した値と結果整合性があります。
書き込み可能なフィールドの例は、SQLInstance リソースの databaseVersion です。
Status
status フィールドは読み取り専用で、オブジェクトの現在の状態が含まれています。Config Connector は、Google Cloud リソースの情報を定期的に読み取り、status を更新します。Status.Condition で、リソースのエラー メッセージや readiness を確認できます。
読み取り専用の status フィールドの例は、SQLInstance リソースの connectionName です。

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

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

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

Config Connector は、spec に定義されていないリソースに対して追加のアクションを実行できます。これらのアクションは、metadata.annotations のサブフィールドで定義されます。アノテーション値は文字列である必要があります。 Config Connector でサポートされるアノテーションのタイプについては、以降のセクションで説明します。

削除

デフォルトでは、クラスタからオブジェクトを削除した後に、Config Connector によってリソースが削除されます。リソースを保持する場合は、deletion-policy アノテーションを設定します。

ディレクティブ

ディレクティブは、リソースの作成や削除以外の追加のアクションを実行するように Config Connector を構成します。

たとえば、Cloud Storage では、オブジェクトを含む StorageBucket を削除することはできません。force-destroy アノテーションをバケットに適用してからバケットを削除すると、Config Connector はまずバケット内のすべてのオブジェクトを削除してから、バケットを削除します。

たとえば、force-destroy ディレクティブは次の YAML スニペットで宣言されています。

metadata:
  annotations:
    cnrm.cloud.google.com/force-destroy: "true"

ディレクティブをサポートするリソースについては、リソースをご覧ください。

フォルダと階層リソース

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

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

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

ステータスの状態

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

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

イベント

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

宣言型構成と結果整合性

調整をご覧ください。

次のステップ