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 AtlasNetworkPeering recurso personalizado define una conexión peering de red para un Proyecto de Atlas. Las conexiones peering de red aÃslan el tráfico de las redes públicas para mayor seguridad.
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 acciones usando el recurso API de Peering de Red Atlas API de recurso de emparejamiento de red:
Crea una nueva conexión peering de red.
Actualiza una conexión peering de red existente.
Nota
Una conexión peering de red solo puede pertenecer a un Proyecto. Para definir la misma conexión peering de red para varios Proyectos, crea definiciones de recursos personalizadas para cada Proyecto.
Ejemplos
Los siguientes ejemplos ilustran las configuraciones para los AtlasNetworkPeering 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 CRD independiente configura la misma conexión de emparejamiento de VPC que el ejemplo básico, pero para un Proyecto de Atlas que gestionas fuera de la instancia del Atlas Kubernetes Operator con la que gestionas la conexión de emparejamiento de VPC.
Ejemplo básico
El siguiente ejemplo muestra un recurso personalizado AtlasNetworkPeering que define la conexión green-leaf-peering entre el Proyecto my-project VPC y su Amazon Web Services VPC. Para gestionar este recurso en la misma instancia de Atlas Kubernetes Operator que su Proyecto Atlas principal, debe identificar el proyecto con projectRef en lugar de externalProjectRef.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkPeering metadata: name: green-leaf-peering spec: projectRef: name: my-project namespace: my-operator-namespace containerRef: id: 72a6d2a69388ba121943ae27 id: 72a6d2a69388ba121943ae27 provider: AWS awsConfiguration: accepterRegionName: us-east-1 awsAccountId: 389226183042 routeTableCiderBlock: 10.0.0.0/21 vpcId: vpc-abc
Ejemplo independiente de CRD
El siguiente ejemplo muestra un AtlasNetworkPeering CRD independiente que configura la misma conexión de emparejamiento de VPC definida por el ejemplo básico. Para habilitar la gestión de recursos independientemente del proyecto padre, se debe utilizar un externalProjectRef en lugar de un projectRef, y se debe proporcionar un connectionSecret directamente, ya que este recurso no puede heredar las credenciales de API de su proyecto padre.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkPeering metadata: name: green-leaf-peering spec: externalProjectRef: projectId: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret containerRef: id: 72a6d2a69388ba121943ae27 id: 72a6d2a69388ba121943ae27 provider: AWS awsConfiguration: accepterRegionName: us-east-1 awsAccountId: 389226183042 routeTableCiderBlock: 10.0.0.0/21 vpcId: vpc-abc
Parámetros
Esta sección describe los parámetros de AtlasNetworkPeering disponibles en esta definición de recurso personalizado.
metadata.nameTipo: string
Requerido
Nombre que el
AtlasNetworkPeeringRecurso personalizado utiliza para añadir esta conexión peering de red a un proyecto.
metadata.namespaceTipo: string
Opcional
Namespace en el que se desea contener el recurso personalizado
atlasNetworkPeering. Si no se especifica, Atlas Kubernetes Operator utiliza el espacio de nombres actual establecido porkubectl.
spec.connectionSecret.nameTipo: string
Condicional
Nombre del secreto opaco que contiene el Identificador de la Organización y las claves API que el Atlas Kubernetes Operator utiliza para conectarse a Atlas. Si no se especifica, Atlas Kubernetes Operator elige por defecto una de las siguientes opciones:
El parámetro
spec.connectionSecretRef.namede la matriz principalatlasProjectEl secreto
globalpor defecto, si no se ha definido elspec.connectionSecretRef.namepara el padreatlasProject
Este parámetro es obligatorio para CRDs 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.containerRef.idTipo: string
Condicional
Si este recurso representa una nueva conexión peering de red, omita este parámetro.
ID del contenedor de emparejamiento de red existente. Indica este campo solo si deseas que este recurso gestione una conexión peering de red existente dentro del Atlas Kubernetes Operator. Si prefieres que este recurso empiece a gestionar un recurso local de Kubernetes, utiliza el parámetro
spec.containerRef.name.
spec.containerRef.nameTipo: string
Condicional
Nombre de un contenedor de red de emparejamiento existente que administras con un recurso local de Kubernetes en tu espacio de nombres del Proyecto. Proporciona este campo solo si deseas que este recurso gestione un recurso local de Kubernetes. Si prefieres que este recurso comience a gestionar una conexión peering de red que ya esté gestionada por Atlas Kubernetes Operator, utiliza el parámetro
spec.containerRef.id. Si este recurso representa una nueva conexión peering de red, omita este campo.
spec.externalProjectRef.idTipo: string
Condicional
ID del Proyecto al que pertenece la conexión peering de red. Debes especificar el ID del grupo de un Proyecto de Atlas existente. Debes especificar este parámetro para conexiones de emparejamiento de red que pertenecen 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Ã.Una conexión peering de red solo puede pertenecer a un Proyecto. Para definir la misma conexión peering de red para varios Proyectos, cree definiciones de recursos personalizadas para cada Proyecto.
spec.projectRef.nameTipo: string
Condicional
Nombre del Proyecto al que pertenece la conexión peering de red. Debe especificar un
AtlasProjectRecurso personalizado existente. Este parámetro se aplica solo a las conexiones de red de emparejamiento que pertenecen a proyectos gestionados por el mismo operador de instancia Atlas Kubernetes.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
use
spec.externalProjectRef.id. Estos parámetros se excluyen mutuamente.Una conexión peering de red solo puede pertenecer a un Proyecto. Para definir la misma conexión peering de red para varios Proyectos, crea definiciones de recursos personalizadas para cada Proyecto.
spec.projectRef.namespaceTipo: string
Condicional
Espacio de nombres en el que existe el
AtlasProjectRecurso personalizado especificado enspec.projectRef.name.No establezcas este parámetro para los despliegues que pertenezcan a proyectos gestionados por:
una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas del Atlas Kubernetes Operator
spec.idTipo: string
Condicional
Identificador único de la conexión peering de red existente en Atlas. Este parámetro es obligatorio y se limita a escenarios en los que Atlas Kubernetes Operator asume la gestión de una conexión peering de red preexistente.
spec.providerTipo: string
Requerido
Proveedor de nube con el que establecer una conexión de emparejamiento VPC. Debe ser uno de los siguientes:
AWSAzureGCP
spec.awsConfiguration.accepterRegionNameTipo: string
Condicional
Región de AWS en la que se debe establecer una conexión de emparejamiento VPC. Requerido y limitado a conexiones AWS.
spec.awsConfiguration.awsAccountIdTipo: string
Condicional
Identificador único de la cuenta de AWS a la que pertenece la conexión. Requerido y limitado a conexiones de AWS.
spec.awsConfiguration.routeTableCidrBlockTipo: string
Condicional
Bloque CIDR de tu AWS VPC. Requerido y limitado a conexiones AWS.
spec.awsConfiguration.vpcIdTipo: string
Condicional
Identificador único de tu AWS VPC. Requerido para y limitado a conexiones AWS.
spec.azureConfiguration.azureDirectoryIdTipo: string
Condicional
Identificador único de tu directorio de Azure. Requerido y limitado para las conexiones de Azure.
spec.azureConfiguration.azureSubscriptionIdTipo: string
Condicional
Identificador único de tu suscripción de Azure. Requerido para y limitado a conexiones Azure.
spec.azureConfiguration.resourceGroupNameTipo: string
Condicional
Nombre del Grupo de Recursos de Azure al que pertenece la conexión. Requerido para y limitado a conexiones Azure.
spec.azureConfiguration.vNetNameTipo: string
Condicional
Nombre de su Azure Red virtual. Obligatorio y limitado a las conexiones de Azure.