Menu Docs
Página inicial do Docs
/ /
Kubernetes Operator do MongoDB Atlas
/

Definições de Recurso Personalizadas Independentes

Nesta página

  • Considerações
  • Migração para CRD independente

Você pode utilizar o Atlas Kubernetes Operator para gerenciar recursos em um projeto do Atlas sem utilizar o Atlas Kubernetes Operator para gerenciar o projeto em si. Neste modelo de definição de recurso personalizado independente ("CRD independente"), você associa recursos como AtlasDeployment Recurso Personalizado e AtlasDatabaseUser Recurso Personalizado a um projeto Atlas diretamente por seu Atlas ID.

CRDs independentes permitem que você use diferentes sistemas programáticos de gerenciamento de infraestrutura para seus projetos, enquanto usa o Atlas Kubernetes Operator para gerenciar recursos alterados com mais frequência, como usuários de banco de dados de dados ou sistemas individuais.

Ao separar o gerenciamento do projeto Atlas do gerenciamento de subrecursos, como usuários e implantações, os CRDs independentes permitem alocar essas responsabilidades a diferentes funcionários ou equipes diferentes dentro da organização , conforme adequado às suas necessidades.

Quando você utiliza o Atlas Kubernetes Operator para gerenciar um projeto, você pode configurar a autenticação da API de Administração do Atlas utilizando o spec.connectionSecretRef.name parâmetro do atlasProject recurso ou deixar este parâmetro sem definição como padrão para as credenciais globais do Atlas . Ao utilizar CRDs independentes, você pode especificar um spec.connectionSecret.name para cada recurso. Este parâmetro, se definido, tem precedência sobre spec.connectionSecretRef.name ou credenciais globais do Atlas .

A definição desse parâmetro é obrigatória para qualquer recurso cujo recurso pai seja referenciado usando um ID do projeto do Atlas e opcional em caso contrário.

Exemplo

Você define um CRD do atlasDeployment que referencia seu projeto pai pelo ID do Atlas em vez de um parâmetro do atlasProject spec.name. Você deve definir um spec.connectSecret.name para o recurso atlasDeployment, como no seguinte:

apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: test-cluster-name
namespace: mongodb-atlas-system
spec:
externalProjectRef:
id: 671998971c8520583f24f411
connectionSecret:
name: my-atlas-key
deploymentSpec:
clusterType: REPLICASET
name: service-name
tags:
- key: "environment"
value: "production"
backupEnabled: true
replicationSpecs:
- zoneName: US-Zone
numShards: 3
regionConfigs:
- regionName: CENTRAL_US
providerName: GCP
backingProviderName: GCP
priority: 7
electableSpecs:
instanceSize: M10
nodeCount: 3

Para migrar CRDs existentes do gerenciamento de nível do atlasProjectpara gerenciamento independente:

1

Desativar a reconciliação do projeto e editar referências de subrecursos

  1. Adicione a anotação mongodb.com/atlas-reconciliation-policy: "skip" ao metadata do recurso pai. Isto impede que o Atlas Kubernetes Operator tente reconciliar o recurso principal e os seus sub-recursos. Considere o seguinte:

    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    annotations:
    mongodb.com/atlas-reconciliation-policy: "skip"
    spec:
    name: Test project
    connectionSecretRef:
    name: my-atlas-key
    projectIpAccessList:
    - cidrBlock: "203.0.113.0/24"
    comment: "CIDR block for Application Server B - D"

    Aviso

    Se você não aplicar esta anotação, o Atlas Kubernetes Operator continuará tentando tentar a reconciliação à medida que você modifica seus outros recursos. Para usuários com Novo Padrão: Proteção Contra Exclusão no Atlas Kubernetes Operator 2.0 desabilitado, isso pode fazer com que o Atlas Kubernetes Operator remova o projeto do Atlas quando você remover o atlasProject recurso ou insira um estado bloqueado tentando remover um projeto com subrecursos ativos como usuários ou sistemas de banco de dados de dados.

  2. Modifique a referência do projeto para ponto para um ID do projeto do Atlas em vez de um atlasProject nome do.

    Por exemplo, para desacoplar um recurso atlasDatabaseUser:

    apiVersion: atlas.mongodb.com/v1
    kind: AtlasDatabaseUser
    metadata:
    name: my-database-user
    spec:
    roles:
    - roleName: readWriteAnyDatabase
    databaseName: admin
    externalProjectRef:
    id: 671998971c8520583f24f411
    username: theuser
    passwordSecretRef:
    name: the-user-password
2
3

Para parar de gerenciar seu projeto com o Atlas Kubernetes Operator, agora você pode remover o CRD do atlasProject. Para continuar gerenciando seu projeto e subrecursos anexados com Atlas Kubernetes Operator, pule para a próxima etapa.

4

Se você quiser continuar gerenciando seu projeto com o Atlas Kubernetes Operator, como em um cenário em que você ainda tem recursos subordinados ao seu atlasProject, reative a reconciliação removendo a anotação da política de reconciliação do CRD do atlasProject.

Voltar

Atlas for Government