Ressourcenreferenzen erstellen
Eine mit Config Connector erstellte Google Cloud -Ressource 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
PubSubTopicmit dem NamentopiclautettopicRef. - Die Referenz auf einen
StorageBucketnamensbucketlautetbucketRef.
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_NAMEErsetzen Sie
TOPIC_NAMEdurch den gewünschtenPubSubTopic-NamenSie können beispielsweise folgende YAML-Datei verwenden, um ein Thema mit dem Namen
myTopiczu erstellen:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: myTopicErstellen Sie
PubSubTopicmitkubectl apply:kubectl --namespace CC_NAMESPACE apply -f pubsub-topic.yaml
Ersetzen Sie
CC_NAMESPACEdurch 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_NAMEErsetzen Sie
TOPIC_NAMEdurch den Namen vonPubSubTopic, den Sie in Schritt 1 verwendet haben. Das YAML-Manifest, das auf das zuvor erstellte ThemamyTopicverweist, lautet beispielsweise:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: myTopicErstellen Sie
PubSubSubscriptionmitkubectl apply:kubectl --namespace CC_NAMESPACE apply -f pubsub-subscription.yaml
Ersetzen Sie
CC_NAMESPACEdurch 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. Auf den Seiten IAMPolicy, IAMPartialPolicy und IAMPolicyMember wird das akzeptierte Format für alle unterstützten Ressourcen aufgeführt. Die Formate sind in der Spalte „Externe Referenzformate“ der Tabelle Unterstützte Ressourcen aufgeführt.
Sie können auch die Referenzseite einer einzelnen Ressource (z. B. PubSubTopic) aufrufen und sich den Wert in der Zeile „Externes IAM-Referenzformat“ der Übersichtstabelle der Ressource ansehen.
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.