Ressourcenreferenzen erstellen
Eine Google Cloud-Ressource, die mit Config Connector erstellt wurde, kann auf andere Ressourcen verweisen. Config Connector definiert solche Beziehungen über Ressourcenreferenzen. In diesem Thema wird erläutert, wie Sie Ressourcen mit Referenzen erstellen.
Referenztypen
In Config Connector können Referenzen Abhängigkeiten oder Verknüpfungen sein.
- Abhängigkeiten
- Eine Abhängigkeitsreferenz bezieht sich auf eine vorhandene Google Cloud-Ressource, die für die Config Connector-Ressource erforderlich ist. Beispielsweise benötigt eine Firewallregel ein Netzwerk.
- Verknüpfungen
- Ein Verknüpfungsverweis verbindet unabhängige Ressourcen miteinander. Ein Projekt kann beispielsweise mit einem Rechnungskonto verknüpft sein.
Ressourcenreferenzen angeben
Ressourcenreferenzen geben Sie in der spec
der Ressource an. Der Feldname ist der Kurzname der Ressource, gefolgt von Ref
. Beispiel:
- Die Referenz auf ein
PubSubTopic
mit dem Namentopic
lautettopicRef
. - Die Referenz auf einen
StorageBucket
namensbucket
lautetbucketRef
.
Die Referenz ist ein Objekt mit einem einzelnen Feld (name
). Die Ressource in resourceRef
wird durch den Namen der Referenz ersetzt.
Die folgende YAML-Datei beschreibt eine Pub/Sub-PubSubSubscription
, die auf ein PubSubTopic
namens myTopic
verweist.
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
name: pubsubsubscription-referencing-topic
spec:
topicRef:
name: myTopic
Pub/Sub-Beispiel
Pub/Sub-Thema erstellen
In diesem Beispiel erstellen Sie ein PubSubSubscription
, das von PubSubTopic
abhängt.
Kopieren Sie das Folgende in eine Datei mit dem Namen
pubsub-topic.yaml
:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: TOPIC_NAME
Ersetzen Sie
TOPIC_NAME
durch den gewünschtenPubSubTopic
-NamenSie können beispielsweise folgende YAML-Datei verwenden, um ein Thema mit dem Namen
myTopic
zu erstellen:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: myTopic
Erstellen Sie
PubSubTopic
mitkubectl apply
:kubectl --namespace CC_NAMESPACE apply -f pubsub-topic.yaml
Ersetzen Sie
CC_NAMESPACE
durch den Namespace, von dem aus Config Connector Ressourcen verwaltet.
Pub/Sub-Abo erstellen
Kopieren Sie Folgendes in eine Datei mit dem Namen „pubsub-subscription.yaml”:
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: TOPIC_NAME
Ersetzen Sie
TOPIC_NAME
durch den Namen vonPubSubTopic
, den Sie in Schritt 1 verwendet haben. Das YAML-Manifest, das auf das zuvor erstellte ThemamyTopic
verweist, lautet beispielsweise:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: myTopic
Erstellen Sie
PubSubSubscription
mitkubectl apply
:kubectl --namespace CC_NAMESPACE apply -f pubsub-subscription.yaml
Ersetzen Sie
CC_NAMESPACE
durch den Namespace, von dem aus Config Connector Ressourcen verwaltet.
Externe Referenzen
Config Connector kann auch auf Ressourcen verweisen, die es nicht verwaltet. Diese werden als externe Referenzen bezeichnet. Im folgenden Beispiel verweist ComputeURLMap
auf einen BackendService
namens 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
Das Format der von external
akzeptierten Werte hängt von der Ressource ab. Informationen zu einzelnen Ressourcen finden Sie in der Dokumentation der Config Connector-Ressourcen. Die Beschreibungen der external
-Felder der Ressource enthalten auch die Werte, die external
akzeptiert.
IAMPolicy, IAMPartialPolicy und IAMPolicyMember
IAMPolicy
, IAMPartialPolicy
und IAMPolicyMember
unterstützen auch externe Referenzen. Der folgende IAMPolicyMember
verweist beispielsweise auf ein Project
mit der Projekt-ID 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
Informationen zum Format des external
-Feldes finden Sie in der Referenzdokumentation. Die
IAMPolicy
IAMPartialPolicy
und IAMPolicyMember
enthalten das akzeptierte Format für alle unterstützten Ressourcen. Die Formate sind in der Spalte „Externe Referenzformate“ der Tabelle Unterstützte Ressourcen aufgelistet.
Sie können auch die Referenzseite einer einzelnen Ressource aufrufen (z. B.
PubSubTopic)
und schauen Sie sich den Wert unter
„IAM External Reference Format“ (Externes Referenzformat für IAM) an. Zeile der
Tabelle mit der Zusammenfassung der Ressource.
Namespace-übergreifende Verweise
Config Connector ermöglicht es Ressourcen, auf Ressourcen in anderen Namespaces zu verweisen. Ist Config Connector jedoch im namespace-mode installiert, müssen Sie Config Connector zusätzliche Berechtigungen erteilen, um Namespace-übergreifende Verweise zu ermöglichen.
Wenn Sie beispielsweise Ressourcen in NAMESPACE_A
erstellen möchten, die auf Ressourcen in NAMESPACE_B
verweisen, müssen Sie Folgendes erstellen: 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
Nächste Schritte
Lesen Sie die Ressourcenreferenz , um mehr über die von Config Connector unterstützten Ressourcen zu erfahren.
Erfahren Sie, wie Sie einen Ressourcenverweis auf ein Secret in Ihrem Config Connector-Cluster verwenden können.