Definições de Recurso Personalizadas Independentes
Nesta página
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.
Considerações
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
Migração para CRD independente
Para migrar CRDs existentes do gerenciamento de nível do atlasProject
para gerenciamento independente:
Desativar a reconciliação do projeto e editar referências de subrecursos
Adicione a anotação
mongodb.com/atlas-reconciliation-policy: "skip"
aometadata
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.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
(Condicional) Remover a anotação da política de reconciliação
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
.