Ignorar campos não especificados
Nesta página, explicamos o comportamento padrão de preenchimento dos campos spec nos recursos do Config Connector e como migrar recursos atuais do comportamento legado Merge para o comportamento recomendado Absent. Esta página pode não ser
aplicável se você estiver usando uma CustomResourceDefinition (CRD) adicionada na versão
1.114.0 e mais recentes, porque essas CRDs são compatíveis apenas com o comportamento Absent. Para uma
lista de CRDs que oferecem suporte ao comportamento Merge, consulte a seção Tipos com suporte
para Merge desta página.
spec comportamentos de preenchimento de campos
Quando o Config Connector cria um recurso, os campos não especificados no campo spec do recurso do Kubernetes podem ter dois comportamentos de preenchimento diferentes: Absent e Merge.
Ausente
O comportamento Absent é o recomendado. Quando um recurso usa o
comportamento Absent, o Config Connector não preenche campos não especificados no campo
spec do recurso do Kubernetes.
A partir da versão 1.123.1 do Config Connector, o comportamento Absent é o
padrão para todos os recursos recém-criados, a menos que você defina o
valor do campo spec.stateIntoSpec como Merge no recurso personalizado ConfigConnector ou
ConfigConnectorContext. Para recursos que usam a anotação
cnrm.cloud.google.com/state-into-spec, o Config Connector define o
valor da anotação como minúsculo absent por padrão (o
campo spec.stateIntoSpec usa Absent ou Merge em maiúsculas). Os recursos
reconciliados por controladores diretos usam o comportamento Absent sem adicionar a
anotação.
Para CRDs adicionados na
versão 1.114.0 e mais recentes,
o comportamento Absent é o único comportamento de preenchimento compatível.
Mesclar
O comportamento Merge não é compatível com CRDs adicionados na versão 1.114.0 e
mais recentes. Quando um recurso usa o comportamento Merge, os campos spec assumem valores
da API Google Cloud após uma reconciliação bem-sucedida, a menos que esses campos
não sejam legíveis. Para mais detalhes, consulte
Gerenciar campos externamente.
Para CRDs adicionados na
versão 1.113.0 e anteriores,
o Config Connector é compatível com os comportamentos Absent e Merge. Para conferir a lista
completa de recursos compatíveis, consulte
Tipos com suporte para Merge. Nas versões do Config Connector
anteriores à 1.123.1, o comportamento de preenchimento padrão para essas CRDs
era Merge, e o Config Connector definia o valor da
anotação cnrm.cloud.google.com/state-into-spec como merge por padrão.
Como a anotação cnrm.cloud.google.com/state-into-spec é imutável
depois que um recurso é criado, os recursos criados antes da versão 1.123.1 mantêm
a anotação cnrm.cloud.google.com/state-into-spec: merge mesmo depois que você
faz upgrade do Config Connector para a versão 1.123.1 ou mais recente. Para configurar novos
recursos para usar o comportamento Absent, consulte Ignorar o preenchimento de campos não especificados
na especificação. Para migrar recursos
existentes, consulte Migrar recursos de Merge para
Absent.
Quando um recurso usa o comportamento Merge, os campos que não são especificados no manifesto YAML original são preenchidos no campo spec do recurso personalizado no servidor de API Kubernetes. Esse comportamento significa que, ao executar o comando
kubectl get RESOURCE_KIND RESOURCE_NAME -o
yaml, o campo spec na saída pode incluir subcampos que
não estão no arquivo YAML aplicado.
Por exemplo, suponha que o esquema CRD permita especificar dois campos chamados foo e bar no campo spec, mas o arquivo YAML aplicado especifique apenas o campo foo:
spec:
foo: "foo"
Se o manifesto YAML for aplicado corretamente e o recurso estiver
UpToDate,
o campo bar vai aparecer no recurso personalizado:
spec:
foo: "foo"
bar: "bar"
O Config Connector não preenche campos de referência de recursos não especificados, como
projectRef, folderRef, organizationRef ou billingAccountRef, de
Google Cloud em spec. Por exemplo, embora o tipo Project seja compatível com
Merge, todos os campos spec opcionais (billingAccountRef, folderRef e
organizationRef) são campos de referência de recursos. Como resultado, Merge não
preenche campos não especificados em um recurso Project.
Devido à complexidade das interações entre o Config Connector e as
APIsGoogle Cloud , use o comportamento Absent para que o Config Connector
pule o preenchimento do campo spec do recurso do Kubernetes com campos não especificados.
Pular o preenchimento de campos não especificados na especificação
É possível configurar o Config Connector para ignorar o preenchimento de campos não especificados no campo
spec para CRDs adicionados no Config Connector
versão 1.113.0 e anteriores
de uma das seguintes maneiras:
- Defina o valor do campo
stateIntoSpecno nível do cluster ou do namespace comoAbsent. - No recurso, defina o valor da anotação
cnrm.cloud.google.com/state-into-speccomoabsent.
Configurar a substituição de stateIntoSpec no nível do cluster ou do namespace
Ao instalar ou atualizar o Config Connector,
é possível definir o valor do campo stateIntoSpec no nível do cluster ou do namespace
como Absent no recurso personalizado
ConfigConnector ou ConfigConnectorContext:
spec:
stateIntoSpec: Absent
Essa configuração faz com que o comportamento Absent seja o padrão para o preenchimento dos campos spec
de qualquer novo recurso criado no cluster ou namespace quando você
não especifica a anotação cnrm.cloud.google.com/state-into-spec nos
manifestos YAML de recursos. O Config Connector ignora o preenchimento de campos não especificados
no campo spec do recurso do Kubernetes para esses recursos.
O campo stateIntoSpec nos recursos personalizados ConfigConnector e ConfigConnectorContext
não tem um valor padrão. O Config Connector determina o
comportamento de preenchimento dos campos spec com base no valor da
anotação cnrm.cloud.google.com/state-into-spec e segue esta
ordem de precedência para determinar o valor da anotação quando um recurso é
criado:
- Use o valor da anotação
cnrm.cloud.google.com/state-into-specdiretamente se ele for especificado e válido. - Se a anotação não for especificada, use o valor correspondente do campo
stateIntoSpecno recurso personalizado ConfigConnectorContext. - Se o recurso personalizado ConfigConnectorContext não existir ou o campo
stateIntoSpecnão for especificado, use o valor correspondente do campostateIntoSpecno recurso personalizado ConfigConnector. - Se o recurso personalizado do ConfigConnector não existir ou o campo
stateIntoSpecnão estiver especificado, o Config Connector versão 1.123.1 e mais recente vai usar o valorabsentpor padrão. As versões anteriores à 1.123.1 usam o comportamento padrão para a CRD, conforme descrito em Comportamentos de preenchimento de camposspec.
Os CRDs adicionados na
versão 1.114.0 e mais recentes
são compatíveis apenas com o comportamento de preenchimento Absent, independente do campo stateIntoSpec
no recurso personalizado ConfigConnector ou ConfigConnectorContext.
Se você já tiver criado um recurso com o comportamento Merge, atualizar o valor do campo stateIntoSpec para Absent no recurso personalizado ConfigConnector ou ConfigConnectorContext não vai mudar a anotação do recurso atual. Para migrar recursos, consulte
Migrar recursos de Merge para Absent.
Definir a anotação cnrm.cloud.google.com/state-into-spec no nível do recurso
Ao criar o arquivo YAML, defina o valor da anotação
cnrm.cloud.google.com/state-into-spec como absent. Essa anotação
ignora o preenchimento de campos não especificados no campo spec do recurso do Kubernetes:
metadata:
annotations:
cnrm.cloud.google.com/state-into-spec: absent
No Config Connector versão 1.123.1 e posterior, essa anotação assume como padrão o
valor absent se não for especificada, a menos que você a substitua definindo o
valor do campo spec.stateIntoSpec como Merge no recurso personalizado ConfigConnector ou
ConfigConnectorContext. Em versões anteriores à 1.123.1, essa
anotação usava por padrão o valor merge para CRDs adicionados na versão 1.113.0 e
anteriores. Isso significa que o Config Connector preencheu todos os campos não especificados no campo
spec.
Essa anotação é imutável, o que significa que não é possível atualizar o valor dela
diretamente em um recurso do Config Connector. Se você já tiver criado um
recurso com o valor merge e quiser mudar o comportamento dele para o valor
absent, consulte
Migrar recursos de Merge para Absent.
Para explicar melhor a diferença introduzida por essa anotação, suponha que um
recurso tenha um campo spec com o seguinte esquema:
foo1: string
foo2: string
bars:
- br1: string
br2: string
barz:
bz1: string
bz2: string
Suponha também que você especificou o campo spec no manifesto YAML como:
spec:
foo1: "foo1"
bars:
- br1: "1_br1"
- br1: "2_br1"
barz:
bz1: "bz1"
Quando o valor da anotação cnrm.cloud.google.com/state-into-spec é definido
como merge, o campo spec preenchido no recurso do Kubernetes criado fica
assim:
spec:
foo1: "foo1"
foo2: "foo2"
bars:
- br1: "1_br1"
br2: "1_br2"
- br1: "2_br1"
br2: "2_br2"
barz:
bz1: "bz1"
bz2: "bz2"
Quando você define a anotação cnrm.cloud.google.com/state-into-spec: absent, o campo spec final no recurso do Kubernetes criado permanece:
spec:
foo1: "foo1"
bars:
- br1: "1_br1"
- br1: "2_br1"
barz:
bz1: "bz1"
Migrar recursos de Merge para Absent
Como a anotação cnrm.cloud.google.com/state-into-spec é imutável em
um recurso do Kubernetes, o upgrade do Config Connector para a versão 1.123.1
ou posterior não altera automaticamente os recursos do valor merge
para o valor absent.
Migrar os recursos e namespaces atuais do comportamento Merge para
o comportamento Absent ajuda a evitar os seguintes problemas:
- Erros de reconciliação em campos atualizados automaticamente:o Google Cloud
atualiza automaticamente determinados campos em recursos subjacentes, como
versões de manutenção ou configurações de escalonamento automático. Os recursos com a
anotação
state-into-spec: mergepodem falhar na reconciliação ou entrar em um loop de atualização infinito ao tentar reverter o campo para o valorspecmais antigo. - Conflitos com o GitOps e as ferramentas de gerenciamento de configuração: ferramentas como
o Config Sync e o Argo CD podem entrar em conflito com o Config Connector quando o
comportamento de
Mergepreenche subcampos não especificados em listas. - Erros de validação em tipos de recursos mais recentes: se o valor do campo
spec.stateIntoSpecestiver definido comoMergeem um recurso personalizado ConfigConnector ou ConfigConnectorContext, o gerenciamento de recursos que não são compatíveis com o comportamentoMergepode causar erros de validação (invalid value "merge" for "cnrm.cloud.google.com/state-into-spec" annotation).
Identificar namespaces e recursos afetados
Antes da migração, verifique as configurações no nível do cluster, do namespace e do recurso para identificar onde o comportamento Merge ainda é usado:
Verifique o recurso personalizado ConfigConnector no nível do cluster para uma substituição de campo
stateIntoSpec:kubectl get configconnector configconnector.core.cnrm.cloud.google.com \ -o jsonpath='{.spec.stateIntoSpec}{"\n"}'Verifique todos os recursos personalizados ConfigConnectorContext no nível do namespace para substituições de campo
stateIntoSpec:kubectl get configconnectorcontext -A \ -o custom-columns=NAMESPACE:.metadata.namespace,STATE_INTO_SPEC:.spec.stateIntoSpecVerifique o valor da anotação
cnrm.cloud.google.com/state-into-specem um recurso do Config Connector:kubectl get RESOURCE_KIND RESOURCE_NAME -n NAMESPACE \ -o jsonpath='{.metadata.annotations.cnrm\.cloud\.google\.com/state-into-spec}{"\n"}'Substitua:
RESOURCE_KIND: o tipo do recurso do Config Connector, como SQLInstance.RESOURCE_NAME: o nome do recurso.NAMESPACE: o namespace do recurso.
Migrar um recurso para Absent
Para mudar o comportamento de preenchimento de um recurso de Merge para Absent,
é necessário
abandonar o recurso do Kubernetes
e readquirir o recurso do Google Cloud com a
anotação cnrm.cloud.google.com/state-into-spec: absent. Para abandonar e adquirir novamente o recurso, siga estas etapas:
Se o valor do campo
spec.stateIntoSpecestiver definido comoMergeno recurso personalizado ConfigConnector ou ConfigConnectorContext, atualize o valor do campo paraAbsent:spec: stateIntoSpec: AbsentAdicione a anotação
cnrm.cloud.google.com/deletion-policy: abandonao recurso do Config Connector no cluster. Essa anotação ajuda a garantir que a exclusão do recurso do Kubernetes na próxima etapa não exclua o recurso do Google Cloud :kubectl annotate RESOURCE_KIND RESOURCE_NAME -n NAMESPACE \ cnrm.cloud.google.com/deletion-policy=abandon --overwriteExclua o recurso do cluster do Kubernetes:
kubectl delete RESOURCE_KIND RESOURCE_NAME -n NAMESPACENo manifesto YAML do recurso, defina o valor da anotação
cnrm.cloud.google.com/state-into-speccomoabsent:metadata: annotations: cnrm.cloud.google.com/state-into-spec: absentRevise o campo
specno manifesto YAML para verificar se ele inclui todos os campos que você quer que o Config Connector gerencie. Omita os campos que você quer que o Google Cloud ou sistemas externos gerenciem automaticamente, como o campospec.maintenanceVersionem um recurso SQLInstance.Opcional: se o manifesto YAML local também incluir a anotação
cnrm.cloud.google.com/deletion-policy: abandone você não quiser mais a política de exclusãoabandon, remova essa anotação do manifesto YAML.Aplique o manifesto YAML atualizado para readquirir o recurso:
kubectl apply -f MANIFEST_FILESubstitua
MANIFEST_FILEpelo caminho para o arquivo YAML do recurso.
Quando usar cnrm.cloud.google.com/state-into-spec: absent
Na maioria dos casos, use a anotação cnrm.cloud.google.com/state-into-spec: absent para receber o comportamento de preenchimento Absent para campos spec. As seções a seguir descrevem cenários comuns que se beneficiam do comportamento de preenchimento do Absent.
Evitar conflitos com campos atualizados automaticamente pelo Google Cloud
Quando um recurso usa a anotação cnrm.cloud.google.com/state-into-spec: merge, o Config Connector lê os valores da API Google Cloud durante a reconciliação inicial e os grava no campo spec do recurso do Kubernetes. Se um serviço do Google Cloud atualizar automaticamente um desses campos, o Config Connector vai tratar o valor mais antigo armazenado no campo spec como o estado de destino e tentar reverter a alteração no recursoGoogle Cloud .
Por exemplo, se você criar um recurso SQLInstance com a
anotação cnrm.cloud.google.com/state-into-spec: merge sem especificar o
campo spec.maintenanceVersion, o Config Connector vai preencher a versão de manutenção
inicial no campo spec.maintenanceVersion. Quando o Cloud SQL realiza uma atualização de manutenção automática na instância, a versão de manutenção ativa no Cloud SQL é atualizada. Durante
a próxima reconciliação, o Config Connector tenta corrigir a instância de volta para
o valor spec.maintenanceVersion mais antigo. Como o Cloud SQL rejeita downgrades de versão de manutenção, a reconciliação falha repetidamente com um erro UpdateFailed (The requested maintenance version is not an available
maintenance version to upgrade).
Ao definir a anotação cnrm.cloud.google.com/state-into-spec: absent, omita campos atualizados automaticamente, como spec.maintenanceVersion, do manifesto YAML. O Config Connector não registra esses campos no campo spec,
o que permite que o Google Cloud os atualize sem causar conflitos de
reconciliação.
Gerenciar campos não especificados em uma lista externamente
O Config Connector trata todos os campos de lista no campo spec do recurso do Kubernetes
como campos atômicos. Como resultado, quando o valor da anotação state-into-spec
é definido como merge, o Config Connector reverte qualquer alteração feita em um
subcampo em uma lista de fora do Config Connector. No entanto, é possível usar a
anotação cnrm.cloud.google.com/state-into-spec: absent para permitir que o
Config Connector deixe subcampos não especificados em uma lista não gerenciada. Para mais
informações, consulte Comportamento para campos de lista na especificação
de recursos.
Resolver conflitos entre ferramentas de gerenciamento de configuração e o Config Connector
Se você estiver usando ferramentas de gerenciamento de configuração, como o Config Sync ou o Argo CD, talvez perceba conflitos entre a ferramenta de gerenciamento de configuração e o Config Connector. Um exemplo é o erro KNV2005, explicado no guia de solução de problemas. Esses problemas ocorrem pelos seguintes motivos:
- Quando o valor da anotação
state-into-specé definido comomerge, o Config Connector preenche e define como padrão os valores não especificados em listas no campospec, como o campospec.bars[0].br2. - As ferramentas de gerenciamento de configuração e o Config Connector tratam os campos de lista como atômicos. Portanto, as ferramentas de gerenciamento de configuração tratam o campo
spec.bars[0].br2adicionado como desvio e o removem.
Para resolver esses problemas, defina a anotação cnrm.cloud.google.com/state-into-spec:
absent para que o Config Connector não adicione o campo spec.bars[0].br2 não especificado ao campo spec.
Resolver problemas de simetria GET/PUT
A simetria GET/PUT se refere a um princípio de design em APIs REST. Especificamente, isso
significa que, quando uma resposta GET é enviada como uma solicitação PUT para o mesmo URL, o
resultado esperado é um código de status HTTP 200 OK sem alteração no estado do
recurso REST subjacente.
Quando o valor da anotação state-into-spec é definido como merge, os campos não especificados preenchidos pelo Config Connector no campo spec do recurso do Kubernetes são o resultado de uma solicitação GET. Esse comportamento significa que, em futuras
reconciliações,
o Config Connector pode enviar uma solicitação PUT ou PATCH para a API
Google Cloud subjacente com esses valores de campo não especificados aprendidos com a solicitação
GET. Normalmente, esse comportamento não é um problema, mas algumas APIs do Google Cloud
podem rejeitar a solicitação PUT ou PATCH devido a esses valores de campo não especificados.
No mesmo exemplo, o campo spec.barz.bz2 preenchido com o valor "bz2"
pode resultar em um erro de cliente HTTP 400 ou outras respostas inesperadas se a
implementação da API violar o princípio de simetria GET/PUT.
Para evitar essa categoria de problemas, defina a
anotação cnrm.cloud.google.com/state-into-spec: absent e verifique se os
erros durante a reconciliação desaparecem.
Estado observado
Se você precisar definir a anotação cnrm.cloud.google.com/state-into-spec: absent, mas sua solução depender dos valores preenchidos de campos não especificados, verifique se esses campos existem no campo status.observedState no esquema de CRD. Se eles estiverem representados no campo status.observedState, será possível definir a anotação cnrm.cloud.google.com/state-into-spec: absent e ainda acessar os valores dos campos não especificados após uma reconciliação bem-sucedida.
O campo status.observedState contém o estado ativo dos campos selecionados e observados do recurso que o Config Connector observou na última reconciliação bem-sucedida. O Config Connector seleciona campos observados que são
campos spec calculados e dependências para casos de uso comuns. Encontre os campos observados nos esquemas de CRD.
Se não encontrar os campos observados desejados, verifique se há um problema ou abra um novo no Issue Tracker público.
Tipos com suporte para Merge
Veja a seguir todos os tipos de Config Connector que oferecem suporte ao comportamento de preenchimento de 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
- Pasta
- 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
- Projeto
- PubSubLiteReservation
- PubSubSchema
- PubSubSubscription
- PubSubTopic
- RecaptchaEnterpriseKey
- RedisInstance
- ResourceManagerLien
- ResourceManagerPolicy
- RunJob
- RunService
- SQLDatabase
- SQLSSLCert
- SQLUser
- SecretManagerSecret
- SecretManagerSecretVersion
- Serviço
- ServiceDirectoryEndpoint
- ServiceDirectoryNamespace
- ServiceDirectoryService
- ServiceIdentity
- ServiceNetworkingConnection
- SourceRepoRepository
- SpannerDatabase
- SpannerInstance
- StorageBucket
- StorageBucketAccessControl
- StorageDefaultObjectAccessControl
- StorageNotification
- StorageTransferJob
- TagsTagBinding
- TagsTagKey
- TagsTagValue
- VPCAccessConnector
Os tipos a seguir não são compatíveis com o comportamento de preenchimento Merge a partir da versão correspondente:
| Nome do tipo | Versão |
|---|---|
| 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 |