Recursos ao nível do projeto
O Config Connector pode gerir os seus recursos ao nível do projeto, da pasta ou da organização. Para que o Config Connector determine onde criar os seus recursos, verifica primeiro um campo de definição de âmbito na especificação do recurso. Se não o encontrar, verifica uma anotação de definição de âmbito.
Especifique o campo projectRef
A maioria dos recursos do Config Connector com âmbito do projeto suporta um campo denominado projectRef
na respetiva especificação CRD. Use este campo para especificar o Google Cloud projeto no qual
quer criar o recurso.
Se o Google Cloud projeto também for gerido no mesmo cluster com o CRD Project, pode especificar o projeto como uma referência de recurso do Kubernetes:
...
spec:
projectRef:
name: PROJECT_RESOURCE_NAME
namespace: PROJECT_RESOURCE_NAMESPACE
...
Esta abordagem permite usar o Config Connector e criar um Google Cloud projeto com os respetivos recursos secundários numa única operação de aplicação. O campo do espaço de nomes é opcional se o recurso do Kubernetes do projeto estiver no mesmo espaço de nomes do Kubernetes que o recurso com âmbito do projeto.
Se o Google Cloud projeto não for gerido como um recurso do Kubernetes
no mesmo cluster, pode usar o campo external
para especificar diretamente o
ID do projeto. O formato exato do valor pode ser diferente consoante o tipo de recurso. Os dois formatos mais comuns são "PROJECT_ID" e "projects/PROJECT_ID". Veja um exemplo de "projects/PROJECT_ID" abaixo:
...
spec:
projectRef:
external: "projects/PROJECT_ID"
...
Anote a configuração de recursos
Se o recurso do Config Connector tiver âmbito do projeto, mas não suportar o campo projectRef
, pode definir o ID do projeto na configuração do recurso através da anotação project-id
:
...
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
...
Segue-se um exemplo do aspeto do YAML de um recurso FooBar
com esta anotação:
apiVersion: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
name: foobarname
Anote a configuração do espaço de nomes
Pode definir um ID do projeto predefinido para recursos recém-criados anotando o seu espaço de nomes do Kubernetes. Se algum dos recursos no espaço de nomes tiver esta anotação definida explicitamente na sua própria configuração, a anotação ao nível do recurso substitui a anotação ao nível do espaço de nomes.
Para anotar o espaço de nomes através da linha de comandos, execute o seguinte comando:
kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/project-id=PROJECT_ID
Substitua o seguinte:
NAMESPACE_NAME
: o nome do seu espaço de nomesPROJECT_ID
: o ID do seu Google Cloud projeto
Em alternativa, pode aplicar um manifesto YAML que contenha a anotação. Copie o YAML abaixo para um ficheiro:
apiVersion: v1
kind: Namespace
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
name: NAMESPACE_NAME
Substitua o seguinte:
PROJECT_ID
: o ID do seu Google Cloud projetoNAMESPACE_NAME
: o nome do seu espaço de nomes
Depois de criar o ficheiro, aplique-o ao cluster.
Usar o nome do espaço de nomes como ID do projeto
Se nem o recurso nem o espaço de nomes especificarem um ID do projeto, o Config Connector usa o nome do espaço de nomes como o ID do projeto. Este comportamento predefinido é suportado pelo Config Connector, mas não o recomendamos, uma vez que a predefinição implícita do ID do projeto pode ser confusa.