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, sucht er zuerst nach einem bereichsdefinierenden Feld in Ihrer Ressourcenspezifikation. Falls dieses nicht gefunden wird, wird dann nach einer bereichsdefinierenden Annotation gesucht.

Feld „folderRef“ angeben

Die meisten ordnerbezogenen Config Connector-Ressourcen unterstützen in der CRD-Spezifikation das Feld folderRef. Geben Sie in diesem Feld den Google Cloud-Ordner an, in dem Sie die Ressource erstellen möchten.

Wenn der Google Cloud-Ordner auch im selben Cluster über die CRD Ordner verwaltet wird, können Sie den Ordner 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 Namespace-Feld ist optional, wenn sich die Config Connector-Ordnerressource im selben Kubernetes-Namespace wie die ordnerbezogene Ressource befindet.

Wenn der Google Cloud-Ordner nicht als Kubernetes-Ressource im selben Cluster verwaltet wird, können Sie im Feld external die Ordner-ID direkt angeben. Das genaue Format des Werts kann je nach Ressourcentyp unterschiedlich sein. Die beiden gängigsten Formate sind „FOLDER_ID“ und „Ordner/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, das Feld folderRef aber nicht unterstützt, können Sie die Ordner-ID mit der Annotation folder-id auf die Ressourcenkonfiguration festlegen:

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

Hier ist ein Beispiel dafür, wie die YAML-Datei einer Ressource mit dieser Annotation aussieht:

apiVersion: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
  annotations:
    cnrm.cloud.google.com/folder-id: FOLDER_ID
  name: foobarname

Namespace-Konfiguration annotieren

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

Führen Sie den folgenden Befehl aus, um den Namespace mithilfe der Befehlszeile zu annotieren:

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

Ersetzen Sie Folgendes:

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

Alternativ können Sie ein YAML-Manifest anwenden, das die Annotation enthält. 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 ist Ihre Google Cloud-Ordner-ID
  • NAMESPACE_NAME ist der Name Ihres Namespace

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