Como configurar um recurso do Google Cloud usando o Anthos Config Management

Além de manter os clusters registrados sincronizados com um repositório Git como fonte de verdade, também é possível sincronizar configs de recursos do Google Cloud.

Pré-requisitos

Antes de continuar, instale o Config Sync e o Config Connector.

Criação de config

Enquanto os configs dos objetos Kubernetes persistem nos clusters Kubernetes, os configs dos recursos do Google Cloud persistem nos projetos do Google Cloud. Por esse motivo, cada Google Cloud é representado por um diretório de namespace em namespaces/. O diretório do namespace precisa corresponder exatamente ao nome do ID do projeto do Google Cloud. Esses diretórios de namespace podem herdar de namespaces abstratos.

As configurações são armazenadas em YAML ou JSON. Cada tipo de recurso tem campos obrigatórios e opcionais diferentes. Para conhecer os detalhes de cada tipo de recurso, como um PubSubTopic do Pub/Sub, consulte Recursos do Config Connector.

Por exemplo, suponha que essa configuração esteja armazenada em namespaces/myProject. Quando o Anthos Config Management é sincronizado com o repo, o Config Connector cria um PubSubTopic chamado pubsubtopic-example no projeto myProject Google Cloud.

apiVersion: pubsub.cnrm.cloud.google.com/v1alpha2
kind: PubSubTopic
metadata:
  labels:
    label-one: "value-one"
  name: pubsubtopic-sample

Para mais exemplos, consulte Recursos do Config Connector.

Como excluir ou abandonar um recurso

Para excluir um recurso, remova o config dele do repo. O recurso é excluído do projeto do Google Cloud na próxima sincronização.

Para abandonar um recurso (interromper a sincronização de um recurso, mas deixá-lo intacto no projeto do Google Cloud), crie duas confirmações separadas para o repo:

  • Na primeira confirmação, você adiciona a anotação cnrm.cloud.google.com/deletion-policy: abandon ao recurso.
  • Depois que essa alteração é sincronizada, você exclui o config do repo.

Por exemplo, para parar de gerenciar um recurso SpannerInstance:

  1. Edite o config e adicione uma linha como a linha em negrito abaixo:

    apiVersion: spanner.cnrm.cloud.google.com/v1alpha2
    kind: SpannerInstance
    metadata:
     labels:
       label-one: "value-one"
     annotations:
       cnrm.cloud.google.com/deletion-policy: abandon
     name: spannerinstance-sample
    spec:
     config: regional-us-central1
     displayName: Spanner Two
     numNodes: 1
    

    Confirme e envie a mudança.

  2. Em uma segunda confirmação, exclua o config. Confirme e envie a mudança.

O SpannerInstance é preservado no projeto Google Cloud. No entanto, o objeto personalizado não existe mais no cluster do Anthos Config Management e o config não é mais sincronizado usando o Config Connector ou o Anthos Config Management.

A seguir