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 NamespacePROJECT_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-IDNAMESPACE_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.