Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

AtlasCustomRole Recurso personalizado

Importante

Os subrecursos legados são preteridos a partir do lançamento de seus CRDs correspondentes. Se sua configuração depender atualmente da forma de subrecurso dessa definição de recurso, migre para um CRD.

O AtlasCustomRole recurso personalizado do define uma função de banco de dados personalizada para alocar privilégios para seus usuários de banco de dados .

Para criar essa função personalizada em um determinado projeto, você deve:

  • Faça referência ao nome do AtlasProject Recurso Personalizado no AtlasCustomRole recurso personalizado do, para projetos que você gerencia com o Atlas Kubernetes Operator

  • Reference the project ID of your Atlas project in the AtlasCustomRole custom resource, for projects you don't manage with Atlas Kubernetes Operator

Importante

Os Recursos Personalizados Não Excluem Mais Objetos por Padrão

  • O Atlas Kubernetes Operator utiliza arquivos de configuração de recurso personalizado para gerenciar sua configuração do Atlas , mas a partir do Atlas Kubernetes Operator,2.0 os recursos personalizados que você exclui no Kubernetes não são mais (por padrão) excluídos no Atlas. Em vez disso, o Atlas Kubernetes Operator simplesmente para de gerenciar estes recursos no Atlas. Por exemplo, se você excluir um AtlasProject Recurso Personalizado no Kubernetes, por padrão, o Atlas Kubernetes Operator não excluirá mais automaticamente o projeto correspondente do Atlas. Essa mudança no comportamento destina-se a ajudar a evitar exclusões acidentais ou inesperadas. Para saber mais, incluindo como reverter este comportamento para o padrão utilizado antes do Atlas Kubernetes Operator.,2 0consulte Novo padrão: Proteção de exclusão no Atlas Kubernetes 2 0Operator..

    Da mesma forma, o Atlas Kubernetes Operator não exclui equipes do Atlas se você as remover de um projeto do Atlas no Kubernetes com o Atlas Kubernetes Operator.

  • Defina explicitamente os detalhes de configuração desejados para evitar o uso implícito de valores de configuração padrão do Atlas . Em alguns casos, herdar os padrões do Atlas pode resultar em um loop de reconciliação que pode impedir que seu recurso personalizado atinja um estado READY. Por exemplo, definir explicitamente o comportamento de autoscaling desejado em seu recurso personalizado AtlasDeployment, conforme mostrado no exemplo incluído, garante que um tamanho de instância estática em seu recurso personalizado não esteja sendo aplicado repetidamente a um sistema do Atlas que tenha o autoscaling ativado.

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40

O Atlas Kubernetes Operator realiza uma das seguintes ações usando o recurso da API Role de banco de dados personalizado do Atlas :

  • Cria um novo role de banco de dados personalizado.

  • Atualiza uma função de banco de dados personalizado existente.

O exemplo seguinte mostra um recurso personalizado do AtlasCustomRole que define o função personalizada do shard-operator , com privilégios para fazer backup e monitorar clusters fragmentados dentro do projeto do my-project.

apiVersion: atlas.mongodb.com/v1
kind: AtlasCustomRole
metadata:
name: shard-operator-role
namespace: mongodb-atlas-system
labels:
mongodb.com/atlas-reconciliation-policy: keep
spec:
projectRef:
name: my-project
namespace: my-operator-namespace
role:
name: my-role
actions:
- name: getShardMap
resources:
cluster: true
- name: shardingState
resources:
cluster: true
- name: connPoolStats
resources:
cluster: true
- name: getLog
resources:
cluster: true
inheritedRoles:
- name: operator-role-1
role: backup

The following example shows an AtlasCustomRole independent CRD that defines the same shard-operator custom role defined in the Basic Example. This custom resource definition allows you to create this role in a project you don't manage in the same instance of Atlas Kubernetes Operator with which you define this resource. To enable independent operation, you must use an externalProjectRef instead of a projectRef, and you must supply a connectionSecret directly since this resource can't inherit API credentials from its parent project.

apiVersion: atlas.mongodb.com/v1
kind: AtlasCustomRole
metadata:
name: shard-operator-role
namespace: mongodb-atlas-system
labels:
mongodb.com/atlas-reconciliation-policy: keep
spec:
externalProjectRef:
id: 671998971c8520583f24f411
connectionSecret:
name: my-atlas-key
role:
name: my-role
actions:
- name: getShardMap
resources:
cluster: true
- name: shardingState
resources:
cluster: true
- name: connPoolStats
resources:
cluster: true
- name: getLog
resources:
cluster: true
inheritedRoles:
- name: operator-role-1
role: backup

Esta seção descreve os parâmetros de recurso personalizado AtlasCustomRole disponíveis.

metadata.name

Tipo: string

Obrigatório

Nome que o AtlasProject Recurso Personalizado utiliza para adicionar este função personalizada a um projeto.

metadata.namespace

Tipo: string

Opcional

Namespace que você deseja que contenha o recurso personalizado do atlasCustomRole. Se não for especificado, o Atlas Kubernetes Operator utilizará o namespace atual definido por kubectl.

spec.connectionSecret.name

Tipo: string

Condicional

Nome do segredo opaco segredo que contém o ID da organização e as chaves de API que o Atlas Kubernetes Operator usa para se conectar ao Atlas. Se não for especificado, o Atlas Kubernetes Operator voltará para:

  • O parâmetro spec.connectionSecretRef.name do atlasProjectpai

  • O segredo global padrão, se spec.connectionSecretRef.name estiver indefinido para o atlasProjectpai

Este parâmetro é obrigatório para CRDs independentes.

O Atlas Kubernetes atlas.mongodb.com/type=credentials Operator observa segredos apenas com a etiqueta para evitar a exibição de segredos desnecessários.

O exemplo a seguir rotula um segredo:

kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRef.id

Tipo: string

Condicional

ID of the project to which the custom role belongs. You must specify the project ID of an existing Atlas Project. This parameter is required for custom roles that belong to projects managed by either:

  • Uma instância diferente do Atlas Kubernetes Operator

  • Ferramentas diferentes do Atlas Kubernetes Operator

Para funções personalizadas que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator, use spec.projectRef.name se não usar spec.externalProjectRef.id.

Uma função personalizada só pode pertencer a um projeto. Para definir a mesma função personalizada para vários projetos, crie definições de recursos personalizadas para cada projeto.

spec.projectRef.name

Tipo: string

Condicional

Nome do projeto ao qual pertence a função personalizada . Você deve especificar um AtlasProject Recurso Personalizado existente. Este parâmetro se aplica somente a roles personalizados que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator.

Para roles personalizados que pertencem a projetos gerenciados por:

  • uma instância diferente do Atlas Kubernetes Operator

  • ferramentas diferentes do Atlas Kubernetes Operator

usar spec.externalProjectRef.id.

Uma função personalizada só pode pertencer a um projeto. Para definir a mesma função personalizada para vários projetos, crie definições de recursos personalizadas para cada projeto.

spec.projectRef.namespace

Tipo: string

Condicional

Namespace no qual o AtlasProject Recurso Personalizado especificado spec.projectRef.name no existe.

Para roles personalizados que pertencem a projetos gerenciados por:

  • uma instância diferente do Atlas Kubernetes Operator

  • ferramentas diferentes do Atlas Kubernetes Operator

não defina este parâmetro.

spec.role.actions

Tipo: array

Opcional

Lista de objetos que representa as ações de privilégio individual que a função concede.

spec.role.actions.name

Tipo: string

Obrigatório

Label that identifies the privilege action. For a complete list of actions available in the Atlas Administration API, see /reference/custom-role-actions.

spec.role.actions.resources

Tipo: array

Opcional

List of objects that indicate a database and collection on which the action is granted, or indicates that the action is granted on the cluster resource.

spec.role.actions.resources.cluster

Tipo: booleano

Opcional

Flag that indicates that the action is granted on the cluster resource.

Observação

This parameter is mutually exclusive with the spec.role.actions.resources.collection and spec.role.actions.resources.database parameters.

spec.role.actions.resources.collection

Tipo: string

Opcional

Human-readable label that identifies the collection on which the action is granted. If this value is an empty string, the action is granted on all collections within the database specified in the spec.role.actions.resources.database parameter.

Observação

This parameter is mutually exclusive with the spec.role.actions.resources.cluster parameter.

spec.role.actions.resources.database

Tipo: string

Opcional

Rótulo legível por humanos que identifica o reconhecimento de data center no qual a ação é concedida.

Observação

This parameter is mutually exclusive with the spec.role.actions.resources.cluster parameter.

spec.role.inheritedRoles

Tipo: array

Opcional

Lista de objetos que representam pares de valores-chave que indicam a função herdada e o banco de dados no qual a função é concedida.

spec.role.inheritedRoles.database

Tipo: string

Opcional

Rótulo legível por humanos que identifica o reconhecimento de data center no qual o papel herdado é concedido.

Observação

This value should be admin for all roles except read and readWrite.

spec.role.inheritedRoles.name

Tipo: string

Opcional

Label that uniquely identifies the inherited role. You can specify another custom role or a built-in role.