将参数迁移到自定义资源定义
从Atlas Kubernetes Operator版本 2.6 开始,以前采用参数形式的各种资源配置已转换为自己的 CRD。对基于参数的父资源配置的支持已弃用。现有的基于参数的父资源配置将继续有效,但未来发布将删除对这些配置的支持。
如需将来继续通过Atlas Kubernetes Operator管理这些资源,请迁移到相应的 CRD。
受影响的配置
以下配置会受到影响:
迁移过程
要从参数级资源管理迁移到 CRD管理:
禁用项目协调并编辑子资源引用。
将
mongodb.com/atlas-reconciliation-policy: "skip"
注解添加到父资源的metadata
。这可以防止Atlas Kubernetes Operator尝试协调父资源及其子资源。为防止与您创建的新 CRD 发生冲突,您必须从父资源中删除与要迁移的资源对应的参数。
考虑以下具有 customRoles
配置的 atlasProject
示例:
apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test project connectionSecretRef: name: my-atlas-key customRoles: 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 projectIpAccessList: - cidrBlock: "203.0.113.0/24" comment: "CIDR block for Application Server B - D"
确保您已在第 5 和 6 行中添加 annotations
区块,并删除上示例中所示的 customRoles
区块。
apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project annotations: mongodb.com/atlas-reconciliation-policy: "skip" spec: name: Test project connectionSecretRef: name: my-atlas-key projectIpAccessList: - cidrBlock: "203.0.113.0/24" comment: "CIDR block for Application Server B - D"
警告
如果您不应用此注解, Atlas Kubernetes Operator将在您修改其他资源时继续尝试协调。 对于在Atlas Kubernetes OperatorAtlas Kubernetes Operator2.0 中禁用“新默认值:删除保护”的用户,这可能会导致Atlas KubernetesAtlas Kubernetes Operator AtlasOperator在您删除atlasProject
资源时删除Atlas项目,或者在尝试删除具有活动子资源的项目时进入阻止状态例如数据库用户或部署。
从父 CRD 中删除参数。
为防止与您创建的新 CRD 发生冲突,您必须先从父资源中删除与要迁移的资源对应的参数。示例,从之前显示的 atlasProject
CRD 中删除customRoles
参数:
apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project annotations: mongodb.com/atlas-reconciliation-policy: "skip" spec: name: Test project connectionSecretRef: name: my-atlas-key projectIpAccessList: - cidrBlock: "203.0.113.0/24" comment: "CIDR block for Application Server B - D"
创建新的 CRD。
根据要迁移的参数的语法,为该参数创建相应的 CRD。示例,要迁移前面显示的 CRD 的kind
参数,请创建customRoles
atlasProject
AtlasCustomRole
自定义资源。
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
此外,您现在可以将此资源配置为独立 CRD。