Como importar e exportar recursos do Google Cloud por nome

Nesta página, descrevemos o comando config-connector export e como usá-lo para exportar recursos do Google Cloud para arquivos YAML do Config Connector que podem ser importados posteriormente para o Config Connector.

Com config-connector export, é possível exportar um recurso atual do Google Cloud. Quando você transmite o nome completo de um recurso para config-connector export, config-connector gera um manifesto YAML que pode ser importado para o Config Connector.

Se o recurso do Google Cloud que você quer importar para o Config Connector já existir com o mesmo nome, o Config Connector assumirá o controle do recurso e o gerenciará com o YAML fornecido. O Config Connector não gerará um erro nessa situação, a menos que o YAML fornecido contenha alterações nos campos imutáveis ou outros problemas na configuração.

Antes de começar

Antes de começar, instale a ferramenta config-connector.

Exemplo de exportação

Neste exemplo, você cria um PubSubTopic com a CLI do Google Cloud e depois o importa para o Config Connector.

  1. Crie um tópico chamado sample-topic:

    gcloud pubsub topics create sample-topic
    

    Você recebe a confirmação de que o tópico foi criado.

    Created topic [projects/PROJECT_ID/topics/sample-topic].
    

    Na saída, PROJECT_ID é substituído pelo projeto do Google Cloud.

  2. Receba o ID do recurso do Google Cloud do tópico e salve-o em uma variável de ambiente com o seguinte comando:

    TOPIC_RESOURCE_ID=$(gcloud pubsub topics describe sample-topic --format "value(name)")
    
  3. Para identificar um recurso, config-connector export usa o nome completo do recurso. Salve o nome do recurso do tópico em uma variável de ambiente com o seguinte comando:

    TOPIC_RESOURCE_NAME="//pubsub.googleapis.com/${TOPIC_RESOURCE_ID}"
    
  4. Exporte o tópico com config-connector export executando o seguinte comando:

    config-connector export ${TOPIC_RESOURCE_NAME}
    

    A saída é um recurso do Config Connector no formato YAML.

    ---
    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
      annotations:
        cnrm.cloud.google.com/project-id: PROJECT_ID
      name: sample-topic
    ...
    

    Na saída, PROJECT_ID é substituído pelo projeto do Google Cloud.

  5. Você pode transmitir esse recurso para o Config Connector com kubectl apply -f -. Para transmitir o recurso diretamente, execute o seguinte comando:

    config-connector export ${TOPIC_RESOURCE_NAME} | kubectl apply -f -  --namespace CC_NAMESPACE
    

    Substitua CC_NAMESPACE pelo namespace em que o Config Connector gerencia recursos.

    O Config Connector adquire o recurso.

  6. Confirme se o Config Connector está gerenciando o recurso com kubectl describe:

    kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
    

    Substitua CC_NAMESPACE pelo namespace em que o Config Connector gerencia recursos.

Recursos compatíveis

É possível imprimir a lista de recursos da ferramenta config-connector com os formatos de nome de recurso executando o seguinte comando:

config-connector print-resources

Opções da linha de comando

O comando config-connector export tem as seguintes opções:

config-connector export RESOURCE_NAME \
    --output FILENAME \
    --oauth2-token TOKEN \
    --iam-format [policy | policymember | none] \
    --filter-deleted-iam-members [true | false] \
    --verbose
  • --output: um caminho de arquivo de saída opcional que desativa a saída padrão. Quando um arquivo é gerado, o resultado contém toda a resposta ao comando. Quando um diretório é gerado, ele contém um novo arquivo para cada recurso na resposta.
  • --oauth2-token: um token OAUTH2 como a identidade do Google Cloud. Por padrão, config-connector usa as credenciais padrão da CLI do Google Cloud.
  • --iam-format: especifica o tipo de saída dos recursos do Cloud IAM com sua exportação. As opções são policy (padrão), policymember ou none.
  • --filter-deleted-iam-members: especifica se você quer filtrar as principais do IAM excluídas. As opções são true ou false. O valor padrão é false.
  • --verbose: ativa o registro detalhado.

A seguir