Risorse relative ai progetti
Config Connector può gestire le risorse a livello di progetto, cartella o organizzazione. Affinché Config Connector possa determinare dove creare le risorse, controlla prima un campo che definisce l'ambito nella specifica della risorsa. Se non lo trova, controlla un'annotazione che definisce l'ambito.
Specifica il campo projectRef
La maggior parte delle risorse Config Connector con ambito progetto supporta un campo denominato projectRef
nella specifica CRD. Utilizza questo campo per specificare il progetto Google Cloud in cui
vuoi creare la risorsa.
Se il progetto Google Cloud viene gestito anche nello stesso cluster con la CRD Project, puoi specificare il progetto come riferimento a una risorsa Kubernetes:
...
spec:
projectRef:
name: PROJECT_RESOURCE_NAME
namespace: PROJECT_RESOURCE_NAMESPACE
...
Questo approccio consente di utilizzare Config Connector e creare un Google Cloud progetto con le relative risorse secondarie in un'unica operazione di applicazione. Il campo spazio dei nomi è facoltativo se la risorsa Kubernetes del progetto si trova nello stesso spazio dei nomi Kubernetes della risorsa con ambito progetto.
Se il Google Cloud progetto non è gestito come risorsa Kubernetes
nello stesso cluster, puoi utilizzare il campo external
per specificare direttamente
l'ID progetto. Il formato esatto del valore può variare a seconda del tipo di risorsa. I due formati più comuni sono "PROJECT_ID" e
"projects/PROJECT_ID". Vedi un esempio di
"projects/PROJECT_ID" di seguito:
...
spec:
projectRef:
external: "projects/PROJECT_ID"
...
Annota configurazione delle risorse
Se la risorsa Config Connector è limitata al progetto, ma non supporta il campo
projectRef
, puoi impostare l'ID progetto nella configurazione della risorsa
utilizzando l'annotazione project-id
:
...
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
...
Ecco un esempio di come appare il file YAML di una risorsa FooBar
con questa
annotazione:
apiVersion: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
name: foobarname
Annotare la configurazione dello spazio dei nomi
Puoi impostare un ID progetto predefinito per le risorse appena create annotando lo spazio dei nomi Kubernetes. Se una delle risorse nello spazio dei nomi ha questa annotazione impostata esplicitamente nella propria configurazione, l'annotazione a livello di risorsa sovrascrive l'annotazione a livello di spazio dei nomi.
Per annotare lo spazio dei nomi utilizzando la riga di comando, esegui questo comando:
kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/project-id=PROJECT_ID
Sostituisci quanto segue:
NAMESPACE_NAME
: il nome dello spazio dei nomiPROJECT_ID
: il tuo ID progetto Google Cloud
In alternativa, puoi applicare un manifest YAML contenente l'annotazione. Copia il codice YAML riportato di seguito in un file:
apiVersion: v1
kind: Namespace
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
name: NAMESPACE_NAME
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto Google CloudNAMESPACE_NAME
: il nome dello spazio dei nomi
Dopo aver creato il file, applicalo al cluster.
Utilizzo del nome dello spazio dei nomi come ID progetto
Se né la risorsa né lo spazio dei nomi specificano un ID progetto, Config Connector utilizza il nome dello spazio dei nomi come ID progetto. Questo comportamento predefinito è supportato da Config Connector, ma non lo consigliamo perché il valore predefinito implicito dell'ID progetto può creare confusione.