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 personalizado de base de datos para asignar privilegios a sus usuarios de base de datos.
Para crear este rol personalizado dentro de un proyecto dado, debe hacer lo siguiente:
Haga referencia al nombre del
AtlasProjectrecurso personalizado en elAtlasCustomRolerecurso personalizado para los proyectos que administra con Atlas Kubernetes OperatorHace referencia al ID del grupo de tu proyecto de Atlas en el recurso personalizado
AtlasCustomRole, para los proyectos que no administra con Atlas Kubernetes Operator
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
Atlas Kubernetes Operator realiza una de las siguientes acciones utilizando el recurso Atlas API de Rol Personalizado de Base de Datos:
Crea una nueva función de base de datos personalizada.
Actualiza un rol personalizado existente en la base de datos.
Ejemplos
Ejemplo básico
El siguiente ejemplo muestra un recurso personalizado AtlasCustomRole que define el rol personalizado shard-operator, con privilegios para hacer copias de seguridad y monitorear 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 te permite crear este rol en un proyecto que no administras en la misma instancia de Atlas Kubernetes Operator en la que defines este recurso. Para habilitar la operación independiente, se debe usar 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 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
AtlasCustomRole
AtlasCustomRole es el esquema para el 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 objetivo de CustomRole en Atlas.
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| Objeto | El Rol representa un rol personalizado en Atlas. | true |
| Objeto | Nombre del secreto que contiene las claves privadas y las llaves públicas de Atlas | false |
| Objeto |
| false |
| Objeto |
| false |
AtlasCustomRole.spec.role
El 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 de privilegio. | true |
| []objeto | Lista de | true |
AtlasCustomRole.spec.rol.acciones.recursos
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| booleano | Indicador que señala 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 privadas y públicas 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 principal de Atlas. Mutuamente exclusivo con el campo 'projectRef'.
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string |
| true |
AtlasCustomRole.spec.projectRef
projectRef es una referencia al recurso padre AtlasProject. Mutuamente excluyente con el campo "externalProjectRef".
Name | Tipo | Descripción | Requerido |
|---|---|---|---|
| string | Nombre del recurso de Kubernetes | true |
| string | namespace del recurso de Kubernetes | false |
AtlasCustomRole.status
AtlasCustomRoleStatus es un estado para el recurso personalizado AtlasCustomRole. No el que se incluye en el 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.status.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 recursos personalizados de Atlas. | true |
| string | Última vez que la condición cambió de un estado a otro. Representado en | false |
| string | Un | false |
| string | El | false |