Recursos com escopo de pasta


O Config Connector pode gerenciar seus recursos no nível de projeto, pasta ou organização. Para que o Config Connector determine onde criar seus recursos, ele primeiro verifica se há um campo de definição de escopo na especificação do recurso, caso contrário, verifica se há uma anotação de definição de escopo.

Especificar o campo folderRef

A maioria dos recursos do Config Connector com escopo de pasta é compatível com um campo chamado folderRef nas especificações de CRD. Use esse campo para especificar a pasta do Google Cloud em que o recurso será criado.

Se a pasta do Google Cloud também estiver sendo gerenciada no mesmo cluster via clique em Pasta. CRD, é possível especificar a pasta como uma referência de recurso do Kubernetes:

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

Com essa abordagem, é possível usar o Config Connector e criar um Google Cloud com seus recursos filhos em uma única operação de aplicação. O campo de namespace é opcional se o recurso de pasta do conector de configuração estiver em o mesmo namespace do Kubernetes que o recurso com escopo de pasta.

Se a pasta do Google Cloud não estiver sendo gerenciada como um recurso do Kubernetes no mesmo cluster, é possível usar o campo external para especificar diretamente o ID da pasta. O formato exato do valor pode ser diferente dependendo do tipo de recurso. Os dois formatos mais comuns são "FOLDER_ID" e "pastas/FOLDER_ID". Veja um exemplo de "FOLDER_ID" abaixo:

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

Anotar a configuração de recursos

Se o recurso Config Connector tiver escopo de pasta, mas não oferecer suporte ao folderRef, é possível definir o ID da pasta para a configuração do recurso usando a anotação folder-id:

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

Confira um exemplo de como o YAML de um recurso vai ficar com essa anotação:

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

Anotar configuração de namespace

Para definir um ID de pasta padrão para recursos recém-criados, como anotar seu namespace do Kubernetes. Se algum dos recursos no namespace têm essa anotação explicitamente definida na própria configuração, o nível do recurso substitui a anotação no nível do namespace.

Para anotar o namespace usando a linha de comando, execute o seguinte comando:

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

Substitua:

  • NAMESPACE_NAME: o nome do namespace
  • FOLDER_ID: o ID da pasta do Google Cloud

Como alternativa, você pode aplicar um manifesto YAML contendo a anotação. Copie o YAML abaixo em um arquivo:

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

Substitua:

  • FOLDER_ID: o ID da pasta do Google Cloud
  • NAMESPACE_NAME: o nome do namespace

Depois de criar o arquivo, aplique-o ao cluster.