Recursos en el ámbito de carpetas


Config Connector puede gestionar tus recursos a nivel de proyecto, carpeta u organización. Para que Config Connector determine dónde crear tus recursos, primero busca un campo que defina el ámbito en la especificación del recurso. Si no lo encuentra, busca una anotación que defina el ámbito.

Especificar el campo folderRef

La mayoría de los recursos de Config Connector con ámbito de carpeta admiten un campo llamado folderRef en su especificación de CRD. Usa este campo para especificar la Google Cloud carpeta en la que quieras crear el recurso.

Si la carpeta Google Cloud también se gestiona en el mismo clúster mediante el CRD Folder, puedes especificarla como referencia de recurso de Kubernetes:

...
spec:
  folderRef:
    name: FOLDER_RESOURCE_NAME
    namespace: FOLDER_RESOURCE_NAMESPACE
...

Este enfoque permite usar Config Connector y crear una Google Cloud carpeta con sus recursos secundarios en una sola operación de aplicación. El campo namespace es opcional si el recurso Folder de Config Connector está en el mismo espacio de nombres de Kubernetes que el recurso con ámbito de carpeta.

Si la Google Cloud carpeta no se gestiona como un recurso de Kubernetes en el mismo clúster, puedes usar el campo external para especificar directamente el ID de la carpeta. El formato exacto del valor puede variar en función del tipo de recurso. Los dos formatos más habituales son "FOLDER_ID" y "folders/FOLDER_ID". A continuación, se muestra un ejemplo de "FOLDER_ID":

...
spec:
  folderRef:
    external: "FOLDER_ID"
...

Anotar la configuración de recursos

Si el recurso de Config Connector tiene el ámbito de una carpeta, pero no admite el campo folderRef, puedes definir el ID de la carpeta en la configuración del recurso mediante la anotación folder-id:

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

A continuación, se muestra un ejemplo de cómo sería el archivo YAML de un recurso con esta anotación:

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

Anotar la configuración del espacio de nombres

Para definir un ID de carpeta predeterminado para los recursos recién creados, anota tu espacio de nombres de Kubernetes. Si alguno de los recursos del espacio de nombres tiene esta anotación definida explícitamente en su propia configuración, la anotación a nivel de recurso sobrescribe la anotación a nivel de espacio de nombres.

Para anotar el espacio de nombres mediante la línea de comandos, ejecuta el siguiente comando:

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

Haz los cambios siguientes:

  • NAMESPACE_NAME: el nombre del espacio de nombres
  • FOLDER_ID: tu ID de Google Cloud carpeta

También puedes aplicar un manifiesto YAML que contenga la anotación. Copia el siguiente código YAML en un archivo:

apiVersion: v1
kind: Namespace
metadata:
  annotations:
    cnrm.cloud.google.com/folder-id: FOLDER_ID
  name: NAMESPACE_NAME

Haz los cambios siguientes:

  • FOLDER_ID: tu ID de Google Cloud carpeta
  • NAMESPACE_NAME: el nombre del espacio de nombres

Una vez que haya creado el archivo, aplíquelo a su clúster.