Ordnerbezogene Ressourcen

Mit Config Connector können Sie Ihre Ressourcen auf Projekt-, Ordner- oder Organisationsebene verwalten. Damit Config Connector ermitteln kann, wo Ihre Ressourcen erstellt werden sollen, wird zuerst in der Ressourcenspezifikation nach einem feldbezogenen Feld gesucht. Wenn es nicht gefunden wird, wird nach einer feldbezogenen Annotationgesucht.

Feld folderRef angeben

Die meisten ordnerbezogenen Config Connector-Ressourcen unterstützen in ihrer CRD-Spezifikation ein Feld namens folderRef. Mit diesem Feld können Sie den Google Cloud Ordner angeben, in dem Sie die Ressource erstellen möchten.

Wenn der Google Cloud Ordner auch im selben Cluster über die Ordner CRD verwaltet wird, können Sie ihn als Kubernetes-Ressourcenreferenz angeben:

...
spec:
  folderRef:
    name: FOLDER_RESOURCE_NAME
    namespace: FOLDER_RESOURCE_NAMESPACE
...

Mit diesem Ansatz können Sie Config Connector verwenden und einen Google Cloud Ordner mit seinen untergeordneten Ressourcen in einem einzigen Anwendungsvorgang erstellen. Das Feld „Namespace“ ist optional, wenn sich die Config Connector-Ordnerressource im selben Kubernetes-Namespace wie Ihre ordnerbezogene Ressource befindet.

Wenn der Google Cloud Ordner nicht als Kubernetes-Ressource im selben Cluster verwaltet wird, können Sie das external Feld verwenden, um die Ordner-ID direkt anzugeben. Das genaue Format des Werts kann je nach Ressourcentyp variieren. Die beiden häufigsten Formate sind "FOLDER_ID" und "folders/FOLDER_ID". Unten sehen Sie ein Beispiel für „FOLDER_ID“:

...
spec:
  folderRef:
    external: "FOLDER_ID"
...

Ressourcenkonfiguration annotieren

Wenn die Config Connector-Ressource ordnerbezogen ist, aber das Feld folderRef nicht unterstützt, können Sie die Ordner-ID mit der Annotation folder-id in der Ressourcenkonfiguration festlegen:

...
metadata:
  annotations:
    cnrm.cloud.google.com/folder-id: FOLDER_ID
...

Das folgende Beispiel zeigt, wie die YAML-Konfiguration einer Ressource mit dieser Annotation aussieht:

apiVersion: SERVICE_NAME.cnrm.cloud.google.com/v1beta1
kind: RESOURCE_KIND
metadata:
  annotations:
    cnrm.cloud.google.com/folder-id: FOLDER_ID
  name: RESOURCE_NAME

Ersetzen Sie Folgendes:

  • SERVICE_NAME: der Google Cloud Dienstname für die Ressource
  • RESOURCE_KIND: die Art der Config Connector-Ressource
  • FOLDER_ID: Ihre Google Cloud Ordner-ID
  • RESOURCE_NAME: der Name der Ressource

Namespace-Konfiguration annotieren

Sie können eine Standardordner-ID für neu erstellte Ressourcen festlegen, indem Sie Ihren Kubernetes-Namespace annotieren. Wenn diese Annotation für eine der Ressourcen im Namespace explizit in der eigenen Konfiguration festgelegt ist, überschreibt die Annotation auf Ressourcenebene die Annotation auf Namespace-Ebene.

Führen Sie den folgenden Befehl aus, um den Namespace über die Befehlszeile zu annotieren:

kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/folder-id=FOLDER_ID

Ersetzen Sie Folgendes:

  • NAMESPACE_NAME: der Name Ihres Namespace
  • FOLDER_ID: Ihre Google Cloud Ordner-ID

Alternativ können Sie ein YAML-Manifest mit der Annotation anwenden. Kopieren Sie das unten aufgeführte YAML-Manifest in eine Datei:

apiVersion: v1
kind: Namespace
metadata:
  annotations:
    cnrm.cloud.google.com/folder-id: FOLDER_ID
  name: NAMESPACE_NAME

Ersetzen Sie Folgendes:

  • FOLDER_ID: Ihre Google Cloud Ordner-ID
  • NAMESPACE_NAME: der Name Ihres Namespace

Nachdem Sie die Datei erstellt haben, wenden Sie sie auf Ihren Cluster an.