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