Config Connector puede administrar los recursos a nivel de proyecto, carpeta u organización. Para que Config Connector determine dónde crear tus recursos, primero verifica si hay un campo de definición de alcance en tu especificación de recursos, si no lo encuentras, y luego busca una anotación de definición de alcance.
Especifica el campo projectRef
La mayoría de los recursos de Config Connector con alcance de proyecto admiten un campo llamado projectRef
en sus especificaciones 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 Proyecto, puedes especificar el proyecto como una referencia de recurso de Kubernetes:
...
spec:
projectRef:
name: PROJECT_RESOURCE_NAME
namespace: PROJECT_RESOURCE_NAMESPACE
...
Este enfoque permite usar Config Connector y crear un proyecto de Google Cloud con sus recursos secundarios en una sola operación de aplicación. El campo de espacio de nombres es opcional si el recurso de Kubernetes del proyecto está en el mismo espacio de nombres de Kubernetes que el 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 ser diferente según el tipo de recurso. Los dos formatos más comunes son “PROJECT_ID” y “projects/PROJECT_ID”. Consulta un ejemplo de “projects/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 admite el campo projectRef
, puedes establecer el ID del proyecto en la configuración del recurso mediante la anotación project-id
:
...
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
...
A continuación, se muestra un ejemplo del aspecto de un YAML del recurso FooBar
con esta anotación:
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 configurar un ID del proyecto predeterminado para los recursos recién creados si anotas tu espacio de nombres de Kubernetes. Si alguno de los recursos en el espacio de nombres tiene esta anotación configurada de forma explícita en su propia configuración, la anotación a nivel de recurso reemplaza 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/project-id=PROJECT_ID
Reemplaza lo siguiente:
NAMESPACE_NAME
: Es el nombre del espacio de nombresPROJECT_ID
: El ID del proyecto de Google Cloud.
Como alternativa, puedes aplicar un manifiesto YAML que contenga la anotación. 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 el 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 el ID del proyecto. Este comportamiento predeterminado es compatible con Config Connector, pero no lo recomendamos, ya que el valor predeterminado implícito del ID del proyecto puede ser confuso.