Menu Docs
Página inicial do Docs
/ /
Kubernetes Operator do MongoDB Atlas
/

AtlasCustomRole Recurso personalizado

O AtlasCustomRole recurso personalizado do define uma função de banco de dados personalizada do para alocar privilégios para seus usuários do 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, para projetos que você gerencia com o Atlas Kubernetes Operator

  • Faça referência ao ID do projeto do seu projeto Atlas no AtlasCustomRole recurso personalizado do, para projetos que você não gerencia com o 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

O exemplo a seguir mostra um AtlasCustomRole CRD independente que define a mesma shard-operator função personalizada definida no Exemplo Básico. Esta definição de recurso personalizado permite a você criar este papel em um projeto que você não gerencia na mesma instância do Atlas Kubernetes Operator com o qual você define este recurso. Para habilitar a operação independente, você deve usar um externalProjectRef em vez de um projectRef e deve fornecer um connectionSecret diretamente, pois esse recurso não pode herdar credenciais de API de seu projeto pai.

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 AtlasTeam disponíveis.

metadata.name

Tipo: string

Obrigatório

Nome que o Recurso PersonalizadoAtlasProject utiliza para adicionar esta equipe a um projeto.

metadata.namespace

Tipo: string

Opcional

namespace diferente de default que você deseja conter o recurso personalizado do atlasTeam . Se você definir um namespace personalizado, deverá adicioná-lo ao Recurso PersonalizadoAtlasProject no campo spec.teams.teamRef.namespace .

spec.connectionSecret.name

Tipo: string

Condicional

Nome do segredo opaco 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.

Atlas Kubernetes Operator observa segredos apenas com a etiqueta atlas.mongodb.com/type=credentials 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 do projeto ao qual pertence a função personalizada . Você deve especificar o ID do projeto de um Atlas Project existente. Esse parâmetro é necessário para roles personalizados que pertencem a projetos gerenciados por:

  • 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

Etiqueta que identifica a ação de privilégio . Para obter uma lista completa de ações disponíveis na API de administração do Atlas , consulte /reference/custom-role-actions.

spec.role.actions.resources

Tipo: array

Opcional

Lista de objetos que indicam um banco de dados e uma coleção no qual a ação é concedida ou indica que a ação é concedida no recurso do cluster.

spec.role.actions.resources.cluster

Tipo: booleano

Opcional

Sinalizador que indica que a ação é concedida no recurso do cluster.

Observação

Este parâmetro é mutuamente exclusivo com os parâmetros spec.role.actions.resources.collection e spec.role.actions.resources.database .

spec.role.actions.resources.collection

Tipo: string

Opcional

Rótulo legível por humanos que identifica a coleção na qual a ação é concedida. Se esse valor for uma string vazia, a ação será concedida em todas as collections dentro do banco de dados especificado no parâmetro spec.role.actions.resources.database .

Observação

Este parâmetro é mutuamente exclusivo com o parâmetro spec.role.actions.resources.cluster .

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

Este parâmetro é mutuamente exclusivo com o parâmetro spec.role.actions.resources.cluster .

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

Esse valor deve ser admin para todas as funções, exceto leitura e leitura/ gravação.

spec.role.inheritedRoles.name

Tipo: string

Opcional

Rótulo que identifica exclusivamente a função herdada. Você pode especificar outra função personalizada ou uma função integrada.

Voltar

AtlasDatabaseUser

Nesta página