O Atlas Kubernetes Operator oferece suporte aos seguintes recursos personalizados:
Resource | Descrição |
---|---|
Configuração de uma política de backup para fazer backup do seu Atlas cluster. | |
Configuração de um cronograma de backup para fazer backup do seu cluster Atlas. | |
Configuração de um cluster dentro de algum projeto no Atlas. | |
Configuração de um trigger de banco de dados dentro de algum projeto no Atlas. | |
Configuração de um projeto no Atlas. | |
Configuração de uma equipe de projeto no Atlas. | |
Configuração de uma instância do banco de dados federado e seus endpoints privados no Atlas. | |
Configuração da autenticação federada no Atlas. |
Importante
Definições de recursos personalizados têm prioridade
O Atlas Kubernetes Operator usa arquivos de configuração derecurso personalizado para gerenciar sua configuração do Atlas . Cada definição de recurso personalizado substitui as configurações especificadas de outras formas, como na UI do Atlas . Se você excluir um recurso personalizado, o Atlas Kubernetes Operator excluirá o objeto do Atlas , a menos que você use anotações para ignorar a exclusão. Para saber mais, consulte o Processo de criação e atualização e o Processo de exclusão.
Fluxo de trabalho do Atlas Kubernetes Operator
Ao utilizar o Atlas Kubernetes Operator, você pode criar um novo projeto do Atlas ou pode trabalhar com um projeto do Atlas existente.
Você precisa das seguintes informações da chave de API pública, chave de API privada e ID da organização para configurar o acesso do Atlas Kubernetes Operator ao Atlas.
Se você quiser que o Atlas Kubernetes Operator crie um novo projeto do Atlas , concedaacesso programático a uma organização. Se sua organização exigir uma lista de acesso IP para a API Atlas Administration, você também deverá configurar a lista de acesso da API.
Importante
Você deve atribuir a chave API ao role da organização Organization Project Creator ou superior.
Se você quiser trabalhar com um projeto Atlas existente, adicione acesso a um projeto. Se sua organização exigir uma lista de acesso IP para a API Atlas Administration, você também deverá configurar a lista de acesso da API.
Importante
Você deve atribuir à chave de API ao role de projeto Project Owner .
Para saber mais, consulte Configurar Acesso ao Atlas.
Processo de criação e atualização
Cada vez que você altera o campo spec
em qualquer um dos recursos personalizados suportados, o seguinte fluxo de trabalho é iniciado no Atlas Kubernetes Operator:
O Atlas Kubernetes Operator recebe um evento sobre o recurso personalizado alterado.
O Atlas Kubernetes Operator atualiza o campo
status.conditions
para refletir que o recurso não está pronto:conditions: - lastTransitionTime: "2021-03-13T16:26:17Z" status: "False" type: Ready Para se conectar à API de Administração do Atlas, o Atlas Kubernetes Operator lê o ID da organização e as chaves deAPI do de um dos seguintes locais:
spec.connectionSecretRef.name
(se especificado no Recurso PersonalizadoAtlasProject
).Por padrão, o Atlas Kubernetes Operator mantém segredos de conexão no mesmo namespace que o
AtlasProject
recurso personalizado. Para armazenar segredos em outro namespace, especifique o parâmetrospec.connectionSecretRef.namespace
.global
Segredo do Atlas Kubernetes Operator secret<operator-deployment-name>-api-key
(sespec.connectionSecretRef.name
não for especificado).
Para criar ou atualizar recursos no Atlas, o Atlas Kubernetes Operator utiliza as informações de conexão para fazer chamadas de API para o Atlas.
Observação
Às vezes, o Atlas Kubernetes Operator faz múltiplas chamadas de API no Atlas durante a reconciliação de um recurso personalizado. Por exemplo,
AtlasProject
tem uma configuração de lista de acesso IP para chamar a API correspondente.Se ocorrer algum erro durante a reconciliação,
status.conditions
será atualizado para refletir o erro.Exemplo
- lastTransitionTime: "2021-03-15T14:26:44Z" message: 'POST https://cloud.mongodb.com/api/atlas/v1.0/groups/604a47de73cd8cag77239021/accessList: 400 (request "INVALID_IP_ADDRESS_OR_CIDR_NOTATION") The address 192.0.2.1dfdfd5 must be in valid IP address or CIDR notation.' reason: ProjectIPAccessListNotCreatedInAtlas status: "False" type: IPAccessListReady Se a atualização for bem-sucedida,
status.conditions
reflete que o recurso está pronto:conditions: - lastTransitionTime: "2021-03-13T16:26:17Z" status: "True" type: Ready
Excluir processo
Se você remover um recurso personalizado do Kubernetes, o Atlas Kubernetes Operator tentará limpar o estado no Atlas, e o seguinte fluxo de trabalho começará:
O Atlas Kubernetes Operator recebe um evento sobre o recurso personalizado excluído.
Para se conectar à API de Administração do Atlas, o Atlas Kubernetes Operator lê o ID da organização e as chaves de API de um dos seguintes locais:
spec.connectionSecretRef.name
(se especificado no Recurso PersonalizadoAtlasProject
).Por padrão, o Atlas Kubernetes Operator mantém segredos de conexão no mesmo namespace que o recurso personalizado
AtlasProject
. Para armazenar segredos em outro namespace, especifique o parâmetrospec.connectionSecretRef.namespace
.global
Segredo do Atlas Kubernetes Operator secret<operator-deployment-name>-api-key
(sespec.connectionSecretRef.name
não for especificado).
Para excluir o recurso do Atlas, o Atlas Kubernetes Operator utiliza as informações de conexão para fazer chamadas de API para o Atlas.
Observação
O Atlas Kubernetes Operator remove quaisquer objetos relacionados criados no Kubernetes. Por exemplo, se você
AtlasDatabaseUser
remover o, o Atlas Kubernetes Operator removerá os segredos de conexão relacionados.
Usar anotações para ignorar ou substituir padrões
Você pode utilizar anotações para modificar o comportamento padrão do Atlas Kubernetes Operator.
Se você adicionar a mongodb.com/atlas-resource-policy: "keep"
anotação ao de um recurso metadata
personalizado, o Atlas Kubernetes Operator não excluirá o recurso quando você excluir o recurso do Atlas Kubernetes Operator.
Exemplo
apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project annotations: mongodb.com/atlas-resource-policy: "keep"
Se você adicionar a mongodb.com/atlas-reconciliation-policy: "skip"
anotação ao de um metadata
recurso personalizado, o Atlas Kubernetes Operator não iniciará a reconciliação para o recurso. Essa anotação permite pausar a sincronização com a especificação até remover a anotação. Você pode utilizar esta anotação para fazer alterações manuais em um recurso personalizado e evitar que o Atlas Kubernetes Operator as desfaça durante uma sincronização. Quando você remove esta anotação, o Atlas Kubernetes Operator deve reconciliar o recurso e sincronizá-lo com a especificação.
Se você adicionar a mongodb.com/atlas-resource-version-policy: "allow"
anotação ao de um metadata
recurso personalizado, o Atlas Kubernetes Operator permitirá que você use um recurso mesmo que o rótulo de versão não corresponda à versão do Atlas Kubernetes Operator que você está usando. Se a sua versão de recursos for uma versão principal inferior à versão do Atlas Kubernetes Operator, os recursos mais recentes podem não funcionar. As discrepâncias de versão menor são compatíveis com versões anteriores.