Como gerenciar recursos com o campo resourceID

Nesta página, explicamos como gerenciar recursos com o campo resourceID.

O Config Connector permite especificar explicitamente o ID do recurso de um recurso do Google Cloud usando o campo resourceID imutável, mas opcional, para criar ou adquirir o recurso. "Imutável, mas opcional" significa que é possível optar por especificar ou não o campo resourceID, mas não é possível fazer alterações no valor do campo resourceID depois de aplicar o manifesto ao cluster.

O campo resourceID aumenta a flexibilidade da nomeação de um recurso do Google Cloud que tenha um ID de recurso especificado pelo usuário. Ao usar o campo resourceID nos recursos do Config Connector, é possível definir vários recursos do Config Connector de mesmo tipo com o mesmo nome de recurso do Google Cloud em diferentes projetos, pastas, organizações ou recursos pai dentro do mesmo recurso namespace. O nome do recurso do Google Cloud também não está restrito pela convenção de nomenclatura de um nome de objeto do Kubernetes. Além disso, o campo resourceID permite a aquisição de um recurso do Google Cloud que tenha um ID de recurso gerado pelo serviço.

O Config Connector faz o namespace se tornar o "proprietário" de um recurso para evitar que ele seja usado por outro proprietário. No entanto, se você estiver usando o campo resourceID, é possível que haja vários recursos com o mesmo nome de recurso do Google Cloud criados no mesmo namespace. Esses recursos criam conflitos que o Config Connector não pode gerenciar. É necessário resolver conflitos manualmente.

Tipos de IDs de recursos

No Config Connector, os IDs de recursos podem ser especificados pelo usuário ou gerados pelo serviço.

IDs de recursos especificados pelo usuário
Um ID de recurso determinado, especificado e transmitido pelo usuário antes da criação do recurso. Você pode criar ou adquirir um recurso que tenha um ID de recurso especificado pelo usuário com o campo resourceID.
IDs de recursos gerados por serviços
Um ID de recurso gerado pelo serviço durante a criação do recurso. Ele pode ser recuperado pelo usuário após a criação do recurso. É possível adquirir um recurso que tem um ID de recurso gerado pelo serviço com o campo resourceID. Deixe o campo não especificado se você quiser criar um novo recurso que tenha um ID de recurso gerado pelo serviço. Veja a lista de recursos com um ID de recurso gerado pelo serviço.

Como especificar o campo resourceID

É possível especificar o campo resourceID no spec do recurso.

O manifesto a seguir descreve como especificar o campo resourceID para um tópico do Pub/Sub. O nome do recurso do Config Connector é pubsub-topic-sample e o nome do tópico do Pub/Sub é pubsub-topic-id.

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: pubsub-topic-sample
spec:
  resourceID: pubsub-topic-id

Como criar um recurso com o campo resourceID

Como criar um conjunto de dados do BigQuery

Neste exemplo, você cria um novo conjunto de dados do BigQuery usando o Config Connector com o campo resourceID. O valor do campo resourceID precisa seguir a convenção de nomenclatura do campo datasetId do conjunto de dados do BigQuery.

  1. Copie o conteúdo a seguir em um arquivo chamado bigquery-dataset.yaml.

      apiVersion: bigquery.cnrm.cloud.google.com/v1beta1
      kind: BigQueryDataset
      metadata:
        name: bigquerydataset-sample-for-creation
      spec:
        resourceID: bigquerydataset_sample_with_resourceid
        defaultTableExpirationMs: 3600000
        description: "BigQuery Dataset Sample with the ResourceID Field"
        friendlyName: bigquerydataset-sample-with-resourceid
        location: US
    
  2. Aplique o arquivo YAML ao cluster.

    kubectl apply --namespace CC_NAMESPACE -f bigquery-dataset.yaml

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

  3. Use kubectl describe para ver detalhes sobre o conjunto de dados.

    kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydataset-sample-for-creation

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

Como adquirir um recurso com o campo resourceID

Quando você gerencia um recurso do Google Cloud com o campo resourceID, o Config Connector adquire esse recurso se:

  • O recurso tiver um ID de recurso especificado pelo usuário, e os valores no manifesto e o nome do recurso corresponderem a um recurso existente. Ou,
  • O recurso tiver um ID de recurso gerado por serviço.

Como adquirir uma pasta

Para adquirir uma pasta usando o Config Connector com o campo resourceID, siga estas etapas:

  1. Copie o conteúdo a seguir em um arquivo chamado folder.yaml.

        apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
        kind: Folder
        metadata:
          annotations:
            cnrm.cloud.google.com/organization-id: ORG_ID
            # Remove the deletion-policy annotation if it is safe to delete the
            # folder when the resource is deleted from your cluster.
            cnrm.cloud.google.com/deletion-policy: "abandon"
          name: folder-sample-for-acquisition
        spec:
          resourceID: ACQUIRED_FOLDER_ID
          displayName: ACQUIRED_FOLDER_DISPLAY_NAME
    

    Substitua:

    • ORG_ID pelo ID numérico da sua organização;
    • ACQUIRED_FOLDER_ID pelo ID numérico da pasta a ser adquirida;
    • ACQUIRED_FOLDER_DISPLAY_NAME pelo nome de exibição da pasta a ser adquirida.
  2. Aplique o arquivo YAML ao cluster.

    kubectl apply --namespace CC_NAMESPACE -f folder.yaml

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

  3. Use kubectl describe para ver detalhes na pasta.

    kubectl describe --namespace CC_NAMESPACE folder folder-sample-for-acquisition

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

A seguir

Revise a Referência de recurso para aprender sobre os recursos aceitos pelo Config Connector.