Como criar referências de recursos

Um recurso do Google Cloud criado com o Config Connector pode referenciar outros recursos. O Config Connector define esses relacionamentos por meio de referências de recursos. Este tópico explica como criar recursos com referências.

Tipos de referências

No Config Connector, as referências podem ser dependências ou links.

Dependências
Uma referência de dependência refere-se a um recurso existente do Google Cloud necessário para o recurso do Config Connector. Por exemplo, uma regra de firewall não pode existir sem uma rede
Links
Uma referência de link une recursos independentes. Por exemplo, um projeto pode ser associado a uma conta de faturamento.

Como especificar referências de recursos

Você especifica referências de recursos no spec do recurso. O nome do campo é o nome abreviado do recurso seguido por Ref. Exemplo:

  • A referência a um PubSubTopic chamado topic é topicRef.
  • A referência a um StorageBucket chamado bucket é bucketRef.

A referência é um objeto com um único campo (name). O recurso em resourceRef é substituído pelo nome da referência.

O YAML abaixo descreve um PubSubSubscription do Pub/Sub que referencia um PubSubTopic chamado myTopic.

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: myTopic

Exemplo do Pub/Sub

Criar um PubSubTopic

Neste exemplo, você cria um PubSubSubscription que depende de um PubSubTopic.

  1. Copie o código abaixo em um arquivo chamado pubsub-topic.yaml, substituindo [TOPIC_NAME] pelo nome PubSubTopic desejado:
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: [TOPIC_NAME]

Por exemplo, o YAML para criar um tópico chamado myTopic é:

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: myTopic
  1. Crie o PubSubTopic com kubectl apply.
kubectl --namespace [CC_NAMESPACE] apply -f pubsub-topic.yaml

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

Criar um PubSubSubscription

  1. Copie o código abaixo em um arquivo chamado pubsub-subscription.yaml, substituindo [TOPIC_NAME] pelo nome PubSubTopic usado na etapa 1:
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: [TOPIC_NAME]

Por exemplo, o YAML que faz referência ao tópico myTopic criado anteriormente é:

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: myTopic
  1. Crie o PubSubSubscription com kubectl apply.
kubectl --namespace [CC_NAMESPACE] apply -f pubsub-subscription.yaml 

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

Referências externas

O Config Connector pode fazer referência a recursos que ele não gerencia. Elas são conhecidas como Referências externas. Por exemplo, o ComputeURLMap abaixo faz referência a um BackendService chamado test-backendservice.

apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeURLMap
metadata:
  name: test-urlmap
spec:
  location: global
  defaultService:
    backendServiceRef:
      external: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/test-backendservice

O formato dos valores aceitos por external depende do recurso. Consulte a documentação para recursos específicos na Referência de recursos. Para descobrir quais valores external aceita, leia as descrições dos campos external do recurso.

Referências externas para IAMPolicy e IAMPolicyMembr

IAMPolicy e IAMPolicyMember também são compatíveis com Referências externas. Por exemplo, o IAMPolicyMember abaixo faz referência a Project com o código do projeto test-project.

apiVersion: iam.cnrm.cloud.google.com/v1beta1
kind: IAMPolicyMember
metadata:
  name: test-iampolicymember
spec:
  member: serviceAccount:test-serviceaccount@test-project.iam.gserviceaccount.com
  role: roles/storage.admin
  resourceRef:
    apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
    kind: Project
    external: projects/test-project

Consulte a documentação do recurso que você quer referenciar na Referência de recurso. Descubra qual formato external aceita procurando a propriedade "Formato de referência externa do IAM" desse recurso.

A seguir

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

Veja como usar uma referência de recurso para um Secret no cluster do Config Connector.