Ressources au niveau du dossier
Config Connector peut gérer vos ressources au niveau du projet, du dossier ou de l'organisation. Pour que Config Connector détermine où créer vos ressources, il recherche d'abord un champ définissant le champ d'application dans la spécification de votre ressource. Si aucun champ de ce type n'est trouvé, il recherche une annotation définissant le champ d'application.
Spécifier le champ folderRef
La plupart des ressources Config Connector à l'échelle du dossier acceptent un champ nommé folderRef
dans sa spécification CRD. Ce champ vous permet de spécifier le dossier Google Cloud
dans lequel créer la ressource.
Si le dossier Google Cloud est également géré dans le même cluster via le dossier ; CRD, vous pouvez spécifier le dossier comme référence de ressource Kubernetes:
...
spec:
folderRef:
name: FOLDER_RESOURCE_NAME
namespace: FOLDER_RESOURCE_NAMESPACE
...
Cette approche permet d'utiliser Config Connector et de créer un dossier Google Cloud avec ses ressources enfants en une seule opération d'application. Le champ "Espace de noms" est facultatif si la ressource "Dossier Config Connector" se trouve dans le même espace de noms Kubernetes que votre ressource à l'échelle du dossier.
Si le dossier Google Cloud n'est pas géré en tant que ressource Kubernetes dans le même cluster, vous pouvez utiliser le champ external
pour spécifier directement l'ID du dossier. Le format exact de la valeur peut varier en fonction
type de ressource. Les deux formats les plus courants sont "FOLDER_ID" et "folders/FOLDER_ID". Vous trouverez ci-dessous un exemple de FOLDER_ID :
...
spec:
folderRef:
external: "FOLDER_ID"
...
Annoter la configuration des ressources
Si la ressource Config Connector est définie à l'échelle d'un dossier, mais n'est pas compatible avec
folderRef
, vous pouvez définir l'ID du dossier sur la configuration de la ressource
à l'aide de l'annotation folder-id
:
...
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
...
Voici un exemple de ce à quoi ressemblera le fichier YAML d'une ressource avec cette annotation :
apiVersion: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
name: foobarname
Annoter la configuration de l'espace de noms
Vous pouvez définir un ID de dossier par défaut pour les nouvelles ressources en annotant votre espace de noms Kubernetes. Si l'une des ressources de l'espace de noms a cette annotation explicitement définie dans sa propre configuration, l'annotation au niveau de la ressource écrase l'annotation au niveau de l'espace de noms.
Pour annoter l'espace de noms à l'aide de la ligne de commande, exécutez la commande suivante:
kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/folder-id=FOLDER_ID
Remplacez les éléments suivants :
NAMESPACE_NAME
: nom de votre espace de nomsFOLDER_ID
: ID de votre dossier Google Cloud
Vous pouvez également appliquer un fichier manifeste YAML contenant l'annotation. Copiez le manifeste YAML ci-dessous dans un fichier :
apiVersion: v1
kind: Namespace
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
name: NAMESPACE_NAME
Remplacez les éléments suivants :
FOLDER_ID
: ID de votre dossier Google CloudNAMESPACE_NAME
: nom de votre espace de noms
Après avoir créé le fichier, appliquez-le à votre cluster.