A partir de la versión 2.6 de Atlas Kubernetes Operator, varias configuraciones de recursos que antes se configuraban como parámetros se han convertido en sus propias CRD. La compatibilidad con la configuración de recursos principales basada en parámetros ha quedado obsoleta. Las configuraciones de recursos principales basadas en parámetros existentes seguirán funcionando, pero se eliminará la compatibilidad con estas configuraciones en una próxima versión.
Para continuar administrando estos recursos a través de Atlas Kubernetes Operator en el futuro, migre al CRD apropiado.
Configuraciones afectadas
Las siguientes configuraciones se ven afectadas:
Procedimiento de migración
Para migrar de la gestión de recursos a nivel de parámetros a la gestión de CRD:
Deshabilitar la conciliación de proyectos y editar referencias de subrecursos.
Agregue la anotación
mongodb.com/atlas-reconciliation-policy: "skip"almetadatadel recurso principal. Esto evita que Atlas Kubernetes Operator intente conciliar el recurso principal y sus subrecursos.Para evitar conflictos con el nuevo CRD que cree, debe eliminar los parámetros correspondientes al recurso que desea migrar desde el recurso principal.
Considere el siguiente ejemplo de un atlasProject con una configuración 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"
Asegúrese de haber agregado el bloque annotations en las líneas 5 y 6 y eliminar el bloque customRoles que se muestra en el ejemplo 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"
Advertencia
Si no aplica esta anotación, Atlas Kubernetes Operator seguirá intentando la conciliación mientras modifica sus otros recursos. Para los usuarios con la opción "Nuevo valor predeterminado: Protección contra eliminación en Atlas Kubernetes Operator "2.0 deshabilitada, esto puede provocar que Atlas Kubernetes Operator elimine el proyecto Atlas al eliminar el atlasProject recurso, o que entre en estado de bloqueo al intentar eliminar un proyecto con subrecursos activos, como usuarios de bases de datos o implementaciones.
Eliminar los parámetros del CRD principal.
Para evitar conflictos con el nuevo CRD que cree, primero debe eliminar los parámetros correspondientes al recurso que desea migrar del recurso principal. Por ejemplo, elimine el parámetro customRoles del 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"
Crear el nuevo CRD.
Cree un CRD del apropiado kind para el parámetro que desea migrar, según su sintaxis. Por ejemplo, para migrar el customRoles parámetro del atlasProject CRD mostrado anteriormente, cree un 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
Además, ahora puedes configurar este recurso como un CRD independiente.