Recursos paraen el ámbito de proyectos
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 projectRef
La mayoría de los recursos de Config Connector con ámbito de proyecto admiten un campo denominado projectRef
en su especificación CRD. Utiliza este campo para especificar el Google Cloud proyecto en el que quieres crear el recurso.
Si el proyecto Google Cloud también se gestiona en el mismo clúster con el CRD Project, puedes especificar el proyecto como referencia de recurso de Kubernetes:
...
spec:
projectRef:
name: PROJECT_RESOURCE_NAME
namespace: PROJECT_RESOURCE_NAMESPACE
...
De esta forma, puedes usar Config Connector y crear un Google Cloud proyecto 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 de ámbito de proyecto.
Si el Google Cloud proyecto no se gestiona 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 en función del tipo de recurso. Los dos formatos más habituales son "PROJECT_ID" y "projects/PROJECT_ID". Consulta un ejemplo de
"projects/PROJECT_ID" a continuación:
...
spec:
projectRef:
external: "projects/PROJECT_ID"
...
Anotar la configuración de recursos
Si el recurso de Config Connector tiene un ámbito de proyecto, pero no admite el campo projectRef
, puedes definir 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 de cómo sería el archivo YAML de un 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
Anotar la configuración del espacio de nombres
Puedes definir un ID de proyecto predeterminado para los recursos recién creados anotando 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/project-id=PROJECT_ID
Haz los cambios siguientes:
NAMESPACE_NAME
: el nombre del espacio de nombresPROJECT_ID
: tu ID de proyecto Google Cloud
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/project-id: PROJECT_ID
name: NAMESPACE_NAME
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto Google CloudNAMESPACE_NAME
: el nombre del espacio de nombres
Una vez que haya creado el archivo, aplíquelo a su clúster.
Usar el nombre del espacio de nombres como ID de proyecto
Si ni el recurso ni el espacio de nombres especifican un ID de proyecto, Config Connector usa el nombre del espacio de nombres como ID de proyecto. Config Connector admite este comportamiento predeterminado, pero no lo recomendamos, ya que el valor predeterminado implícito del ID de proyecto puede resultar confuso.