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 riferimenti alle risorse. Questo argomento spiega come creare risorse con riferimenti.
Tipi di riferimenti
In Config Connector, i riferimenti possono essere dipendenze o link.
- Dipendenze
- Un riferimento di dipendenza si riferisce a una risorsa Google Cloud esistente necessaria per la risorsa Config Connector. Ad esempio, una regola firewall non può esistere senza una rete
- Link
- Un riferimento di collegamento unisce risorse indipendenti. Ad esempio, un progetto può essere associato a un account di fatturazione.
Specifica dei riferimenti alle risorse
Specifichi 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
PubSubTopicdenominatotopicètopicRef. - Il riferimento a un
StorageBucketdenominatobucketèbucketRef.
Il riferimento è un oggetto con un singolo campo (name). La risorsa in
resourceRef viene sostituita con il nome del 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.
Copia quanto segue in un file denominato
pubsub-topic.yaml:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: TOPIC_NAMESostituisci
TOPIC_NAMEcon il nomePubSubTopicche preferisci.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: myTopicCrea
PubSubTopicconkubectl apply.kubectl --namespace CC_NAMESPACE apply -f pubsub-topic.yaml
Sostituisci
CC_NAMESPACEcon lo spazio dei nomi da cui Config Connector gestisce le risorse.
Crea una sottoscrizione Pub/Sub
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_NAMESostituisci
TOPIC_NAMEcon il nomePubSubTopicche hai utilizzato nel passaggio 1. Ad esempio, il file YAML che fa riferimento all'argomentomyTopiccreato in precedenza è:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: myTopicCrea
PubSubSubscriptionconkubectl apply.kubectl --namespace CC_NAMESPACE apply -f pubsub-subscription.yaml
Sostituisci
CC_NAMESPACEcon lo spazio dei nomi da cui Config Connector gestisce le risorse.
Riferimenti esterni
Config Connector può fare riferimento a risorse che non gestisce. Questi sono
noti come riferimenti esterni. Ad esempio, il ComputeURLMap riportato 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 nella Guida di
riferimento alle risorse. Per scoprire quali valori accetta external, leggi le descrizioni dei campi external della risorsa.
IAMPolicy, IAMPartialPolicy e IAMPolicyMember
IAMPolicy, IAMPartialPolicy e IAMPolicyMember supportano anche i riferimenti esterni. Ad esempio, il IAMPolicyMember riportato 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:
kind: Project
external: projects/test-project
Per scoprire il formato accettato dal campo external, consulta la
documentazione di riferimento. Le pagine
IAMPolicy,
IAMPartialPolicy
e IAMPolicyMember
elencano 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 pagina di riferimento di una singola risorsa (ad esempio,
PubSubTopic)
e consultare il valore elencato nella riga "IAM External Reference Format" della
tabella riepilogativa della risorsa.
Riferimenti tra spazi dei nomi
Config Connector consente alle risorse di fare riferimento a risorse in altri spazi dei nomi. Tuttavia, se Config Connector è installato in modalità con spazi dei nomi, devi concedere a Config Connector autorizzazioni aggiuntive per consentire i riferimenti tra spazi dei nomi.
Ad esempio, se vuoi creare risorse in NAMESPACE_A che fanno riferimento a risorse in NAMESPACE_B, devi creare il seguente 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 alle risorse per scoprire le risorse supportate da Config Connector.
Scopri come utilizzare un riferimento a una risorsa per un secret nel cluster Config Connector.