Importante
Os subrecursos legados são preteridos a partir do lançamento de seus CRDs correspondentes. Se sua configuração depender atualmente da forma de subrecurso dessa definição de recurso, migre para um CRD.
O AtlasCustomRole recurso personalizado do define uma função de banco de dados personalizada para alocar privilégios para seus usuários de 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 OperatorReference the project ID of your Atlas project in the
AtlasCustomRolecustom resource, for projects you don't manage with 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
The following example shows an AtlasCustomRole independent CRD that defines the same shard-operator custom role defined in the Basic Example. This custom resource definition allows you to create this role in a project you don't manage in the same instance of Atlas Kubernetes Operator with which you define this resource. To enable independent operation, you must use an externalProjectRef instead of a projectRef, and you must supply a connectionSecret directly since this resource can't inherit API credentials from its parent 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: 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/working-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 |