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 Namen topic lautet topicRef.
  • Die Referenz auf einen StorageBucket namens bucket lautet bucketRef.

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 einen PubSubTopic mit dem Namen 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.

  1. Kopieren Sie Folgendes 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ünschten PubSubTopic-Namen.

    Zum Erstellen eines Themas mit dem Namen myTopic können Sie beispielsweise die folgende YAML-Datei verwenden:

    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
      name: myTopic
    
  2. Erstellen Sie PubSubTopic mit kubectl 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

  1. Kopieren Sie Folgendes in eine Datei namens "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 von PubSubTopic, den Sie in Schritt 1 verwendet haben. Der YAML-Inhalt, der auf das zuvor erstellte Thema myTopic verweist, sieht beispielsweise so aus:

    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubSubscription
    metadata:
      name: pubsubsubscription-referencing-topic
    spec:
      topicRef:
        name: myTopic
    
  2. Erstellen Sie PubSubSubscription mit kubectl 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.

Externe Referenzen für IAMPolicy und IAMPolicyMember

IAMPolicy 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:
    apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
    kind: Project
    external: projects/test-project

Informationen darüber, welches Format das Feld external akzeptiert, finden Sie in der Referenzdokumentation. Auf den Seiten IAMPolicy und IAMPolicyMember sind das akzeptierte Format für alle unterstützten Ressourcen aufgeführt. Die Formate werden in der Tabelle Unterstützte Ressourcen in der Spalte "Externe Referenzformate" aufgeführt. Sie können auch die Referenzseite einer einzelnen Ressource (z. B. PubSubTopic) aufrufen und sich den Wert ansehen, der in der Zeile "IAM External Reference Format" der IAM-Ressource der Ressource aufgeführt ist. Übersichtstabelle.

Namespace-übergreifende Verweise

Mit Config Connector können Ressourcen auf andere Namespaces verweisen. Wenn Config Connector jedoch im namespaced-mode installiert wird, müssen Sie Config Connector zusätzliche Berechtigungen erteilen, um Cross-Namespace-Referenzen zu ermöglichen.

Wenn Sie beispielsweise Ressourcen in NAMESPACE_A erstellen möchten, die auf Ressourcen in NAMESPACE_B verweisen, müssen Sie den folgenden RoleBinding erstellen:

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.