Importante
Los subrecursos heredados se deprecian desde la publicación de sus CRD correspondientes. Si tu configuración actualmente depende de la forma de subrecurso de esta definición de recurso, migra a un CRD.
El recurso personalizado AtlasPrivateEndpoint configura un endpoint privado para un Proyecto de Atlas. Esto te permite conectar tu proveedor de nube a Atlas sin enviar información a través de una red pública. Los nodos privados son conexiones unidireccionales hacia Atlas desde su red virtual.
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.Del mismo modo, Atlas Kubernetes Operator no elimina los equipos de Atlas si los eliminas de un proyecto Atlas en Kubernetes utilizando 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
Atlas Kubernetes Operator realiza una de las siguientes acciónes utilizando el Resource API del servicio privado de Atlas Private Endpoint Service API Resource:
Crea un nuevo servicio de nodo privado.
Actualiza un servicio de punto final privado existente.
Para aprender más sobre la implementación de nodos privados en Atlas Kubernetes Operator, consulte Administrar nodos privados.
Ejemplos
Ejemplo básico
El siguiente ejemplo muestra un recurso personalizado AtlasPrivateEndpoint que define un nodo privado de AWS dentro del Proyecto my-project.
apiVersion: atlas.mongodb.com/v1 kind: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: projectRef: name: my-project namespace: my-operator-namespace provider: AWS region: us-east-1 awsConfiguration: - id: vpcpe-xyz
Ejemplo independiente de CRD
El siguiente ejemplo muestra un AtlasPrivateEndpoint CRD independiente que define los mismos nodos privados definidos en el ejemplo básico. Esta definición de recurso personalizado le permite crear este nodo privado en un Proyecto que no gestiona en la misma instancia de Atlas Kubernetes Operator con la que define este recurso. Para habilitar la operación independiente, debe usar un externalProjectRef en lugar de un projectRef, y debe 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: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: externalProjectRef: projectID: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret provider: AWS region: us-east-1 awsConfiguration: - id: vpcpe-xyz
Parámetros
Esta sección describe los parámetros de recursos personalizados AtlasPrivateEndpoint disponibles.
metadata.nameTipo: string
Requerido
Nombre que el
AtlasPrivateEndpointRecurso personalizado utiliza para agregar este nodo privado a un Proyecto.
metadata.namespaceTipo: string
Opcional
Namespace en el que se desea contener el recurso personalizado
AtlasPrivateEndpoint. Si no se especifica, Atlas Kubernetes Operator utiliza el espacio de nombres actual establecido porkubectl.Si defines un namespace personalizado, debes agregarlo al
AtlasProjectRecurso personalizado en el campospec.privateEndpoint.privateEndpointRef.namespace.
spec.awsConfiguration.idTipo: string
Condicional
ID de la interfaz de red del extremo privado. Este parámetro es obligatorio para y está limitado a AWS nodos privados.
spec.azureConfiguration.idTipo: string
Condicional
ID de la interfaz de red del endpoint privado. Este parámetro es obligatorio y limitado a los Azure nodos privados.
spec.azureConfiguration.ipAddressTipo: string
Condicional
Dirección IP del nodo privado en tu VNet de Azure. Este parámetro es obligatorio y está limitado a los nodos privados de Azure.
spec.connectionSecret.nameTipo: string
Condicional
Nombre del secreto opaco que contiene el Identificador de la Organización y claves de API que Atlas Kubernetes Operator utiliza para conectarse a Atlas. Si no se especifica, el Atlas Kubernetes Operator volverá a lo siguiente:
El parámetro
spec.connectionSecretRef.namede la matriz principalatlasProjectEl secreto
globalpor defecto, sispec.connectionSecretRef.nameno está definido para elatlasProjectprincipal
Este parámetro es obligatorio 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 nodo privado. Debes especificar el ID del grupo de un Proyecto de Atlas existente. Este parámetro es obligatorio para los nodos privados que pertenecen a Proyectos gestionados por:
Una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas del Atlas Kubernetes Operator
Para implementaciones que pertenecen a proyectos gestionados por la misma instancia de Atlas Kubernetes Operator, use
spec.projectRef.namesi no se utilizaspec.externalProjectRef.id.Un endpoint privado solo puede pertenecer a un proyecto. Para definir el mismo punto final privado para varios proyectos, haz custom definiciones de recurso para cada proyecto.
spec.gcpConfiguration.endpointsTipo: arreglo
Condicional
Lista de nodos privados individuales que conforman este grupo de nodos privados. Este parámetro es obligatorio y está limitado a los nodos privados de Google Cloud.
spec.gcpConfiguration.endpoints.[n].ipAddressTipo: string
Condicional
Dirección IP a la que resuelve el nodo privado de Google Cloud proporcionado. Este parámetro es obligatorio y está limitado a los nodos privados de Google Cloud.
spec.gcpConfiguration.endpoints.[n].nameTipo: string
Condicional
Nombre que identifica de manera única el endpoint privado de Google Cloud indicado. Este parámetro es obligatorio y está limitado a los nodos privados de Google Cloud.
spec.gcpConfiguration.groupNameTipo: string
Condicional
Nombre que identifica de forma única un conjunto de nodos privados de Google Cloud. Este parámetro es obligatorio y está limitado a los nodos privados de Google Cloud.
spec.gcpConfiguration.projectIdTipo: string
Condicional
Identificador único para el proyecto de Google Cloud al que pertenecen sus nodos privados.
spec.projectRef.nameTipo: string
Condicional
Nombre del proyecto al que pertenece el punto de conexión privado. Debes especificar un
AtlasProjectrecurso personalizado existente. Este parámetro se aplica únicamente a los nodos privados que pertenecen a proyectos gestionados por la misma instancia de Atlas Kubernetes Operator.Para nodos privados que pertenezcan a proyectos gestionados por cualquiera de:
una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas del Atlas Kubernetes Operator
usar
spec.externalProjectRef.id.Un endpoint privado solo puede pertenecer a un proyecto. Para definir el mismo punto final privado para varios proyectos, haz custom definiciones de recurso para cada proyecto.
spec.projectRef.namespaceTipo: string
Condicional
Espacio de nombres en el que existe el
AtlasProjectRecurso personalizado especificado enspec.projectRef.name.Para implementaciones que pertenecen a proyectos gestionados por cualquiera de las siguientes opciones:
una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas del Atlas Kubernetes Operator
no configure este parámetro.