미지정 필드 무시
이 페이지에서는 구성 커넥터 리소스에서 spec 필드의 기본 채우기 동작과 기존 리소스를 기존 Merge 동작에서 권장되는 Absent 동작으로 마이그레이션하는 방법을 설명합니다. 버전 1.114.0 이상에 추가된 CustomResourceDefinition (CRD)을 사용하는 경우 이러한 CRD가 Absent 동작만 지원하므로 이 페이지가 적용되지 않을 수 있습니다. Merge 동작을 지원하는 CRD 목록은 이 페이지의 Merge를 지원하는 종류 섹션을 참조하세요.
spec 필드 채우기 동작
구성 커넥터가 리소스를 만들 때 Kubernetes 리소스 spec 필드에 지정되지 않은 필드에는 Absent 및 Merge라는 두 가지 채우기 동작이 있을 수 있습니다.
없음
Absent 동작은 권장되는 동작입니다. 리소스가 Absent 동작을 사용하는 경우 구성 커넥터는 지정되지 않은 필드를 Kubernetes 리소스 spec 필드에 채우지 않습니다.
구성 커넥터 버전 1.123.1부터는 ConfigConnector 또는 ConfigConnectorContext 커스텀 리소스에서 spec.stateIntoSpec 필드 값을 Merge로 설정하지 않는 한 Absent 동작이 새로 생성된 모든 리소스의 기본 채우기 동작입니다. cnrm.cloud.google.com/state-into-spec 주석을 사용하는 리소스의 경우 구성 커넥터는 기본적으로 주석 값을 소문자 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의 경우 구성 커넥터는 Absent 및 Merge 동작을 모두 지원합니다. 지원되는 리소스의 전체 목록은 Merge 지원이 포함된 종류를 참고하세요. 구성 커넥터 버전 1.123.1 이전에서는 이러한 CRD의 기본 채우기 동작이 Merge이었고 구성 커넥터는 cnrm.cloud.google.com/state-into-spec 주석 값을 기본적으로 merge로 설정했습니다.
리소스가 생성된 후에는 cnrm.cloud.google.com/state-into-spec 주석을 변경할 수 없으므로 버전 1.123.1 이전에 생성된 리소스는 구성 커넥터를 버전 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라는 필드 두 개를 지정할 수 있지만 적용된 YAML 파일에는 field1 필드만 지정되어 있다고 가정해 보겠습니다.
spec:
field1: "value-1"
YAML 매니페스트가 성공적으로 적용되고 리소스가 UpToDate이면 커스텀 리소스에 field2 필드가 표시됩니다.
spec:
field1: "value-1"
field2: "value-2"
구성 커넥터는 projectRef, folderRef, organizationRef, billingAccountRef와 같이 지정되지 않은 리소스 참조 필드를Google Cloud 에서 spec로 채우지 않습니다. 예를 들어 Project 종류는 Merge를 지원하지만 모든 선택적 spec 필드 (billingAccountRef, folderRef, organizationRef)는 리소스 참조 필드입니다. 따라서 Merge는 Project 리소스에서 지정되지 않은 필드를 채우지 않습니다.
구성 커넥터와Google Cloud API 간의 상호작용의 복잡성으로 인해 구성 커넥터가 미지정 필드로 Kubernetes 리소스 spec 필드를 채우지 않고 건너뛰도록 Absent 동작을 사용합니다.
지정되지 않은 필드를 사양으로 채우지 않고 건너뛰기
구성 커넥터 버전 1.113.0 이하에 추가된 CRD의 경우 다음 중 한 가지 방법으로 지정되지 않은 필드를 spec 필드에 입력하는 과정을 건너뛰도록 구성 커넥터를 구성할 수 있습니다.
- 클러스터 수준 또는 네임스페이스 수준
stateIntoSpec필드의 값을Absent로 설정합니다. - 리소스에서
cnrm.cloud.google.com/state-into-spec주석의 값을absent로 설정합니다.
클러스터 수준 또는 네임스페이스 수준 stateIntoSpec 재정의 구성
구성 커넥터를 설치하거나 구성 커넥터 설치를 업데이트할 때 ConfigConnector 또는 ConfigConnectorContext 커스텀 리소스에서 클러스터 수준 또는 네임스페이스 수준 stateIntoSpec 필드의 값을 Absent로 설정할 수 있습니다.
spec:
stateIntoSpec: Absent
이 설정은 리소스 YAML 매니페스트에 cnrm.cloud.google.com/state-into-spec 주석을 지정하지 않을 때 Absent 동작을 클러스터 또는 네임스페이스에서 생성된 모든 새 리소스의 기본 spec 필드 채우기 동작으로 만듭니다. 구성 커넥터는 이러한 리소스의 Kubernetes 리소스 spec 필드에 지정되지 않은 필드를 채우는 과정을 건너뜁니다.
ConfigConnector 및 ConfigConnectorContext 커스텀 리소스의 stateIntoSpec 필드에는 기본값이 없습니다. 구성 커넥터는 cnrm.cloud.google.com/state-into-spec 주석 값에 따라 spec 필드 채우기 동작을 결정하며 리소스가 생성될 때 주석 값을 결정하기 위해 다음 우선순위를 따릅니다.
cnrm.cloud.google.com/state-into-spec주석이 지정되고 유효한 경우 해당 값을 직접 사용합니다.- 주석이 지정되지 않은 경우 ConfigConnectorContext 커스텀 리소스에서 상응하는
stateIntoSpec필드 값을 사용합니다. - ConfigConnectorContext 커스텀 리소스가 없거나
stateIntoSpec필드가 지정되지 않은 경우 ConfigConnector 커스텀 리소스의stateIntoSpec필드의 해당 값을 사용합니다. - ConfigConnector 커스텀 리소스가 없거나
stateIntoSpec필드가 지정되지 않은 경우 구성 커넥터 버전 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
구성 커넥터 버전 1.123.1 이상에서 이 주석은 지정되지 않은 경우 absent 값으로 기본 설정됩니다 (ConfigConnector 또는 ConfigConnectorContext 커스텀 리소스에서 spec.stateIntoSpec 필드 값을 Merge로 설정하여 재정의하지 않는 한). 1.123.1 이전 버전에서는 이 주석이 버전 1.113.0 이하에 추가된 CRD의 merge 값으로 기본 설정되었습니다. 즉, 구성 커넥터가 지정되지 않은 모든 필드를 spec 필드에 채웠습니다.
이 주석은 변경할 수 없습니다. 즉, 기존 구성 커넥터 리소스에서 주석 값을 직접 업데이트할 수 없습니다. 이미 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 리소스에서 변경할 수 없으므로 구성 커넥터를 버전 1.123.1 이상으로 업그레이드해도 기존 리소스가 merge 값에서 absent 값으로 자동으로 변경되지 않습니다.
기존 리소스와 네임스페이스를 Merge 동작에서 Absent 동작으로 이전하면 다음 문제를 방지할 수 있습니다.
- 자동 업데이트된 필드의 조정 오류: Google Cloud는 유지보수 버전 또는 자동 확장 설정과 같은 기본 리소스의 특정 필드를 자동으로 업데이트합니다.
state-into-spec: merge주석이 있는 리소스는 조정에 실패하거나 필드를 이전spec값으로 되돌리려고 하는 끝없는 업데이트 루프에 진입할 수 있습니다. - GitOps 및 구성 관리 도구와의 충돌: 구성 동기화 및 Argo CD와 같은 도구가
Merge동작이 목록에서 지정되지 않은 하위 필드를 채울 때 구성 커넥터와 충돌할 수 있습니다. - 최신 리소스 종류의 검증 오류: ConfigConnector 또는 ConfigConnectorContext 커스텀 리소스에서
spec.stateIntoSpec필드 값이Merge로 설정된 경우Merge동작을 지원하지 않는 리소스를 관리하면 검증 오류 (invalid value "merge" for "cnrm.cloud.google.com/state-into-spec" annotation)가 발생할 수 있습니다.
영향을 받는 네임스페이스 및 리소스 식별
마이그레이션하기 전에 클러스터 수준, 네임스페이스 수준, 리소스 수준 설정을 확인하여 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기존 구성 커넥터 리소스에서
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: 구성 커넥터 리소스의 종류(예: SQLInstance)RESOURCE_NAME: 리소스 이름NAMESPACE: 리소스의 네임스페이스입니다.
Absent로 리소스 마이그레이션
기존 리소스의 채우기 동작을 Merge에서 Absent로 변경하려면 Kubernetes 리소스를 포기하고 cnrm.cloud.google.com/state-into-spec: absent 주석을 사용하여 기본 Google Cloud 리소스를 다시 획득해야 합니다. 리소스를 포기하고 다시 획득하려면 다음 단계를 완료합니다.
ConfigConnector 또는 ConfigConnectorContext 커스텀 리소스에서
spec.stateIntoSpec필드 값이Merge로 설정된 경우 필드 값을Absent로 업데이트합니다.spec: stateIntoSpec: Absent클러스터의 기존 구성 커넥터 리소스에
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 --overwriteKubernetes 클러스터에서 리소스를 삭제합니다.
kubectl delete RESOURCE_KIND RESOURCE_NAME -n NAMESPACE리소스 YAML 매니페스트에서
cnrm.cloud.google.com/state-into-spec주석 값을absent로 설정합니다.metadata: annotations: cnrm.cloud.google.com/state-into-spec: absentYAML 매니페스트의
spec필드를 검토하여 구성 커넥터에서 관리하려는 모든 필드가 포함되어 있는지 확인합니다. SQLInstance 리소스의spec.maintenanceVersion필드와 같이 Google Cloud 또는 외부 시스템에서 자동으로 관리할 필드를 생략합니다.선택사항: 로컬 YAML 매니페스트에
cnrm.cloud.google.com/deletion-policy: abandon주석도 포함되어 있고 더 이상abandon삭제 정책을 원하지 않는 경우 YAML 매니페스트에서 해당 주석을 삭제합니다.업데이트된 YAML 매니페스트를 적용하여 리소스를 다시 획득합니다.
kubectl apply -f MANIFEST_FILEMANIFEST_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 주석을 사용하는 경우 구성 커넥터는 초기 조정 중에 Google Cloud API에서 값을 읽고 Kubernetes 리소스 spec 필드에 값을 씁니다. 나중에 Google Cloud 서비스에서 이러한 필드 중 하나를 자동으로 업데이트하면 구성 커넥터는 spec 필드에 저장된 이전 값을 타겟 상태로 취급하고 기본Google Cloud 리소스의 변경사항을 되돌리려고 시도합니다.
예를 들어 spec.maintenanceVersion 필드를 지정하지 않고 cnrm.cloud.google.com/state-into-spec: merge 주석으로 SQLInstance 리소스를 만들면 구성 커넥터가 초기 유지관리 버전을 spec.maintenanceVersion 필드에 채웁니다. 나중에 Cloud SQL에서 인스턴스에 대한 자동 유지보수 업데이트를 수행하면 Cloud SQL의 실시간 유지보수 버전이 진행됩니다. 다음 조정 중에 구성 커넥터는 인스턴스를 이전 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 주석을 설정할 때 YAML 매니페스트에서 spec.maintenanceVersion와 같이 자동으로 업데이트되는 필드를 생략합니다. 구성 커넥터는 이러한 필드를 spec 필드에 기록하지 않으므로 조정 충돌을 일으키지 않고 Google Cloud 에서 업데이트할 수 있습니다.
외부에서 목록의 지정되지 않은 필드 관리
구성 커넥터는 Kubernetes 리소스 spec 필드의 모든 목록 필드를 원자 필드로 취급합니다. 따라서 state-into-spec 주석의 값이 merge로 설정되면 구성 커넥터 외부에서 목록의 하위 필드에 적용된 변경사항을 구성 커넥터에서 되돌립니다. 하지만 cnrm.cloud.google.com/state-into-spec: absent 주석을 사용하여 구성 커넥터가 목록에서 지정되지 않은 하위 필드를 관리되지 않는 상태로 유지하도록 할 수 있습니다. 자세한 내용은 리소스 사양의 목록 필드 동작을 참조하세요.
구성 관리 도구와 구성 커넥터 간의 충돌 해결
구성 동기화 또는 Argo CD와 같은 구성 관리 도구를 사용하는 경우 구성 관리 도구와 구성 커넥터 간에 충돌이 발생할 수 있습니다. 한 가지 예시로는 문제 해결 가이드에 설명된 KNV2005 오류가 있습니다. 이 문제는 다음과 같은 이유로 발생합니다.
state-into-spec주석 값이merge로 설정되면 구성 커넥터는spec.listField[0].itemField2필드와 같은spec필드의 목록에 지정되지 않은 값을 채우고 기본값을 사용합니다.- 구성 관리 도구와 구성 커넥터 모두에서 목록 필드를 원자적으로 취급하므로 구성 관리 도구는 추가된
spec.listField[0].itemField2필드를 드리프트로 처리하고 삭제합니다.
이러한 문제를 해결하려면 구성 커넥터에서 지정되지 않은 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로 설정된 경우 구성 커넥터에서 Kubernetes 리소스 spec 필드에 채운 지정되지 않은 필드는 GET 요청 결과입니다. 이 동작은 향후 조정에서 구성 커넥터가 GET 요청에서 학습한 지정되지 않은 필드 값을 사용하여 PUT 또는 PATCH 요청을 기본Google Cloud API에 전송할 수 있음을 의미합니다. 이 동작은 일반적으로 문제가 되지 않지만 일부 Google Cloud API에서 이러한 지정되지 않은 필드 값으로 인해 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 필드에는 구성 커넥터가 마지막으로 성공한 조정에서 관찰된 선택된 관찰된 리소스의 라이브 상태가 포함됩니다. 구성 커넥터는 계산된 spec 필드와 일반적인 사용 사례의 종속 항목인 관찰된 필드를 선택합니다. CRD 스키마에서 관찰된 필드를 찾을 수 있습니다.
원하는 관찰된 필드를 찾을 수 없으면 기존 문제를 확인하거나 공개 Issue Tracker에서 새 문제를 엽니다.
Merge 지원 종류
다음은 Merge 채우기 동작을 지원하는 모든 구성 커넥터 종류입니다.
- 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
- EventarcTrigger
- 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
- RecaptchaEnterpriseKey
- 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
- VPCAccessConnector
다음 종류는 해당 버전부터 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 |