Importante
Los subrecursos heredados quedan obsoletos a partir del lanzamiento de sus CRD correspondientes. Si su configuración actualmente utiliza el formato de subrecurso de esta definición de recurso, migrar a un CRD.
El AtlasNetworkContainer recurso personalizado define un contenedor de red para un proyecto Atlas. Crea Conexiones de emparejamiento VPC entre contenedores de red y las redes donde se alojan tus aplicaciones.
Importante
Recursos personalizados ya no borran objetos por defecto
Atlas Kubernetes Operator uses custom resource archivos de configuración to manage your Atlas configuration, but as of Atlas Kubernetes Operator 2.0, custom resources you borrar in Kubernetes are no longer (por defecto) borrados in Atlas. En su lugar, Atlas Kubernetes Operator simplemente deja de gestionar esos recursos en Atlas. Por ejemplo, si eliminas un
AtlasProjectCustom recurso en Kubernetes, de forma predeterminada, el Atlas Kubernetes Operator ya no elimina automáticamente el Proyecto correspondiente de Atlas. Este cambio de comportamiento está diseñado para ayudar a prevenir eliminaciones accidentales o inesperadas. Para saber más, incluido cómo revertir este comportamiento al por defecto utilizado antes de Atlas Kubernetes Operator 2.0, consulta Nuevo valor por defecto: Protección de Eliminación en Atlas Kubernetes Operator 2.0.De manera similar, Atlas Kubernetes Operator no elimina equipos de Atlas si los elimina de un proyecto Atlas en Kubernetes con Atlas Kubernetes Operator.
Define explícitamente los detalles de configuración que deseas para evitar el uso implícito de los valores de configuración por defecto de Atlas. En algunos casos, heredar los valores por defecto de Atlas puede crear un ciclo de conciliación que impida que el recurso personalizado alcance un estado de
READY. Por ejemplo, definir explícitamente el comportamiento de escalado automático deseado en el recurso personalizadoAtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en el recurso personalizado no se aplique repetidamente a una implementación de Atlas que tiene el escalado automático habilitado.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
El operador de Atlas Kubernetes realiza una de las siguientes acciones utilizando Atlas Recurso API de emparejamiento de red:
Crea un nuevo contenedor de red.
Actualiza un contenedor de red existente.
Ejemplos
Los siguientes ejemplos ilustran las configuraciones para los AtlasNetworkContainer CRDs.
La configuración básica de ejemplo define un recurso que gestionas con la misma instancia del Atlas Kubernetes Operator con la que gestionas su proyecto padre de Atlas.
El ejemplo de CRD independiente configura el mismo contenedor de red que el ejemplo básico, pero para un proyecto Atlas que administra fuera de la instancia de Atlas Kubernetes Operator con la que administra el contenedor de red.
Ejemplo básico
A continuación, se muestra un AtlasNetworkContainer recurso personalizado para un contenedor llamado my-atlas-nc que permite crear una conexión de interconexión de VPC entre Atlas y AWS dentro del my-project proyecto. Para administrar este recurso en la misma instancia de Operador de Kubernetes de Atlas que su proyecto Atlas principal, debe identificar el proyecto con projectRef en lugar externalProjectRef de.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkContainer metadata: name: my-atlas-nc spec: projectRef: name: my-project namespace: my-operator-namespace provider: AWS id: 66e2f2b7e69a89b66b621571 cidrBlock: 10.11.0.0/16 region: US_EAST_1
Ejemplo de CRD independiente
El siguiente ejemplo muestra un AtlasNetworkContainer CRD independiente que habilita el intercambio de VPC con los mismos parámetros habilitados en el Ejemplo Básico. Para habilitar la operación independiente, debe usar un externalProjectRef en lugar de un projectRef y proporcionar un connectionSecret directamente, ya que este recurso no puede heredar las credenciales de API de su proyecto principal.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkContainer metadata: name: my-atlas-nc spec: externalProjectRef: projectId: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret provider: AWS id: 66e2f2b7e69a89b66b621571 cidrBlock: 10.11.0.0/16 region: US_EAST_1
Parámetros
Esta sección describe los parámetros de AtlasNetworkContainer disponibles en esta definición de recurso personalizado.
metadata.nameTipo: string
Requerido
Nombre que utiliza el
AtlasNetworkContainerRecurso Personalizado para añadir este contenedor de red a un proyecto.
metadata.namespaceTipo: string
Opcional
Namespace en el que se desea contener el recurso personalizado
atlasNetworkContainer. Si no se especifica, Atlas Kubernetes Operator utiliza el espacio de nombres actual establecido porkubectl.
spec.connectionSecret.nameTipo: string
Condicional
Nombre del secretoopaco que contiene el Identificador de la Organización y claves API que el Atlas Kubernetes Operator utiliza para conectarse a Atlas. Si no se especifica, Atlas Kubernetes Operator establece por defecto una de las siguientes opciones:
El parámetro
spec.connectionSecretRef.namede la matriz principalatlasProjectEl secreto predeterminado
global, si no ha definido elspec.connectionSecretRef.namepara el padreatlasProject
Este parámetro es necesario para CRD independientes.
El Atlas Kubernetes Operator supervisa los secretos solo con la etiqueta
atlas.mongodb.com/type=credentialspara evitar la supervisión de secretos innecesarios.El siguiente ejemplo etiqueta un secreto:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRef.idTipo: string
Condicional
ID del proyecto al que pertenece el contenedor de red. Debes especificar el ID del grupo de un Proyecto de Atlas existente. Debes especificar este parámetro para los contenedores de red que pertenezcan a proyectos gestionados por:
Una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas del Atlas Kubernetes Operator
Para implementaciones que pertenezcan a proyectos gestionados por la misma instancia del Atlas Kubernetes Operator, utiliza
spec.projectRef.name. Estos parámetros se excluyen mutuamente entre sí.
spec.projectRef.nameTipo: string
Condicional
Nombre del proyecto al que pertenece el contenedor de red. Debes especificar un
AtlasProjectrecurso personalizado existente. Este parámetro se aplica solamente a contenedores de red que pertenezcan a proyectos gestionados por la misma instancia de Atlas Kubernetes Operator.Para contenedores de red que pertenezcan a proyectos gestionados por cualquiera de los siguientes:
una instancia diferente de Atlas Kubernetes Operator
herramientas distintas de Atlas Kubernetes Operator
use
spec.externalProjectRef.id. Estos parámetros se excluyen mutuamente.
spec.projectRef.namespaceTipo: string
Condicional
Espacio de nombres en el que existe el
AtlasProjectRecurso personalizado especificado enspec.projectRef.name.No configure este parámetro para implementaciones que pertenezcan a proyectos administrados por:
una instancia diferente de Atlas Kubernetes Operator
herramientas distintas de Atlas Kubernetes Operator
spec.providerTipo: string
Requerido
Proveedor de nube con el que soportar una conexión de emparejamiento VPC. Debe ser uno de los siguientes:
AWSAzureGCP