Projektbezogene Ressourcen


Mit Config Connector können Sie Ihre Ressourcen auf Projekt-, Ordner- oder Organisationsebene verwalten. Um zu bestimmen, wo Ihre Ressourcen erstellt werden sollen, sucht Config Connector zuerst in Ihrer Ressourcenspezifikation nach einem Feld, das den Geltungsbereich definiert. Wenn es kein solches Feld gibt, wird nach einer Annotation, die den Geltungsbereich definiert, gesucht.

Feld „projectRef“ angeben

Die meisten Config Connector-Ressourcen auf Projektebene unterstützen in ihrer CRD-Spezifikation ein Feld namens projectRef. Verwenden Sie dieses Feld, um das Google Cloud-Projekt anzugeben, in dem Sie die Ressource erstellen möchten.

Wenn das Google Cloud-Projekt auch im selben Cluster mit der das Projekt CRD können Sie das Projekt als Kubernetes-Ressourcenreferenz angeben:

...
spec:
  projectRef:
    name: PROJECT_RESOURCE_NAME
    namespace: PROJECT_RESOURCE_NAMESPACE
...

Mit diesem Ansatz können Sie Config Connector verwenden und ein Google Cloud-Projekt mit seinen untergeordneten Ressourcen in einem einzigen Anwendenvorgang erstellen. Das Namespace-Feld ist optional, wenn sich die Kubernetes-Ressource des Projekts im denselben Kubernetes-Namespace wie Ihre projektbezogene Ressource.

Wenn das Google Cloud-Projekt nicht als Kubernetes-Ressource verwaltet wird im selben Cluster befinden, können Sie das Feld external verwenden, um den Parameter Projekt-ID. Das genaue Format des Werts kann je nach Ressourcentyp variieren. Die beiden gängigsten Formate sind „PROJECT_ID“ und „projects/PROJECT_ID“. Hier ein Beispiel für „projects/PROJECT_ID“:

...
spec:
  projectRef:
    external: "projects/PROJECT_ID"
...

Ressourcenkonfiguration annotieren

Wenn die Config Connector-Ressource projektbezogen ist, aber nicht unterstützt wird projectRef können Sie die Projekt-ID auf die Ressourcenkonfiguration festlegen. mithilfe der Annotation project-id:

...
metadata:
  annotations:
    cnrm.cloud.google.com/project-id: PROJECT_ID
...

Hier ist ein Beispiel dafür, wie die YAML-Datei einer FooBar-Ressource in diesem Beispiel aussieht: Anmerkung enthält:

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

Namespace-Konfiguration annotieren

Sie können eine Standardprojekt-ID für neu erstellte Ressourcen festlegen, indem Sie Ihren Kubernetes-Namespace annotieren. Wenn für eine der Ressourcen im Namespace diese Anmerkung in der eigenen Konfiguration explizit festgelegt ist, wird die Anmerkung auf Namespaceebene durch die Anmerkung auf Ressourcenebene überschrieben.

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

kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/project-id=PROJECT_ID

Ersetzen Sie Folgendes:

  • NAMESPACE_NAME ist der Name Ihres Namespace
  • PROJECT_ID: Ihre Google Cloud-Projekt-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/project-id: PROJECT_ID
  name: NAMESPACE_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • NAMESPACE_NAME ist der Name Ihres Namespace

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

Namespace-Namen als Projekt-ID verwenden

Wenn weder die Ressource noch der Namespace eine Projekt-ID angibt, Der Name des Namespace wird von Config Connector als Projekt-ID verwendet. Dieses Standardverhalten wird von Config Connector unterstützt, wir empfehlen es jedoch nicht, da die implizite Standardprojekt-ID verwirrend sein kann.