Recursos al nivel del proyecto


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

Especificar el campo projectRef

La mayoría de los recursos de Config Connector centrados en el proyecto admiten un campo llamado projectRef en su especificación de CRD. Usa este campo para especificar el proyecto de Google Cloud en el que deseas crear el recurso.

Si el proyecto de Google Cloud también se administra en el mismo clúster con la CRD de Project, puedes especificar el proyecto como una referencia de recursos de Kubernetes:

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

Este enfoque permite usar Config Connector y crear Google Cloud con sus recursos secundarios en una única operación de aplicación. El campo de espacio de nombres es opcional si el recurso de Kubernetes del proyecto se encuentra en mismo espacio de nombres de Kubernetes que tu recurso con alcance de proyecto.

Si el proyecto de Google Cloud no se administra como un recurso de Kubernetes en el mismo clúster, puedes usar el campo external para especificar directamente el ID del proyecto. El formato exacto del valor puede variar según el el tipo de recurso. Los dos formatos más comunes son "PROJECT_ID" y “proyectos/PROJECT_ID”. Mira un ejemplo de “proyectos/PROJECT_ID” a continuación:

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

Anota la configuración de recursos

Si el recurso de Config Connector tiene alcance de proyecto, pero no es compatible projectRef, puedes establecer el ID del proyecto en la configuración del recurso con la anotación project-id:

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

Este es un ejemplo de cómo se ve un YAML del recurso FooBar con esta una anotación en ella:

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

Anota la configuración de espacio de nombres

Puedes establecer un ID del proyecto predeterminado para los recursos recién creados. Para ello, haz lo siguiente: anotando el espacio de nombres de Kubernetes. Si alguno de los recursos en el espacio de nombres establecer explícitamente esta anotación en su propia configuración, el rango reemplaza la anotación a nivel del espacio de nombres.

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

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

Reemplaza lo siguiente:

  • NAMESPACE_NAME: Es el nombre del espacio de nombres
  • PROJECT_ID: El ID del proyecto de Google Cloud.

Como alternativa, puedes aplicar un manifiesto YAML que contenga el . Copia el YAML a continuación en un archivo:

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • NAMESPACE_NAME: Es el nombre del espacio de nombres

Después de crear el archivo, aplícalo a tu clúster.

Usa el nombre del espacio de nombres como ID del proyecto

Si ni el recurso ni el espacio de nombres especifican un ID del proyecto, entonces Config Connector usa el nombre del espacio de nombres como ID del proyecto. Esta configuración predeterminada de red es compatible con Config Connector, pero no lo recomendamos, ya que el valor predeterminado implícito del ID del proyecto puede ser confuso.