Recursos

O Config Connector inclui uma coleção de Definições de Recursos Personalizados (CRDs). Cada CRD permite configurar um recurso do Google Cloud no Kubernetes. O Config Connector também permite aproveitar vários recursos do Kubernetes para gerenciar os recursos do Google Cloud.

Nesta página, apresentamos como o Config Connector usa objetos do Kubernetes e os respectivos metadados.

Objetos do Kubernetes e recursos do Config Connector

Por exemplo, quando você cria um Objeto do Kubernetes de kind: SQLInstance, o Config Connector cria uma Instância do Cloud SQL. Nesta seção, descrevemos como o Config Connector estende os tipos de objetos.

Especificações e status

Cada recurso do Config Connector é um objeto do Kubernetes com Spec e Status.

Especificações
O campo Spec contém todos os campos que definem o estado pretendido de um objeto, exceto Labels. Os subcampos de um Spec se referem ao recurso associado do Google Cloud. Quando você altera um subcampo, o valor do recurso do Google Cloud tem consistência posterior com o valor pretendido.
Um exemplo de campo gravável é databaseVersion em um recurso SQLInstance.
Status
O campo Status é somente leitura e contém o estado atual do seu objeto. O Config Connector lê periodicamente informações sobre seu recurso do Google Cloud e atualiza o Status. Para verificar as mensagens de erro ou a prontidão de um recurso, consulte Status.Condition.
Um campo Status somente leitura é o connectionName de um recurso SQLInstance.

Metadados do objeto

Cada recurso do Config Connector inclui um campo de metadados. Nesta seção, descrevemos como o Config Connector usa subcampos nos metadados.

Nome
A criação de um recurso do Config Connector cria um recurso do Google Cloud com o mesmo nome.
Namespace
O namespace em que você cria um recurso do Config Connector determina o projeto que contém o recurso do Google Cloud. Para mais informações sobre namespaces, consulte Namespaces do Kubernetes e Projetos do Google Cloud.
Rótulos
Os rótulos no campo de metadados de um recurso do Config Connector também são adicionados ao recurso associado do Google Cloud.
Além disso, o Config Connector adiciona um rótulo de sistema chamado managed-by-cnrm com um valor de true aos seus recursos do Google Cloud.
Anotações

O Config Connector pode executar outras ações nos seus recursos que não estão definidas no Spec. Essas ações são definidas nos subcampos de metadata.annotations. Os valores da anotação precisam ser uma string. Os tipos de anotações que o Config Connector aceita são descritos nas seções a seguir.

Exclusão

Por padrão, o Config Connector exclui um recurso depois que você exclui o objeto do seu cluster. Se você preferir manter o recurso, defina a anotação deletion-policy.

Diretivas

As diretivas configuram o Config Connector para executar outras ações além da criação ou exclusão de recursos.

Por exemplo, o Cloud Storage não permite excluir um StorageBucket que contém objetos. A aplicação da anotação force-destroy ao bucket e a exclusão dele fazem com que o Config Connector exclua todos os objetos dentro do bucket primeiro e, em seguida, exclua o bucket.

Por exemplo, a diretiva force-destroy é declarada no snippet YAML a seguir.

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

Para saber quais recursos aceitam diretivas, consulte Recursos.

Pastas e recursos hierárquicos

Além de gerenciar recursos nos produtos Google Cloud, o Config Connector oferece suporte à criação e ao gerenciamento de recursos nas Pastas e organizações do Google Cloud. Para mais informações, consulte Namespaces e projetos.

Como usar o RBAC para controle de acesso

O Controle de Acesso Baseado em Papel (RBAC) do Kubernetes protege seus recursos. Controle a criação dos recursos do Google Cloud atribuindo permissões RBAC. Para mais informações, consulte Como proteger o acesso aos recursos.

Condição do status

O Config Connector usa uma condição pronta em status.condition para duas finalidades:

  • que indica quando um recurso está pronto. Quando um recurso estiver reconciliado e pronto, o status.condition.status dele será definido como True. Para verificar quando um recurso está pronto, consulte Aguardando que os recursos estejam prontos
  • exibindo erro ou informações adicionais. A condição "pronto" tem os campos Message e Reason que fornecem informações adicionais sobre o status do recurso.

Eventos

Alterações importantes de status dos recursos do Config Connector são visíveis como eventos do Kubernetes. Para mais informações, consulte Como exibir eventos.

Configuração declarativa e consistência posterior

Com a configuração declarativa, você define o estado pretendido do sistema. O sistema trabalha constantemente para permanecer o mais próximo possível desse estado. Para mais informações, consulte Gerenciamento declarativo de objetos do Kubernetes usando arquivos de configuração.

Com o Config Connector, crie e atualize recursos em qualquer ordem, independentemente dos relacionamentos de dependência. O GKE move sua configuração declarada em direção à consistência posterior com o estado pretendido.

Por exemplo, se você criar um PubSubSubscription antes do PubSubTopic correspondente, o Config Connector aguardará até que o tópico seja criado antes de criar a assinatura associada.

A duração da instalação do Config Connector continua inconsistente e depende do número e dos tipos de recursos que ele gerencia. As alterações em um cluster do GKE geralmente são executadas em segundos. No entanto, o tempo para criar recursos do Google Cloud pode variar de acordo com o tipo de recurso. Por exemplo, um único PubSubTopic leva alguns segundos para ser criado. Os recursos do Google Cloud não atingem a consistência até que sejam criados. Por exemplo, ao criar um SQLInstance e um SQLDatabase, o sistema fica inconsistente por um período de minutos enquanto o banco de dados é criado.

O GKE e o Config Connector reconciliam cada recurso a cada atualização ou a cada 10 minutos. Quando há um erro na reconciliação, o Config Connector tenta novamente a cada 30 segundos com retirada exponencial. É possível visualizar quaisquer erros nos Eventos de um determinado recurso.

A seguir