Docs Menu
Docs Home
/ /
/ / /

AtlasCustomRole Recurso personalizado

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 recurso personalizado AtlasCustomRole define un Rol de base de datos personalizado para asignar privilegios a los usuarios de su base de datos.

Para crear este rol personalizado dentro de un proyecto determinado, debes:

  • Haga referencia al nombre del AtlasProject recurso personalizado en el AtlasCustomRole recurso personalizado para los proyectos que administra con Atlas Kubernetes Operator

  • Haga referencia al ID del proyecto de su proyecto Atlas en el AtlasCustomRole recurso personalizado, para los proyectos que no administra con Atlas Kubernetes Operator

Importante

Los recursos personalizados ya no eliminan objetos de forma predeterminada

  • El Operador de Kubernetes de Atlas utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Sin embargo, a partir del Operador de Kubernetes 2.0 de Atlas, los recursos personalizados que elimine en Kubernetes ya no se eliminan (de forma predeterminada) en Atlas. En su lugar, el Operador de Kubernetes de Atlas simplemente deja de administrar esos recursos en Atlas. Por ejemplo, si elimina un AtlasProject Recurso Personalizado en Kubernetes, el Operador de Kubernetes de Atlas ya no elimina automáticamente el proyecto correspondiente de Atlas. Este cambio de comportamiento tiene como objetivo evitar eliminaciones accidentales o inesperadas. Para obtener más información, incluido cómo revertir este comportamiento al valor predeterminado utilizado antes del Operador de Kubernetes 2 0de Atlas., consulte Nuevo valor predeterminado: Protección contra eliminaciones en el Operador de Kubernetes 2 de0 Atlas..

    De manera similar, Atlas Kubernetes Operator no elimina equipos de Atlas si los elimina de un proyecto Atlas en Kubernetes con Atlas Kubernetes Operator.

  • Defina explícitamente los detalles de configuración deseados para evitar el uso implícito de los valores predeterminados de Atlas. En algunos casos, heredar los valores predeterminados de Atlas puede generar un bucle de conciliación que impide que su recurso personalizado alcance el estado READY. Por ejemplo, definir explícitamente el comportamiento de escalado automático deseado en su recurso personalizado AtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en su recurso personalizado no se aplique repetidamente a una implementación de Atlas con el escalado automático habilitado.

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40

El operador de Kubernetes de Atlas realiza una de las siguientes acciones utilizando el recurso de API de rol de base de datos personalizada de Atlas:

  • Crea una nueva función de base de datos personalizada.

  • Actualiza una función de base de datos personalizada existente.

El siguiente ejemplo muestra un recurso personalizado AtlasCustomRole que define el rol personalizado shard-operator, con privilegios para realizar copias de seguridad y supervisar clústeres fragmentados dentro del proyecto my-project.

apiVersion: atlas.mongodb.com/v1
kind: AtlasCustomRole
metadata:
name: shard-operator-role
namespace: mongodb-atlas-system
labels:
mongodb.com/atlas-reconciliation-policy: keep
spec:
projectRef:
name: my-project
namespace: my-operator-namespace
role:
name: my-role
actions:
- name: getShardMap
resources:
cluster: true
- name: shardingState
resources:
cluster: true
- name: connPoolStats
resources:
cluster: true
- name: getLog
resources:
cluster: true
inheritedRoles:
- name: operator-role-1
role: backup

El siguiente ejemplo muestra un AtlasCustomRole CRD independiente que define el mismo shard-operator rol personalizado definido en el Ejemplo Básico. Esta definición de recurso personalizado le permite crear este rol en un proyecto que no administra 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 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: AtlasCustomRole
metadata:
name: shard-operator-role
namespace: mongodb-atlas-system
labels:
mongodb.com/atlas-reconciliation-policy: keep
spec:
externalProjectRef:
id: 671998971c8520583f24f411
connectionSecret:
name: my-atlas-key
role:
name: my-role
actions:
- name: getShardMap
resources:
cluster: true
- name: shardingState
resources:
cluster: true
- name: connPoolStats
resources:
cluster: true
- name: getLog
resources:
cluster: true
inheritedRoles:
- name: operator-role-1
role: backup

AtlasCustomRole es el esquema para la API AtlasCustomRole

Name
Tipo
Descripción
Requerido

apiVersion

string

atlas.mongodb.com/v1

true

kind

string

AtlasCustomRole

true

metadata

Objeto

Consulte la documentación de Kubernetes API para conocer los campos del campo metadata.

true

spec

Objeto

AtlasCustomRoleSpec Define el estado objetivo de CustomRole en Atlas. Validaciones:

  • (has(self.``externalProjectRef``) && !has(self.``projectRef``)) || (!has(self.``externalProjectRef``) && has(self.``projectRef``)): debe definir solo una referencia de proyecto a través de externalProjectRef o projectRef

  • (has(self.``externalProjectRef``) && has(self.``connectionSecret``)) || !has(self.``externalProjectRef``): debe definir un secreto de conexión local al hacer referencia a un proyecto externo

false

status

Objeto

AtlasCustomRoleStatus es un(a) status para el AtlasCustomRole recurso personalizado. No el incluido en el AtlasProject

false

AtlasCustomRoleSpec define el estado de destino de CustomRole en Atlas.

Name
Tipo
Descripción
Requerido

role

Objeto

Rol representa un rol personalizado en Atlas.

true

connectionSecret

Objeto

Nombre del secreto que contiene las claves privadas y públicas de Atlas API.

false

externalProjectRef

Objeto

externalProjectRef Contiene el proyecto Atlas principal ID. Se excluye mutuamente con el campo "projectRef".

false

projectRef

Objeto

projectRef Es una referencia al recurso principal AtlasProject. Se excluye mutuamente con el campo "externalProjectRef".

false

Rol representa un rol personalizado en Atlas.

Name
Tipo
Descripción
Requerido

name

string

Etiqueta legible que identifica el rol. Este name debe ser único para este rol personalizado en este proyecto.

true

actions

[]objeto

Lista de los privilegios individuales actions que otorga el rol.

false

inheritedRoles

[]objeto

Lista de los roles integrados que hereda este rol personalizado.

false

Name
Tipo
Descripción
Requerido

name

string

Etiqueta legible por humanos que identifica la acción privilegiada.

true

resources

[]objeto

Lista de resources en los que se concede la acción.

true

Name
Tipo
Descripción
Requerido

cluster

booleano

Marca que indica si se debe conceder la acción en el recurso cluster. Si es verdadero, MongoDB Cloud ignora los parámetros de base de datos y colección.

false

collection

string

Etiqueta legible por humanos que identifica el collection en el que se otorga la acción a un usuario MongoDB.

false

database

string

Etiqueta legible por humanos que identifica el database en el que se otorga la acción a un usuario MongoDB.

false

Name
Tipo
Descripción
Requerido

database

string

Etiqueta legible por humanos que identifica el database en el que se otorga la acción a un usuario MongoDB.

true

name

string

Etiqueta legible por humanos que identifica el rol heredado.

true

Nombre del secreto que contiene las claves públicas y privadas de la API de Atlas.

externalProjectRef contiene el ID del proyecto Atlas principal. Se excluye mutuamente con el campo "projectRef".

Name
Tipo
Descripción
Requerido

id

string

ID es el proyecto Atlas ID.

true

projectRef es una referencia al recurso AtlasProject principal. Es mutuamente excluyente con el campo "externalProjectRef".

Name
Tipo
Descripción
Requerido

name

string

Nombre del recurso de Kubernetes

true

namespace

string

Espacio de nombres del recurso de Kubernetes

false

AtlasCustomRoleStatus es un estado del recurso personalizado AtlasCustomRole. No el incluido en AtlasProject.

Name
Tipo
Descripción
Requerido

conditions

[]objeto

Condiciones es la lista de estados que muestra el estado actual del recurso personalizado de Atlas

true

observedGeneration

entero

ObservedGeneration Indica la generación de la especificación del recurso que el operador Atlas conoce. El operador Atlas actualiza este campo con el valor 'metadata.generation' en cuanto inicia la conciliación del recurso. Formato: int64

false

La condición describe el estado de un recurso personalizado de Atlas en un momento determinado.

Name
Tipo
Descripción
Requerido

status

string

Estado de la condición; uno de Verdadero, Falso, Desconocido.

true

type

string

Tipo de condición de recurso personalizado de Atlas.

true

lastTransitionTime

string

Última vez que la condición cambió de un estado a otro. Representado en ISO 8601 formato. Formato: fecha y hora.

false

message

string

A message proporcionando detalles sobre la transición.

false

reason

string

El reason para la última transición de la condición.

false

Volver

Programación de copias de seguridad de Atlas

En esta página