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
AtlasProjectrecurso personalizado en elAtlasCustomRolerecurso personalizado para los proyectos que administra con Atlas Kubernetes OperatorHaga referencia al ID del proyecto de su proyecto Atlas en el
AtlasCustomRolerecurso 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
AtlasProjectRecurso 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 personalizadoAtlasDeployment, 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.
Ejemplos
Ejemplo básico
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
Ejemplo de CRD independiente
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
Parámetros
Rol personalizado de Atlas
AtlasCustomRole es el esquema para la API AtlasCustomRole
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string | atlas.mongodb.com/v1 | true |
| string |
| true |
| Objeto | Consulte la documentación de Kubernetes | true |
| Objeto |
| false |
| Objeto |
| false |
AtlasCustomRole.spec
AtlasCustomRoleSpec define el estado de destino de CustomRole en Atlas.
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| Objeto | Rol representa un rol personalizado en Atlas. | true |
| Objeto | Nombre del secreto que contiene las claves privadas y públicas de Atlas | false |
| Objeto |
| false |
| Objeto |
| false |
AtlasCustomRole.spec.role
Rol representa un rol personalizado en Atlas.
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string | Etiqueta legible que identifica el rol. Este | true |
| []objeto | Lista de los privilegios individuales | false |
| []objeto | Lista de los roles integrados que hereda este rol personalizado. | false |
AtlasCustomRole.spec.role.actions
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string | Etiqueta legible por humanos que identifica la acción privilegiada. | true |
| []objeto | Lista de | true |
AtlasCustomRole.spec.role.actions.resources
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| booleano | Marca que indica si se debe conceder la acción en el recurso | false |
| string | Etiqueta legible por humanos que identifica el | false |
| string | Etiqueta legible por humanos que identifica el | false |
AtlasCustomRole.spec.rol.inheritedRoles
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string | Etiqueta legible por humanos que identifica el | true |
| string | Etiqueta legible por humanos que identifica el rol heredado. | true |
AtlasCustomRole.spec.connectionSecret
Nombre del secreto que contiene las claves públicas y privadas de la API de Atlas.
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string | Nombre del recurso al que se hace referencia Más información: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasCustomRole.spec.externalProjectRef
externalProjectRef contiene el ID del proyecto Atlas principal. Se excluye mutuamente con el campo "projectRef".
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string |
| true |
AtlasCustomRole.spec.referenciadelproyecto
projectRef es una referencia al recurso AtlasProject principal. Es mutuamente excluyente con el campo "externalProjectRef".
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string | Nombre del recurso de Kubernetes | true |
| string | Espacio de nombres del recurso de Kubernetes | false |
AtlasCustomRole.status
AtlasCustomRoleStatus es un estado del recurso personalizado AtlasCustomRole. No el incluido en AtlasProject.
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| []objeto | Condiciones es la lista de estados que muestra el estado actual del recurso personalizado de Atlas | true |
| entero |
| false |
AtlasCustomRole.estado.condiciones
La condición describe el estado de un recurso personalizado de Atlas en un momento determinado.
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string | Estado de la condición; uno de Verdadero, Falso, Desconocido. | true |
| string | Tipo de condición de recurso personalizado de Atlas. | true |
| string | Última vez que la condición cambió de un estado a otro. Representado en | false |
| string | A | false |
| string | El | false |