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:
Parameter | CRD |
|---|---|
| |
|
Consideraciones específicas de los recursos
Antes de migrar parámetros a recursos, considere los detalles de implementación específicos de esos parámetros.
Emparejamiento de red
Las siguientes consideraciones se aplican a los recursos atlasNetworkPeering:
Un CRD
atlasNetworkPeeringpuede hacer referencia a suatlasNetworkContainercorrespondiente mediante una referencia de nombre o ID de Kubernetes.Un CRD
atlasNetworkPeeringpuede hacer referencia alatlasProjectque lo aloja mediante una referencia de nombre o ID de Kubernetes.El parámetro spec.networkPeers de un
atlasProjectCRD contiene detalles tanto de la conexión de peering como del contenedor que la soporta. Al migrar de este parámetro a unatlasNetworkPeeringCRD, es posible que deba crear unatlasNetworkContainerCRD para el contenedor que lo soporta. Para obtener más información, consulte Contenedor de red.
Contenedor de red
Las siguientes consideraciones se aplican a los recursos atlasNetworkContainer:
No es necesario crear un nuevo recurso
atlasNetworkContainercuando migra la conexiónatlasNetworkPeeringde un parámetro a un recurso si:Administra el contenedor de red que admite una conexión
atlasNetworkPeeringfuera del operador Atlas KubernetesatlasProjecten el que administra la conexiónatlasNetworkPeeringYa existe un recurso
atlasNetworkContainerpara el contenedor de la conexiónatlasNetworkPeering.
Un
atlasNetworkContainerCRD puede referirse a su hostatlasProjectpor referencia de nombre en Kubernetes o por ID.
Integraciones de terceros
Las siguientes consideraciones se aplican a los recursos AtlasThirdPartyIntegration:
Cada integración de terceros requiere su propio recurso
AtlasThirdPartyIntegration. No se pueden definir varias integraciones en el mismo recurso.Cada proyecto solo puede tener una instancia de un tipo particular de integración de terceros, ya sea configurada por una entrada
spec.integrationsde ese tipo en su recursoAtlasProjecto por un recursoAtlasThirdPartyIntegrationcon unspec.typede ese valor.Por ejemplo, si tiene un CRD
AtlasThirdPartyIntegrationdespec.typeDATADOG, no puede declarar unspec.integrations.typedeDATADOGen su recursoAtlasProject.
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.