A partir de la versión 2.6 del Atlas Kubernetes Operator, varias configuraciones de recursos que antes se presentaban como parámetros han pasado a ser CRDs propias. El soporte para la configuración del recurso principal basada en parámetros está obsoleto. Las configuraciones existentes de recursos principales basadas en parámetros seguirán funcionando, pero el soporte para estas configuraciones se eliminará en una versión futura.
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, considera cualquier detalle de implementación específico de esos parámetros.
Emparejamiento de red
Las siguientes consideraciones se aplican a los recursos atlasNetworkPeering:
Un CRD
atlasNetworkPeeringpuede referirse a su correspondienteatlasNetworkContainermediante una referencia de nombre de Kubernetes o un ID.Un CRD
atlasNetworkPeeringpuede hacer referencia alatlasProjectque lo aloja mediante un nombre o ID de Kubernetes.El parámetro
spec.networkPeersde unatlasProjectCRD contiene detalles tanto de la conexión de emparejamiento en sí como del contenedor que la soporta. Cuando se migra de este parámetro a unatlasNetworkPeeringCRD, es posible que tenga que crear unatlasNetworkContainerCRD para el contenedor que lo admite. Para aprender más, consulte Contenedor de red.
Contenedor de red
Las siguientes consideraciones se aplican a los recursos atlasNetworkContainer:
No necesitas crear un nuevo recurso
atlasNetworkContainercuando migres la conexiónatlasNetworkPeeringde un parámetro a un recurso si ocurre alguna de estas situaciones:Administras el contenedor de red que admite una conexión
atlasNetworkPeeringfuera del Atlas Kubernetes OperatoratlasProjecten la que administras la conexiónatlasNetworkPeering.Ya 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 múltiples integraciones en el mismo recurso.Cada proyecto puede tener solo una instancia de un tipo particular de integración de terceros, ya sea configurada por una entrada de
spec.integrationsde ese tipo en tu recursoAtlasProject, o por un recursoAtlasThirdPartyIntegrationcon unspec.typede ese valor.Por ejemplo, si tienes un CRD de
AtlasThirdPartyIntegrationconspec.typeDATADOG, no puedes declarar unspec.integrations.typedeDATADOGen tu recursoAtlasProject.
Procedimiento de migración
Para migrar de la gestión de recursos a nivel de parámetro a la gestión de CRD:
Deshabilitar la conciliación de proyectos y editar las referencias de subrecursos.
Agrega la anotación
mongodb.com/atlas-reconciliation-policy: "skip"a lametadatadel recurso principal. Esto impide que el Operador Kubernetes de Atlas intente conciliar el recurso principal y sus subrecursos.Para evitar conflictos con el nuevo CRD que cree, debe borrar los parámetros correspondientes al recurso que desea migrar del recurso principal.
Considera 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úrate de que has agregado el bloque annotations en las líneas 5 y 6 y removiste el bloque customRoles mostrado 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 aplicas esta anotación, el Atlas Kubernetes Operator continuará intentando la reconciliación a medida que modifiques tus otros recursos. Para los usuarios con New Default: Deletion Protection in Atlas Kubernetes Operator 2.0 deshabilitado, esto puede resultar en que el Atlas Kubernetes Operator remueva el proyecto Atlas cuando usted remueve el recurso atlasProject, o entrar en un estado bloqueado al intentar remover un proyecto con subrecursos activos como usuarios de base de datos o implementaciones.
Borre los parámetros del CRD principal.
Para evitar conflictos con el nuevo CRD que crees, primero debes borrar los parámetros correspondientes al recurso que deseas migrar del recurso principal. Por ejemplo, remover 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 la nueva CRD.
Crea un CRD del kind adecuado para el parámetro que deseas migrar, de acuerdo con su sintaxis. Por ejemplo, para migrar el parámetro customRoles del CRD atlasProject mostrado previamente, crea 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.