未指定のフィールドを無視する

このページでは、Config Connector リソースの spec フィールドのデフォルトの入力動作と、既存のリソースを以前の Merge 動作から推奨の Absent 動作に移行する方法について説明します。バージョン 1.114.0 以降で追加された CustomResourceDefinition(CRD)を使用している場合、それらの CRD は Absent の動作のみをサポートするため、このページは適用されない可能性があります。Merge の動作をサポートする CRD の一覧については、このページの Merge をサポートする種類セクションをご覧ください。

spec フィールドの入力動作

Config Connector がリソースを作成するときに、Kubernetes リソースの spec フィールドで指定されていないフィールドには、Absent と Merge の 2 つの異なる入力動作が見られます。

欠落

Absent の動作は推奨される動作です。リソースが Absent 動作を使用する場合、Config Connector は未指定のフィールドを Kubernetes リソースの spec フィールドに入力しません。

Config Connector バージョン 1.123.1 以降では、ConfigConnector または ConfigConnectorContext カスタム リソースで spec.stateIntoSpec フィールドの値を Merge に設定しない限り、Absent の動作が、新しく作成されたすべてのリソースのデフォルトの入力動作になります。cnrm.cloud.google.com/state-into-spec アノテーションを使用するリソースの場合、Config Connector はアノテーションの値をデフォルトで小文字の absent に設定します(spec.stateIntoSpec フィールドは、大文字の Absent または Merge を使用します)。直接コントローラによって調整されたリソースは、アノテーションを追加せずに Absent の動作を使用します。

バージョン 1.114.0 以降で追加された CRD の場合、Absent の動作は、サポートされている唯一の入力動作です。

統合

Merge の動作は、バージョン 1.114.0 以降で追加された CRD ではサポートされていません。リソースが Merge 動作を使用する場合、spec フィールドは、読み取り可能でない限り、調整が正常に完了した後に Google Cloud API から値を取得します。詳しくは、フィールドを外部で管理するをご覧ください。

バージョン 1.113.0 以前で追加された CRD の場合、Config Connector は Absent と Merge の両方の動作をサポートします。サポートされているリソースの完全なリストについては、Merge をサポートする種類をご覧ください。1.123.1 より前の Config Connector バージョンでは、これらの CRD のデフォルトの入力動作は Merge で、Config Connector はデフォルトで cnrm.cloud.google.com/state-into-spec アノテーションの値を merge に設定していました。

リソースの作成後に cnrm.cloud.google.com/state-into-spec アノテーションを変更することはできないため、バージョン 1.123.1 より前に作成されたリソースは、Config Connector をバージョン 1.123.1 以降にアップグレードした後も cnrm.cloud.google.com/state-into-spec: merge アノテーションを保持します。Absent の動作を使用するように新しいリソースを構成するには、未指定のフィールドを仕様に入力しないをご覧ください。既存のリソースを移行するには、リソースを Merge から Absent に移行するをご覧ください。

リソースが Merge 動作を使用する場合、元の YAML マニフェストで指定されていないフィールドは、Kubernetes API サーバーのカスタム リソース spec フィールドに入力されます。この動作により、kubectl get RESOURCE_KIND RESOURCE_NAME -o yaml コマンドを実行すると、出力の spec フィールドに、適用された YAML ファイルにないサブフィールドが含まれることがあります。

たとえば、CRD スキーマで spec フィールドに field1 と field2 という名前の 2 つのフィールドを指定できるが、適用された YAML ファイルでは field1 フィールドのみが指定されているとします。

spec:
  field1: "value-1"

YAML マニフェストが正常に適用され、リソースが UpToDate の場合、カスタム リソースに field2 フィールドが表示されます。

spec:
  field1: "value-1"
  field2: "value-2"

Config Connector は、Google Cloud から spec への projectRef、folderRef、organizationRef、billingAccountRef などの指定されていないリソース参照フィールドを入力しません。たとえば、Project 種類は Merge をサポートしていますが、オプションの spec フィールド(billingAccountRef、folderRef、organizationRef)はすべてリソース参照フィールドです。その結果、Merge は Project リソースの未指定のフィールドに値を入力しません。

Config Connector とGoogle Cloud API 間のやり取りは複雑であるため、Absent 動作を使用して、Config Connector が Kubernetes リソースの spec フィールドに未指定のフィールドを入力しないようにします。

未指定のフィールドの仕様への入力をスキップする

Config Connector バージョン 1.113.0 以前で追加された CRD の spec フィールドに未指定のフィールドを入力しないように Config Connector を構成するには、次のいずれかの方法を使用します。

  • クラスタレベルまたは Namespace レベルの stateIntoSpec フィールドの値を Absent に設定します。
  • リソースで、cnrm.cloud.google.com/state-into-spec アノテーションの値を absent に設定します。

クラスタレベルまたは Namespace レベルの stateIntoSpec オーバーライドを構成する

Config Connector をインストールする場合、または Config Connector のインストールを更新する場合は、ConfigConnector または ConfigConnectorContext カスタム リソースで、クラスタレベルまたは Namespace レベルの stateIntoSpec フィールドの値を Absent に設定できます。

spec:
  stateIntoSpec: Absent

この設定により、リソース YAML マニフェストで cnrm.cloud.google.com/state-into-spec アノテーションを指定しないと、クラスタまたは名前空間で作成された新しいリソースの spec フィールドの入力動作にデフォルトの Absent が設定されます。Config Connector は、これらのリソースの Kubernetes リソース spec フィールドへの未指定のフィールドの入力をスキップします。

ConfigConnector カスタム リソースと ConfigConnectorContext カスタム リソースの stateIntoSpec フィールドにはデフォルト値がありません。Config Connector は、cnrm.cloud.google.com/state-into-spec アノテーションの値に基づいて spec フィールドの入力動作を決定し、リソースの作成時に次の優先順位でアノテーションの値を決定します。

  1. cnrm.cloud.google.com/state-into-spec アノテーションの値が指定されていて有効な場合は、その値を直接使用します。
  2. アノテーションが指定されていない場合は、ConfigConnectorContext カスタム リソースの stateIntoSpec フィールドの対応する値を使用します。
  3. ConfigConnectorContext カスタム リソースが存在しないか、stateIntoSpec フィールドが指定されていない場合は、ConfigConnector カスタム リソースの stateIntoSpec フィールドの対応する値を使用します。
  4. ConfigConnector カスタム リソースが存在しないか、stateIntoSpec フィールドが指定されていない場合、Config Connector バージョン 1.123.1 以降ではデフォルトで absent 値が使用されます。1.123.1 より前のバージョンでは、spec フィールドの入力動作で説明されているように、CRD のデフォルトの動作が使用されます。

バージョン 1.114.0 以降で追加された CRD は、ConfigConnector または ConfigConnectorContext カスタム リソースの stateIntoSpec フィールドに関係なく、Absent 入力動作のみをサポートします。

Merge の動作でリソースをすでに作成している場合、ConfigConnector または ConfigConnectorContext カスタム リソースで stateIntoSpec フィールドの値を Absent に更新しても、既存のリソースのアノテーションは変更されません。既存のリソースを移行するには、Merge から Absent にリソースを移行するをご覧ください。

リソースレベルの cnrm.cloud.google.com/state-into-spec アノテーションを設定する

YAML ファイルを作成するときに、cnrm.cloud.google.com/state-into-spec アノテーションの値を absent に設定できます。このアノテーションは、未指定のフィールドの Kubernetes リソース spec フィールドへの入力をスキップします。

metadata:
  annotations:
    cnrm.cloud.google.com/state-into-spec: absent

Config Connector バージョン 1.123.1 以降では、このアノテーションが指定されていない場合、デフォルトで absent 値になります(ConfigConnector または ConfigConnectorContext カスタム リソースで spec.stateIntoSpec フィールドの値を Merge に設定してオーバーライドする場合を除く)。1.123.1 より前のバージョンでは、このアノテーションは、バージョン 1.113.0 以前で追加された CRD の merge 値にデフォルトで設定されていました。つまり、Config Connector は、指定されていないすべてのフィールドを spec フィールドに入力していました。

このアノテーションは不変です。つまり、既存の Config Connector リソースでアノテーション値を直接更新することはできません。merge 値のリソースをすでに作成していて、その動作を absent 値に変更する場合は、Merge から Absent にリソースを移行するをご覧ください。

このアノテーションによって導入される違いをさらに説明するために、リソースに次のスキーマを持つ spec フィールドがあるとします。

field1: string
field2: string
listField:
- itemField1: string
  itemField2: string
objectField:
  subField1: string
  subField2: string

また、YAML マニフェストで spec フィールドを次のように指定したとします。

spec:
  field1: "value-1"
  listField:
  - itemField1: "1_value1"
  - itemField1: "2_value1"
  objectField:
    subField1: "sub-value-1"

cnrm.cloud.google.com/state-into-spec アノテーションの値が merge に設定されている場合、作成された Kubernetes リソースの入力された spec フィールドは次のようになります。

spec:
  field1: "value-1"
  field2: "value-2"
  listField:
  - itemField1: "1_value1"
    itemField2: "1_value2"
  - itemField1: "2_value1"
    itemField2: "2_value2"
  objectField:
    subField1: "sub-value-1"
    subField2: "sub-value-2"

cnrm.cloud.google.com/state-into-spec: absent アノテーションを設定すると、作成された Kubernetes リソースの最終的な spec フィールドは次のようになります。

spec:
  field1: "value-1"
  listField:
  - itemField1: "1_value1"
  - itemField1: "2_value1"
  objectField:
    subField1: "sub-value-1"

リソースを Merge から Absent に移行する

cnrm.cloud.google.com/state-into-spec アノテーションは既存の Kubernetes リソースで不変であるため、Config Connector をバージョン 1.123.1 以降にアップグレードしても、既存のリソースが merge 値から absent 値に自動的に変更されることはありません。

既存のリソースと Namespace を Merge の動作から Absent の動作に移行すると、次の問題を回避できます。

  • 自動更新されたフィールドの調整エラー: Google Cloudは、メンテナンス バージョンや自動スケーリング設定など、基盤となるリソースの特定のフィールドを自動的に更新します。state-into-spec: merge アノテーションを含むリソースは、調整に失敗するか、フィールドを古い spec 値に戻そうとして無限の更新ループに入る可能性があります。
  • GitOps と構成管理ツールとの競合: Merge の動作によってリスト内の未指定のサブフィールドが入力されると、Config Sync や Argo CD などのツールが Config Connector と競合する可能性があります。
  • 新しいリソースの種類の検証エラー: ConfigConnector または ConfigConnectorContext カスタム リソースで spec.stateIntoSpec フィールドの値が Merge に設定されている場合、Merge 動作をサポートしていないリソースを管理すると、検証エラー(invalid value "merge" for "cnrm.cloud.google.com/state-into-spec" annotation)が発生する可能性があります。

影響を受ける Namespace とリソースを特定する

移行する前に、クラスタレベル、Namespace レベル、リソースレベルの設定を確認して、Merge の動作がまだ使用されている場所を特定します。

  • クラスタレベルの ConfigConnector カスタム リソースで stateIntoSpec フィールドのオーバーライドを確認します。

    kubectl get configconnector configconnector.core.cnrm.cloud.google.com \
        -o jsonpath='{.spec.stateIntoSpec}{"\n"}'
    
  • すべての名前空間レベルの ConfigConnectorContext カスタム リソースで stateIntoSpec フィールドのオーバーライドを確認します。

    kubectl get configconnectorcontext -A \
        -o custom-columns=NAMESPACE:.metadata.namespace,STATE_INTO_SPEC:.spec.stateIntoSpec
    
  • 既存の Config Connector リソースの cnrm.cloud.google.com/state-into-spec アノテーションの値を確認します。

    kubectl get RESOURCE_KIND RESOURCE_NAME -n NAMESPACE \
        -o jsonpath='{.metadata.annotations.cnrm\.cloud\.google\.com/state-into-spec}{"\n"}'
    

    次のように置き換えます。

    • RESOURCE_KIND: Config Connector リソースの種類(SQLInstance など)。
    • RESOURCE_NAME: リソースの名前。
    • NAMESPACE: リソースの Namespace。

リソースを Absent に移行する

既存のリソースの入力動作を Merge から Absent に変更するには、Kubernetes リソースを破棄し、cnrm.cloud.google.com/state-into-spec: absent アノテーションを使用して基盤となる Google Cloud リソースを再取得する必要があります。リソースを放棄して再取得する手順は次のとおりです。

  1. ConfigConnector または ConfigConnectorContext カスタム リソースの spec.stateIntoSpec フィールドの値が Merge に設定されている場合は、フィールドの値を Absent に更新します。

    spec:
      stateIntoSpec: Absent
    
  2. クラスタ内の既存の Config Connector リソースに cnrm.cloud.google.com/deletion-policy: abandon アノテーションを追加します。このアノテーションは、次の手順で Kubernetes リソースを削除しても、基盤となる Google Cloud リソースが削除されないようにするために使用します。

    kubectl annotate RESOURCE_KIND RESOURCE_NAME -n NAMESPACE \
        cnrm.cloud.google.com/deletion-policy=abandon --overwrite
    
  3. Kubernetes クラスタからリソースを削除します。

    kubectl delete RESOURCE_KIND RESOURCE_NAME -n NAMESPACE
    
  4. リソースの YAML マニフェストで、cnrm.cloud.google.com/state-into-spec アノテーションの値を absent に設定します。

    metadata:
      annotations:
        cnrm.cloud.google.com/state-into-spec: absent
    

    YAML マニフェストの spec フィールドを確認して、Config Connector で管理するすべてのフィールドが含まれていることを確認します。 Google Cloud または外部システムに自動的に管理させるフィールド(SQLInstance リソースの spec.maintenanceVersion フィールドなど)は省略します。

  5. 省略可: ローカル YAML マニフェストに cnrm.cloud.google.com/deletion-policy: abandon アノテーションも含まれており、abandon 削除ポリシーが不要になった場合は、YAML マニフェストからそのアノテーションを削除します。

  6. 更新された YAML マニフェストを適用して、リソースを再取得します。

    kubectl apply -f MANIFEST_FILE
    

    MANIFEST_FILE は、リソース YAML ファイルのパスに置き換えます。

cnrm.cloud.google.com/state-into-spec: absent を使用するタイミング

ほとんどの場合、cnrm.cloud.google.com/state-into-spec: absent アノテーションを使用して、spec フィールドに Absent を入力する動作を取得します。以降のセクションでは、Absent の入力動作が役立つ一般的なシナリオについて説明します。

Google Cloudによって自動的に更新されるフィールドとの競合を回避する

リソースが cnrm.cloud.google.com/state-into-spec: merge アノテーションを使用すると、Config Connector は最初の調整中に Google Cloud API から値を読み取り、Kubernetes リソースの spec フィールドに書き込みます。 Google Cloud サービスが後でこれらのフィールドの 1 つを自動的に更新すると、Config Connector は spec フィールドに保存されている古い値をターゲット状態として扱い、基盤となるGoogle Cloud リソースの変更を元に戻そうとします。

たとえば、spec.maintenanceVersion フィールドを指定せずに cnrm.cloud.google.com/state-into-spec: merge アノテーションを使用して SQLInstance リソースを作成すると、Config Connector は初期メンテナンス バージョンを spec.maintenanceVersion フィールドに入力します。その後、Cloud SQL がインスタンスで自動メンテナンス更新を実行すると、Cloud SQL のライブ メンテナンス バージョンが更新されます。次の調整時に、Config Connector はインスタンスを古い spec.maintenanceVersion 値にパッチしようとします。Cloud SQL はメンテナンス バージョンのダウングレードを拒否するため、調整は UpdateFailed エラー(The requested maintenance version is not an available maintenance version to upgrade)で繰り返し失敗します。

cnrm.cloud.google.com/state-into-spec: absent アノテーションを設定する場合は、spec.maintenanceVersion などの自動更新フィールドを YAML マニフェストから省略します。Config Connector は、これらのフィールドを spec フィールドに記録しません。これにより、 Google Cloud は調整の競合を発生させることなく、これらのフィールドを更新できます。

リスト内の未指定のフィールドを外部で管理する

Config Connector は、Kubernetes リソースの spec フィールド内のすべてのリスト フィールドをアトミック フィールドとして扱います。その結果、state-into-spec アノテーションの値が merge に設定されている場合、Config Connector は、Config Connector の外部からリスト内のサブフィールドに加えられた変更を元に戻します。ただし、cnrm.cloud.google.com/state-into-spec: absent アノテーションを使用すると、Config Connector でリスト内の未指定のサブフィールドを管理対象外にできます。詳細については、リソース仕様のリスト フィールドにおける動作をご覧ください。

構成管理ツールと Config Connector 間の競合を解決する

Config Sync や Argo CD などの構成管理ツールを使用している場合、構成管理ツールと Config Connector の間で競合が発生することがあります。たとえば、トラブルシューティング ガイドで説明されている KNV2005 エラーがあります。これらの問題は、次の理由で発生します。

  • state-into-spec アノテーションの値が merge に設定されている場合、Config Connector は、spec.listField[0].itemField2 フィールドなどの spec フィールドのリストに未指定の値を入力し、デフォルト値を設定します。
  • 構成管理ツールと Config Connector は、どちらもリスト フィールドをアトミックとして扱います。したがって、構成管理ツールは追加された spec.listField[0].itemField2 フィールドをブレとして扱い、削除します。

これらの問題を解決するには、Config Connector が未指定の spec.listField[0].itemField2 フィールドを spec フィールドに追加しないように、cnrm.cloud.google.com/state-into-spec: absent アノテーションを設定します。

GET / PUT の対称性の問題を解決する

GET/PUT の対称性は、REST API の設計原則を示します。具体的には、GET レスポンスが PUT リクエストとして同じ URL に送信されると、基になる REST リソースの状態に変更がない HTTP 200 OK ステータス コードになることが想定されます。

state-into-spec アノテーションの値が merge に設定されている場合、Config Connector によって Kubernetes リソースの spec フィールドに入力される未指定のフィールドは、GET リクエストの結果です。この動作は、今後の調整で、Config Connector が GET リクエストから学習した未指定のフィールド値を使用して、基盤となるGoogle Cloud API に PUT リクエストまたは PATCH リクエストを送信する可能性があることを意味します。通常、この動作は問題になりませんが、未指定のフィールド値が原因で、一部の Google Cloud APIs で PUT / PATCH リクエストが拒否される可能性があります。同じ例で、API 実装が GET/PUT の対称性の原則に違反している場合は、値 "sub-value-2" が設定された spec.objectField.subField2 フィールドによって、HTTP 400 クライアント エラーやその他の予期しないレスポンスが発生する可能性があります。

このカテゴリの問題を回避するには、cnrm.cloud.google.com/state-into-spec: absent アノテーションを設定して、調整中のエラーが消えるかどうかを確認します。

観測された状態

cnrm.cloud.google.com/state-into-spec: absent アノテーションを設定する必要があるものの、未指定のフィールドから入力された値にソリューションが依存している場合は、これらのフィールドが CRD スキーマの status.observedState フィールドに存在することを確認してください。これらが status.observedState フィールドに表示されている場合、cnrm.cloud.google.com/state-into-spec: absent アノテーションを設定すると、調整が正常に完了した後も未指定のフィールドの値にアクセスできます。

status.observedState フィールドには、Config Connector が最後に成功した調整でモニタリングした、リソースの選択されたモニタリング対象フィールドのライブ状態が含まれます。Config Connector は、一般的なユースケースで計算された spec フィールドと依存関係である観測フィールドを選択します。観測されたフィールドは CRD スキーマにあります。

必要な観測されたフィールドが見つからない場合は、公開バグトラッカーで既存の問題を確認するか、新しい問題を報告してください。

Merge をサポートする種類

Merge の入力動作をサポートする Config Connector の種類は次のとおりです。

  • AccessContextManagerAccessLevel
  • AccessContextManagerAccessPolicy
  • AccessContextManagerServicePerimeter
  • AlloyDBBackup
  • AlloyDBCluster
  • AlloyDBUser
  • ApigeeEnvironment
  • ApigeeOrganization
  • ArtifactRegistryRepository
  • BigQueryDataset
  • BigQueryJob
  • BigQueryRoutine
  • BigQueryTable
  • BigtableAppProfile
  • BigtableGCPolicy
  • BigtableInstance
  • BigtableTable
  • BillingBudgetsBudget
  • BinaryAuthorizationAttestor
  • BinaryAuthorizationPolicy
  • CertificateManagerCertificate
  • CertificateManagerCertificateMap
  • CertificateManagerCertificateMapEntry
  • CloudBuildTrigger
  • CloudFunctionsFunction
  • CloudSchedulerJob
  • ComputeAddress
  • ComputeBackendBucket
  • ComputeBackendService
  • ComputeDisk
  • ComputeExternalVPNGateway
  • ComputeFirewall
  • ComputeFirewallPolicy
  • ComputeFirewallPolicyAssociation
  • ComputeForwardingRule
  • ComputeHTTPHealthCheck
  • ComputeHTTPSHealthCheck
  • ComputeHealthCheck
  • ComputeImage
  • ComputeInstance
  • ComputeInstanceGroup
  • ComputeInstanceGroupManager
  • ComputeInstanceTemplate
  • ComputeInterconnectAttachment
  • ComputeNetwork
  • ComputeNetworkEndpointGroup
  • ComputeNetworkFirewallPolicy
  • ComputeNetworkPeering
  • ComputeNodeGroup
  • ComputeNodeTemplate
  • ComputePacketMirroring
  • ComputeProjectMetadata
  • ComputeRegionNetworkEndpointGroup
  • ComputeReservation
  • ComputeResourcePolicy
  • ComputeRoute
  • ComputeRouter
  • ComputeRouterInterface
  • ComputeRouterNAT
  • ComputeRouterPeer
  • ComputeSSLCertificate
  • ComputeSSLPolicy
  • ComputeSecurityPolicy
  • ComputeServiceAttachment
  • ComputeSharedVPCHostProject
  • ComputeSharedVPCServiceProject
  • ComputeSnapshot
  • ComputeSubnetwork
  • ComputeTargetGRPCProxy
  • ComputeTargetHTTPProxy
  • ComputeTargetHTTPSProxy
  • ComputeTargetInstance
  • ComputeTargetPool
  • ComputeTargetSSLProxy
  • ComputeTargetTCPProxy
  • ComputeTargetVPNGateway
  • ComputeURLMap
  • ComputeVPNGateway
  • ComputeVPNTunnel
  • ConfigControllerInstance
  • ContainerAnalysisNote
  • ContainerAttachedCluster
  • ContainerCluster
  • ContainerNodePool
  • DLPDeidentifyTemplate
  • DLPInspectTemplate
  • DLPJobTrigger
  • DLPStoredInfoType
  • DNSManagedZone
  • DNSPolicy
  • DNSRecordSet
  • DataCatalogPolicyTag
  • DataCatalogTaxonomy
  • DataFusionInstance
  • DataflowFlexTemplateJob
  • DataflowJob
  • DataprocAutoscalingPolicy
  • DataprocCluster
  • DataprocWorkflowTemplate
  • EdgeContainerCluster
  • EdgeContainerNodePool
  • EdgeContainerVpnConnection
  • EdgeNetworkNetwork
  • EdgeNetworkSubnet
  • Eventarc トリガー
  • FilestoreBackup
  • FilestoreInstance
  • FirestoreIndex
  • フォルダ
  • GKEHubFeature
  • GKEHubMembership
  • IAMAccessBoundaryPolicy
  • IAMAuditConfig
  • IAMCustomRole
  • IAMPartialPolicy
  • IAMPolicy
  • IAMPolicyMember
  • IAMServiceAccount
  • IAMServiceAccountKey
  • IAMWorkforcePool
  • IAMWorkforcePoolProvider
  • IAMWorkloadIdentityPool
  • IAMWorkloadIdentityPoolProvider
  • IAPBrand
  • IAPIdentityAwareProxyClient
  • IdentityPlatformConfig
  • IdentityPlatformOAuthIDPConfig
  • IdentityPlatformTenant
  • IdentityPlatformTenantOAuthIDPConfig
  • KMSCryptoKey
  • KMSKeyRing
  • LoggingLogBucket
  • LoggingLogExclusion
  • LoggingLogSink
  • LoggingLogView
  • MemcacheInstance
  • MonitoringAlertPolicy
  • MonitoringGroup
  • MonitoringMetricDescriptor
  • MonitoringMonitoredProject
  • MonitoringNotificationChannel
  • MonitoringService
  • MonitoringServiceLevelObjective
  • MonitoringUptimeCheckConfig
  • NetworkConnectivityHub
  • NetworkConnectivitySpoke
  • NetworkSecurityAuthorizationPolicy
  • NetworkSecurityClientTLSPolicy
  • NetworkSecurityServerTLSPolicy
  • NetworkServicesEndpointPolicy
  • NetworkServicesGRPCRoute
  • NetworkServicesGateway
  • NetworkServicesHTTPRoute
  • NetworkServicesMesh
  • NetworkServicesTCPRoute
  • NetworkServicesTLSRoute
  • OSConfigGuestPolicy
  • OSConfigOSPolicyAssignment
  • PrivateCACAPool
  • PrivateCACertificate
  • PrivateCACertificateAuthority
  • PrivateCACertificateTemplate
  • プロジェクト
  • PubSubLiteReservation
  • PubSubSchema
  • PubSubSubscription
  • PubSubTopic
  • reCAPTCHA EnterpriseKey
  • RedisInstance
  • ResourceManagerLien
  • ResourceManagerPolicy
  • RunJob
  • RunService
  • SQLDatabase
  • SQLSSLCert
  • SQLUser
  • SecretManagerSecret
  • SecretManagerSecretVersion
  • サービス
  • ServiceDirectoryEndpoint
  • ServiceDirectoryNamespace
  • ServiceDirectoryService
  • ServiceIdentity
  • ServiceNetworkingConnection
  • SourceRepoRepository
  • SpannerDatabase
  • SpannerInstance
  • StorageBucket
  • StorageBucketAccessControl
  • StorageDefaultObjectAccessControl
  • StorageNotification
  • StorageTransferJob
  • TagsTagBinding
  • TagsTagKey
  • TagsTagValue
  • VPC アクセス コネクタ

次の種類は、対応するバージョン以降の Merge の入力動作をサポートしていません。

種類名 バージョン
AlloyDBInstance 1.129.2
CertificateManagerDNSAuthorization 1.124.0
CloudIdentityGroup 1.134.0
CloudIdentityMembership 1.134.0
ComputeFirewallPolicyRule 1.125.0
GKEHubFeatureMembership 1.128.0
LoggingLogMetric 1.118.1
MonitoringDashboard 1.119.0
SQLInstance 1.129.2