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 nometopic
ètopicRef
. - Il riferimento a un
StorageBucket
di nomebucket
è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
.
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 perPubSubTopic
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
Crea la
PubSubTopic
conkubectl 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
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 nomePubSubTopic
che hai utilizzato nel passaggio 1. Ad esempio, il YAML che fa riferimento all'argomentomyTopic
che hai creato in precedenza è:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: myTopic
Crea la
PubSubSubscription
conkubectl 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.