Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Definiciones de recursos personalizados independientes

Se puede utilizar el Atlas Kubernetes Operator para gestionar un recurso en un Proyecto de Atlas sin utilizarlo para gestionar el propio Proyecto. En este modelo independiente de definición de recursos personalizados ("CRD independiente"), se asocian recursos tales como AtlasDeployment Recurso personalizado y AtlasDatabaseUser Recurso personalizado con un proyecto de Atlas directamente por su Atlas ID.

Los CRD independientes le permiten utilizar diferentes sistemas de administración de infraestructura programática para sus proyectos, mientras utiliza Atlas Kubernetes Operator para administrar recursos que se modifican con mayor frecuencia, como usuarios de bases de datos o implementaciones individuales.

Al separar la gestión del proyecto Atlas de la gestión de subrecursos como usuarios y implementaciones, los CRD independientes permiten asignar estas responsabilidades a diferentes personas o equipos dentro de su organización según sus necesidades.

Cuando uses Atlas Kubernetes Operator para gestionar un proyecto, puedes configurar la autenticación de la API de administración de Atlas utilizando el parámetro spec.connectionSecretRef.name del recurso atlasProject, o dejar este parámetro sin configurar para usar las credenciales globales por defecto de Atlas. Cuando se utilizan CRD independientes, se puede especificar un spec.connectionSecret.name para cada recurso. Este parámetro, si se establece, tiene prioridad sobre spec.connectionSecretRef.name o las credenciales globales de Atlas.

Es obligatorio establecer este parámetro para cualquier recurso cuyo recurso principal se haga referencia usando un Atlas ID del grupo, y es opcional en los demás casos.

Ejemplo

Defines un atlasDeployment CRD que hace referencia a su proyecto principal por Atlas ID en vez de un parámetro atlasProject spec.name. Debes definir un spec.connectSecret.name para el recurso atlasDeployment, como en lo siguiente:

apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: test-cluster-name
namespace: mongodb-atlas-system
spec:
externalProjectRef:
id: 671998971c8520583f24f411
connectionSecret:
name: my-atlas-key
deploymentSpec:
clusterType: REPLICASET
name: service-name
tags:
- key: "environment"
value: "production"
backupEnabled: true
replicationSpecs:
- zoneName: US-Zone
numShards: 3
regionConfigs:
- regionName: CENTRAL_US
providerName: GCP
backingProviderName: GCP
priority: 7
electableSpecs:
instanceSize: M10
nodeCount: 3

Para migrar los CRD existentes desde la gestión a nivel atlasProjecthacia una gestión independiente:

1

Desactiva la conciliación de proyectos y edita las referencias de subrecursos

  1. Agrega el elemento de anotación mongodb.com/atlas-reconciliation-policy: "skip" al metadata del recurso principal. Esto previene que Atlas Kubernetes Operator intente reconciliar el recurso principal y sus subrecursos. Considera lo siguiente:

    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.

  2. Modifique la referencia del proyecto para que apunte a un ID de proyecto Atlas en lugar de un atlasProject nombre.

    Por ejemplo, para desacoplar un recurso atlasDatabaseUser:

    apiVersion: atlas.mongodb.com/v1
    kind: AtlasDatabaseUser
    metadata:
    name: my-database-user
    spec:
    roles:
    - roleName: readWriteAnyDatabase
    databaseName: admin
    externalProjectRef:
    id: 671998971c8520583f24f411
    username: theuser
    passwordSecretRef:
    name: the-user-password
2
3

Para dejar de administrar su proyecto con Atlas Kubernetes Operator, puede eliminar el CRD atlasProject. Para continuar administrando su proyecto y los subrecursos asociados con Atlas Kubernetes Operator, vaya al siguiente paso.

4

Si quieres seguir gestionando tu proyecto con Atlas Kubernetes Operator, como en un escenario donde todavía tienes recursos subordinados a tu atlasProject, reactiva la reconciliación removiendo la anotación de la política de reconciliación del CRD atlasProject.

Volver

Atlas para el Gobierno

En esta página