Creazione di riferimenti alle risorse

Una risorsa Google Cloud creata con Config Connector può fare riferimento ad altre risorse. Config Connector definisce queste relazioni tramite i riferimenti alle risorse. Questo argomento spiega come creare risorse con riferimenti.

Tipi di riferimenti

In Config Connector, i riferimenti possono essere dipendenti o link.

Dipendenze
Un riferimento alle dipendenze si riferisce a una risorsa Google Cloud esistente necessaria per la risorsa Config Connector. Ad esempio, una regola firewall non può esistere senza rete.
Link
Un link di riferimento collega insieme risorse indipendenti. Ad esempio, un progetto può essere associato a un account di fatturazione.

Specifica dei riferimenti alle risorse

Devi specificare i riferimenti alle risorse nel spec della risorsa. Il nome del campo è il nome breve della risorsa seguito da Ref. Ad esempio:

  • Il riferimento a un PubSubTopic di nome topic è topicRef.
  • Il riferimento a un StorageBucket di nome bucket è bucketRef.

Il riferimento è un oggetto con un unico campo (name). La risorsa in resourceRef viene sostituita con il nome di riferimento.

Il seguente file YAML descrive un PubSubSubscription Pub/Sub che fa riferimento a un PubSubTopic denominato myTopic.

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

Esempio di Pub/Sub

Crea un PubSubTopic

In questo esempio, crei un PubSubSubscription che dipende da un PubSubTopic.

  1. Copia quanto segue in un file denominato pubsub-topic.yaml:

    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
    name: TOPIC_NAME
    

    Sostituisci TOPIC_NAME con il nome che preferisci per PubSubTopic

    Ad esempio, per creare un argomento denominato myTopic, puoi utilizzare il seguente file YAML:

    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
      name: myTopic
    
  2. Crea la PubSubTopic con kubectl apply.

    kubectl --namespace CC_NAMESPACE apply -f pubsub-topic.yaml

    Sostituisci CC_NAMESPACE con lo spazio dei nomi Config Connector per gestire le risorse.

Crea un abbonamento PubSubSub

  1. Copia quanto segue in un file denominato `pubsub-subscription.yaml:

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

    Sostituisci TOPIC_NAME con il nome PubSubTopic che hai utilizzato nel passaggio 1. Ad esempio, il YAML che fa riferimento all'argomento myTopic che hai creato in precedenza è:

    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubSubscription
    metadata:
      name: pubsubsubscription-referencing-topic
    spec:
      topicRef:
        name: myTopic
    
  2. Crea la PubSubSubscription con kubectl apply.

    kubectl --namespace CC_NAMESPACE apply -f pubsub-subscription.yaml 

    Sostituisci CC_NAMESPACE con lo spazio dei nomi Config Connector per gestire le risorse.

Riferimenti esterni

Config Connector può fare riferimento a risorse che non gestisce. Questi sono chiamati riferimenti esterni. Ad esempio, ComputeURLMap di seguito fa riferimento a un BackendService denominato 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

Il formato dei valori accettati da external dipende dalla risorsa. Consulta la documentazione per risorse specifiche nel riferimento delle risorse. Per scoprire quali sono i valori accettati da external, leggi le descrizioni dei campi external della risorsa.

Riferimenti esterni per IAMPolicy e IAMPolicyMember

IAMPolicy e IAMPolicyMember supportano anche i riferimenti esterni. Ad esempio, IAMPolicyMember di seguito fa riferimento a un Project con l'ID progetto 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

Per scoprire il formato accettato dal campo external, leggi la documentazione di riferimento. Nelle pagine IAMPolicy e IAMPolicyMember è riportato il formato accettato per tutte le risorse supportate. I formati sono elencati nella colonna "Formati di riferimento esterni" della tabella Risorse supportate. Puoi anche andare alla singola pagina di riferimento della risorsa (ad esempio, PubSubTopic) e osservare il valore elencato nella riga "Formato esterno di riferimento IAM" della tabella di riepilogo della risorsa.

Riferimenti tra spazi dei nomi

Config Connector consente alle risorse di fare riferimento alle risorse in altri spazi dei nomi. Tuttavia, se Config Connector è installato in namespaced-mode, devi concedere a Config Connector ulteriori autorizzazioni per consentire i riferimenti a più spazi dei nomi.

Ad esempio, se vuoi creare risorse in NAMESPACE_A che fanno riferimento a risorse in NAMESPACE_B, devi creare i seguenti elementi RoleBinding:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: NAMESPACE_B
  name: allow-references-from-NAMESPACE_A
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cnrm-viewer
subjects:
- kind: ServiceAccount
  name: cnrm-controller-manager-NAMESPACE_A
  namespace: cnrm-system

Passaggi successivi

  • Consulta il riferimento per le risorse per ulteriori informazioni sulle risorse supportate da Config Connector.

  • Scopri come utilizzare un riferimento alle risorse per un secret nel tuo cluster Config Connector.