MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs 菜单
Docs 主页
/ /
/ / /

AtlasCustomRole 自定义资源

重要

旧版子资源自相应的 CRD发布以来已被弃用。如果您的配置当前依赖于此资源定义的子资源形式,请迁移到 CRD。

AtlasCustomRole自定义资源定义了 自定义数据库角色,以便为数据库用户分配权限。

要在给定项目中创建此自定义角色,您必须:

  • 对于使用Atlas Kubernetes Operator管理的项目,请在 自定义资源中引用 AtlasProject自定义资源名称AtlasCustomRole

  • AtlasCustomRole对于不使用Atlas Kubernetes Operator管理的项目,请在 自定义资源中引用Atlas项目的项目ID

重要

自定义资源不再默认删除对象

  • Atlas Kubernetes Operator使用自定义资源配置文件来管理Atlas配置,但从Atlas Kubernetes Operator2.0 开始,您在Kubernetes中删除的自定义资源不再(默认)在Atlas中删除。相反, Atlas Kubernetes Operator只是停止管理Atlas中的这些资源。 AtlasProject示例,如果您在Kubernetes中删除 自定义资源,默认默认, Atlas Kubernetes Operator不再自动从Atlas中删除相应的项目。这种行为更改旨在帮助防止意外删除。 要学习;了解详情,包括如何将此行为恢复为在Atlas Kubernetes Operator.2 0之前使用的默认,请参阅新默认值: Atlas Kubernetes2 Operator.0 中的删除保护。

    同样,如果您使用Atlas Kubernetes Operator从Kubernetes中的Atlas项目中删除团队,则Atlas Kubernetes Operator不会从Atlas中删除团队。

  • 显式定义所需的配置详细信息,以避免隐式使用默认Atlas配置值。 在某些情况下,继承Atlas默认值可能会导致协调循环,从而阻止自定义资源实现 READY 状态。 示例,在 AtlasDeployment 自定义资源中显式定义所需的自动伸缩行为(如所包含的示例所示)可确保自定义资源中的静态实例大小不会重复应用于已启用自动伸缩的Atlas部署。

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

Atlas Kubernetes Operator使用Atlas自定义数据库角色API资源执行以下操作之一:

  • 创建新的自定义数据库角色。

  • 更新现有的自定义数据库角色。

以下示例显示了一个定义 shard-operator自定义角色的 AtlasCustomRole 自定义资源,该角色具有备份和监控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

以下示例显示了一个独立于AtlasCustomRole 的 CRD,它定义了基本示例中定义的相同 shard-operator自定义角色。通过此自定义资源定义,您可以在项目中创建此角色,而该项目并非在您定义此资源的Atlas Kubernetes Operator实例中管理。 要启用独立操作,必须使用 externalProjectRef 而不是 projectRef,并且必须直接提供 connectionSecret,因为此资源无法从其父项目继承API凭证。

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 是 AtlasCustomRole API的模式

Name
类型
说明
必需

apiVersion

字符串

atlas.mongodb.com/v1

true

kind

字符串

AtlasCustomRole

true

metadata

对象

有关 metadata 字段的字段,请参阅 Kubernetes API 文档。

true

spec

对象

AtlasCustomRoleSpec 定义了Atlas中 CustomRole 的目标省/市/自治区。验证

  • (has(self.``externalProjectRef``)&& !has(self.``projectRef``))|| (!has(self.``externalProjectRef``)&& has(self.``projectRef``)):只能通过 externalProjectRefprojectRef 定义一个项目引用

  • (has(self.``externalProjectRef``)&& has(self.``connectionSecret``))|| !has(self.``externalProjectRef``):引用外部项目时必须定义本地连接密钥

false

status

对象

AtlasCustomRoleStatusAtlasCustomRole 自定义资源的 status。不是包含在 AtlasProject

false

AtlasCustomRoleSpec 定义了Atlas中 CustomRole 的目标状态。

Name
类型
说明
必需

role

对象

角色表示Atlas中的自定义角色。

true

connectionSecret

对象

包含Atlas API 私钥和公钥的密钥名称。

false

externalProjectRef

对象

externalProjectRef 包含父Atlas项目ID。与“projectRef”字段互斥。

false

projectRef

对象

projectRef 是对父 AtlasProject资源的引用。与“externalProjectRef”字段互斥。

false

角色表示Atlas中的自定义角色。

Name
类型
说明
必需

name

字符串

标识角色的人类可读标签。对于此项目中的此自定义角色,此 name 必须是唯一的。

true

actions

[]对象

角色授予的个人权限actions 的列表。

false

inheritedRoles

[]对象

该自定义角色继承的内置角色列表。

false

Name
类型
说明
必需

name

字符串

用于标识特权操作的可读标签。

true

resources

[]对象

您授予操作权限的 resources 列表。

true

Name
类型
说明
必需

cluster

布尔

指示是否允许对 cluster 资源的操作的标志。如果为 true,MongoDB 云将忽略数据库和集合参数。

false

collection

字符串

人类可读标签,用于标识您向一个 MongoDB 用户授予操作的collection

false

database

字符串

人类可读标签,用于标识您向一个 MongoDB 用户授予操作的database

false

Name
类型
说明
必需

database

字符串

人类可读标签,用于标识某人向一个 MongoDB 用户授予操作的database

true

name

字符串

人类可读标签,用于标识继承的角色。

true

包含Atlas API私钥和公钥的密钥名称。

externalProjectRef 保存父Atlas群组 ID(group ID)。与 "projectRef"字段互斥。

Name
类型
说明
必需

id

字符串

ID 是Atlas项目ID

true

projectRef 是对父 AtlasProject资源的引用。与 "externalProjectRef"字段互斥。

Name
类型
说明
必需

name

字符串

Kubernetes资源名称

true

namespace

字符串

Kubernetes资源的命名空间

false

AtlasCustomRoleStatus 是 AtlasCustomRole 自定义资源的状态。不是 AtlasProject 中包含的

Name
类型
说明
必需

conditions

[]对象

条件是显示Atlas自定义资源当前省/市/自治区的列表

true

observedGeneration

整型

ObservedGeneration 表示 Atlas 操作符 感知的资源规范的生成。Atlas Operator 将此字段更新为“元数据.Generation ”的值一旦开始资源协调。格式:int64

false

条件描述了Atlas自定义资源在某一点的省/市/自治区。

Name
类型
说明
必需

status

字符串

条件的状态; True、False、未知之一。

true

type

字符串

Atlas自定义资源条件的类型。

true

lastTransitionTime

字符串

上次条件从一种状态转换为另一种状态的时间。以 ISO 8601 格式表示。格式:日期-时间

false

message

字符串

提供有关转换的详细信息的 message

false

reason

字符串

条件的最后一次转换的 reason

false

后退

AtlasBackupSchedule

在此页面上