Atlas Kubernetes Operator admite los siguientes recursos personalizados:
Resource | Descripción |
|---|---|
Configuración de una política de backup para realizar copias de seguridad de su clúster Atlas. | |
Configuración de un cronograma de copia de seguridad para hacer copia de seguridad de tu clúster Atlas. | |
Configuración de un cluster dentro de algún proyecto en Atlas. | |
Configuración de un usuario de base de datos dentro de algún proyecto en Atlas. | |
Configuración de un proyecto en Atlas. | |
Configuración de un equipo de proyecto en Atlas. | |
Configuración de una instancia de base de datos federada y sus puntos finales privados en Atlas. | |
Configuración de autenticación federada en Atlas. |
Importante
Las definiciones de recursos personalizados tienen prioridad
Atlas Kubernetes Operator utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Cada definición de recurso personalizado anula la configuración especificada de otras maneras, como en la interfaz de usuario de Atlas. Si elimina un recurso personalizado, Atlas Kubernetes Operator elimina el objeto de Atlas a menos que utilice anotaciones para omitir la eliminación. Para obtener más información, consulte los procesos de creación y actualización y de eliminación.
Flujo de trabajo del operador de Kubernetes de Atlas
Cuando utilizas Atlas Kubernetes Operator, puedes crear un nuevo proyecto de Atlas o trabajar con un proyecto de Atlas existente.
Necesita la siguiente clave API pública, clave API privada y la información de ID de la organización para configurar el acceso del operador de Kubernetes de Atlas a Atlas.
Si desea que el operador de Kubernetes de Atlascree un nuevo proyecto de Atlas, otorgue acceso programático a unaorganización. Si su organización requiere una lista de acceso de IP para la API de administración de Atlas, también debe configurarla.
Importante
Debes asignar la clave API a la Organization Project Creator rol organizacional o superior.
Si desea trabajar con un proyecto de Atlas existente, agregue el acceso al proyecto desdeun proyecto. Si su organización requiere una lista de acceso IP para la API de administración de Atlas, también debe configurarla.
Importante
Debe asignar al clave API el rol de proyecto Project Owner.
Para obtener más información, consulte Configurar el acceso a Atlas.
Proceso de creación y actualización
Cada vez que cambia el campo spec en cualquiera de los recursos personalizados admitidos, se inicia el siguiente flujo de trabajo en Atlas Kubernetes Operator:
El operador de Atlas Kubernetes recibe un evento sobre el recurso personalizado modificado.
Atlas Kubernetes Operator actualiza el campo
status.conditionspara reflejar que el recurso no está listo:conditions: - lastTransitionTime: "2021-03-13T16:26:17Z" status: "False" type: Ready Para conectarse a la API de administración de Atlas, Atlas Kubernetes Operator lee el ID de la organización y ClavesAPI de una de las siguientes ubicaciones:
spec.connectionSecretRef.name(si se especifica en elAtlasProjectrecurso personalizado).De forma predeterminada, Atlas Kubernetes Operator mantiene los secretos de conexión en el mismo espacio de nombrescomo el
AtlasProjectrecurso personalizado. Para almacenar secretos en otro espacio de nombres, especifique elspec.connectionSecretRef.namespaceparámetro.globalSecreto del operador de Atlas Kubernetes<operator-deployment-name>-api-key(si no sespec.connectionSecretRef.nameespecifica).
Para crear o actualizar recursos en Atlas, Atlas Kubernetes Operator utiliza la información de conexión para realizar llamadas API a Atlas.
Nota
En ocasiones, Atlas Kubernetes Operator realiza varias llamadas a la API en Atlas durante la conciliación de un recurso personalizado. Por ejemplo,
AtlasProjecttiene una configuración de lista de acceso IP para llamar a la API correspondiente.Si ocurre algún error durante la conciliación,
status.conditionsse actualiza para reflejar el error.Ejemplo
- lastTransitionTime: "2021-03-15T14:26:44Z" message: 'POST https://cloud.mongodb.com/api/atlas/v1.0/groups/604a47de73cd8cag77239021/accessList: 400 (request "INVALID_IP_ADDRESS_OR_CIDR_NOTATION") The address 192.0.2.1dfdfd5 must be in valid IP address or CIDR notation.' reason: ProjectIPAccessListNotCreatedInAtlas status: "False" type: IPAccessListReady Si la actualización se realiza correctamente,
status.conditionsrefleja que el recurso está listo:conditions: - lastTransitionTime: "2021-03-13T16:26:17Z" status: "True" type: Ready
Eliminar proceso
Si elimina un recurso personalizado de Kubernetes, Atlas Kubernetes Operator intenta limpiar el estado en Atlas y comienza el siguiente flujo de trabajo:
El operador de Atlas Kubernetes recibe un evento sobre el recurso personalizado eliminado.
Para conectarse a la API de administración de Atlas, Atlas Kubernetes Operator lee el ID de la organización y las claves de API de una de las siguientes ubicaciones:
spec.connectionSecretRef.name(si se especifica en elAtlasProjectrecurso personalizado).De forma predeterminada, Atlas Kubernetes Operator guarda los secretos de conexión en el mismo espacio de nombres que el
AtlasProjectrecurso personalizado. Para almacenar los secretos en otro espacio de nombres, especifique elspec.connectionSecretRef.namespaceparámetro.globalSecreto del operador de Atlas Kubernetes<operator-deployment-name>-api-key(si no sespec.connectionSecretRef.nameespecifica).
Para eliminar el recurso de Atlas, Atlas Kubernetes Operator utiliza la información de conexión para realizar llamadas API a Atlas.
Nota
El operador de Kubernetes de Atlas elimina cualquier objeto relacionado creado en Kubernetes. Por ejemplo, si
AtlasDatabaseUserelimina, el operador de Kubernetes de Atlas elimina los secretos de conexión relacionados.
Utilice anotaciones para omitir o anular los valores predeterminados
Puede utilizar anotaciones para modificar el comportamiento por defecto de Atlas Kubernetes Operator.
Si agrega la anotación mongodb.com/atlas-resource-policy: "keep" al metadata de un recurso personalizado, Atlas Kubernetes Operator no eliminará el recurso cuando usted elimine el recurso Atlas Kubernetes Operator.
Ejemplo
apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project annotations: mongodb.com/atlas-resource-policy: "keep"
Si agrega la anotación mongodb.com/atlas-reconciliation-policy: "skip" al metadata de un recurso personalizado, Atlas Kubernetes Operator no inicia la conciliación del recurso. Esta anotación le permite pausar la sincronización con la especificación hasta que la elimine. Puede usarla para realizar cambios manuales en un recurso personalizado y evitar que Atlas Kubernetes Operator los deshaga durante la sincronización. Al eliminar esta anotación, Atlas Kubernetes Operator debería conciliar el recurso y sincronizarlo con la especificación.
Si agrega la anotación mongodb.com/atlas-resource-version-policy: "allow" al metadata de un recurso personalizado, Atlas Kubernetes Operator le permite usar un recurso incluso si su etiqueta de versión no coincide con la versión de Atlas Kubernetes Operator que está utilizando. Si la versión de su recurso es una versión principal anterior a la de Atlas Kubernetes Operator, es posible que las funciones más recientes no funcionen. Las discrepancias menores en las versiones son compatibles con versiones anteriores.