AtlasCustomRole
Recurso personalizado
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 noAtlasCustomRole
recurso personalizado, para projetos que você gerencia com o Atlas Kubernetes OperatorFaç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 personalizadoAtlasDeployment
, 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.
Exemplos
Exemplo básico
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
Exemplo de CRD independente
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
Parâmetros
Esta seção descreve os parâmetros de recurso personalizado AtlasTeam
disponíveis.
metadata.name
Tipo: string
Obrigatório
Nome que o Recurso Personalizado
AtlasProject
utiliza para adicionar esta equipe a um projeto.
metadata.namespace
Tipo: string
Opcional
namespace diferente de
default
que você deseja conter o recurso personalizado doatlasTeam
. Se você definir um namespace personalizado, deverá adicioná-lo ao Recurso PersonalizadoAtlasProject
no campospec.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
doatlasProject
paiO segredo
global
padrão, sespec.connectionSecretRef.name
estiver indefinido para oatlasProject
pai
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 usarspec.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 especificadospec.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
espec.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.
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.