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

Migrar parâmetros para definições de recursos personalizados

Nesta página

  • Configurações afetadas
  • Procedimento de migração

Começando com o Atlas Kubernetes Operator versão 2.6, várias configurações de recursos que anteriormente assumiam a forma de parâmetros fizeram a transição para CRDs próprios. O suporte para a configuração do recurso pai baseado em parâmetros está obsoleto. As configurações existentes de recursos pai baseados em parâmetros continuarão funcionando, mas o suporte para essas configurações será removido em uma versão futura.

Para continuar gerenciando estes recursos pelo Atlas Kubernetes Operator no futuro, migre para o CRD apropriado.

As seguintes configurações são afetadas:

Parâmetro
CRD

spec.customRoles

Para migrar do gerenciamento de recursos em nível de parâmetros para o gerenciamento CRD:

1

Desative a reconciliação do projeto e edite as referências do subrecurso.

  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.

  2. Para evitar conflitos com o novo CRD criado, você deve excluir os parâmetros correspondentes ao recurso que deseja migrar do recurso pai.

Considere o seguinte exemplo de um atlasProject com uma configuração customRoles:

apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test project
connectionSecretRef:
name: my-atlas-key
customRoles:
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
projectIpAccessList:
- cidrBlock: "203.0.113.0/24"
comment: "CIDR block for Application Server B - D"

Certifique-se de ter adicionado o bloco annotations nas linhas 5 e 6 e removido o bloco customRoles mostrado no exemplo anterior.

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

Para evitar conflitos com o novo CRD criado, você deve primeiro excluir os parâmetros correspondentes ao recurso que deseja migrar do recurso pai. Por exemplo, remova o parâmetro customRoles do CRD atlasProject mostrado anteriormente:

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"
3

Crie um CRD do apropriado kind para o parâmetro que você deseja migrar, de acordo com sua sintaxe. Por exemplo, para migrar o customRoles parâmetro do atlasProject CRD mostrado anteriormente, crie um AtlasCustomRole Recurso Personalizado.

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
4
5

Além disso, agora você pode configurar este recurso como um CRD independente.

Voltar

Definições de Recurso Personalizadas Independentes