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

AtlasCustomRole Recurso personalizado

Nesta página

  • Exemplos
  • Exemplo básico
  • Exemplo de CRD independente
  • Parâmetros

O AtlasCustomRole recurso personalizado do define uma função de banco de dados de dados personalizada do para alocar privilégios para seus usuários do banco de dados 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 usa 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.,0 consulte Novo padrão: proteção de exclusão no Atlas Kubernetes 2 Operator.0.

    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 de dados personalizado.

  • Atualiza uma função de banco de dados 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

Opcional

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