Importante
Os subrecursos legados são preteridos a partir do lançamento de seus CRDs correspondentes. Se a sua configuração atualmente depender da forma de subrecurso desta definição de recurso, migre para um CRD.
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
AtlasProjectRecurso Personalizado noAtlasCustomRolerecurso personalizado do, para projetos que você gerencia com o Atlas Kubernetes OperatorFaça referência ao ID do projeto do seu projeto Atlas no
AtlasCustomRolerecurso 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
AtlasProjectRecurso 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
AtlasCustomRole
AtlasCustomRole é o esquema para a API AtlasCustomRole
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| string | atlas.mongodb.com/v1 | true |
| string |
| true |
| objeto | Consulte a documentação do Kubernetes | true |
| objeto |
| false |
| objeto |
| false |
AtlasCustomRole.spec
AtlasCustomRoleSpec define o estado de destino do CustomRole no Atlas.
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| objeto | Função representa uma função personalizada no Atlas. | true |
| objeto | Nome do segredo contendo as chaves privada e pública do Atlas | false |
| objeto |
| false |
| objeto |
| false |
AtlasCustomRole.spec.função
Função representa uma função personalizada no Atlas.
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| string | Etiqueta legível por humanos que identifica a função. Este | true |
| [] objeto | Lista do privilégio individual | false |
| [] objeto | Lista das funções incorporadas que esta função personalizada herda. | false |
AtlasCustomRole.spec.função.ações
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| string | Etiqueta legível por humanos que identifica a ação do privilégio. | true |
| [] objeto | Lista de | true |
AtlasCustomRole.spec.função.actions.recursos
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| booleano | Sinalizador que indica se a ação deve ser concedida no recurso | false |
| string | Etiqueta legível por humanos que identifica o | false |
| string | Etiqueta legível por humanos que identifica o | false |
AtlasCustomRole.spec.role.inheritedRoles
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| string | Etiqueta legível por humanos que identifica o | true |
| string | Etiqueta legível por humanos que identifica a função herdada. | true |
AtlasCustomRole.spec.connectionSecret
Nome do segredo que contém as chaves privadas e públicas da Atlas API.
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| string | Nome do recurso que está sendo referenciado Mais informações: https://kubernetes.io/docs/concepts/overview/work-with-objects/names/#names | true |
AtlasCustomRole.spec.externalProjectRef
externalProjectRef contém o ID do grupo pai do Atlas. Mutualmente exclusivo com o campo"projectRef".
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| string |
| true |
AtlasCustomRole.spec.projectRef
projectRef é uma referência ao recurso pai AtlasProject. Mutualmente exclusivo com o campo"externalProjectRef".
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| string | Nome do Recurso Kubernetes | true |
| string | Namespace do Recurso Kubernetes | false |
AtlasCustomRole.status
AtlasCustomRoleStatus é um status para o recurso AtlasCustomRole Custom. Não aquele incluído no AtlasProject
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| [] objeto | Condições é a lista de status que mostra o estado atual do Recurso Personalizado do Atlas | true |
| inteiro |
| false |
AtlasCustomRole.status. conditions
A condição descreve o estado de um recurso personalizado do Atlas em um determinado ponto.
Name | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| string | Status da condição; um de verdadeiro, falso, desconhecido. | true |
| string | Tipo de condição do Atlas recurso. | true |
| string | Última vez que a condição fez a transição de um status para outro. Representado no formato | false |
| string | Um | false |
| string | O | false |