独立したカスタム リソースの定義
Atlas Kubernetes Operator を使用すると、Atlas Kubernetes Operator を使用してプロジェクト自体を管理しなくても、Atlasプロジェクト内のリソースを管理できます。この独立したカスタムリソース定義(「独立した CRD」)モデルでは、 AtlasDeployment
カスタム リソースやAtlasDatabaseUser
カスタム リソースなどのリソースを、Atlas IDによって直接 Atlasプロジェクトに関連付けます。
独立した CRD を使用すると、プロジェクトにさまざまなプログラムによるインフラストラクチャ管理システムを使用できますが、Atlas Kubernetes Operator を使用して、データベースユーザーや個別の配置など、より頻繁に変更されるリソースを管理できます。
独立した CRD によって、Atlasプロジェクトのマネジメントをユーザーや配置などのサブリソースのマネジメントから分離することで、ニーズに合わせて組織内の別の担当者やチームにこれらの権限を割り当てることができます。
Considerations
Atlas Kubernetes Operator を使用してプロジェクトを管理する場合、 atlasProject
リソースのspec.connectionSecretRef.name
パラメータを使用して Atlas Administration API認証を構成するか、このパラメータを未設定のままにして グローバル Atlas認証情報をデフォルトに設定できます。独立した CRD を使用する場合は、各リソースに対してspec.connectionSecret.name
を指定できます。このパラメータを設定すると、 spec.connectionSecretRef.name
またはグローバル Atlas 認証情報よりも優先されます。
このパラメーターは、AtlasプロジェクトIDを使用して親リソースが参照されているリソースに設定する必要がありますが、それ以外は任意です。
例
atlasProject
spec.name
パラメータではなく、Atlas IDで親プロジェクトを参照するatlasDeployment
CRD を定義します。次のように、 atlasDeployment
リソースのspec.connectSecret.name
を定義する必要があります。
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: test-cluster-name namespace: mongodb-atlas-system spec: externalProjectRef: id: 671998971c8520583f24f411 connectionSecret: name: my-atlas-key deploymentSpec: clusterType: REPLICASET name: service-name tags: - key: "environment" value: "production" backupEnabled: true replicationSpecs: - zoneName: US-Zone numShards: 3 regionConfigs: - regionName: CENTRAL_US providerName: GCP backingProviderName: GCP priority: 7 electableSpecs: instanceSize: M10 nodeCount: 3
独立した CRD への移行
既存の CRD をatlasProject
レベルのマネジメントから独立したマネジメントに移行するには、次の手順に従います。
プロジェクト調整を無効にし、サブリソース参照を編集する
親リソースの
metadata
にmongodb.com/atlas-reconciliation-policy: "skip"
アノテーションを追加します。これにより、Atlas Kubernetes Operator が親リソースとそのサブリソースの調整を試みるのを防止します。次の点を考慮してください。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 Operator 2.0の削除保護が無効になっているユーザーの場合、これにより、
atlasProject
リソースを削除すると Atlas Kubernetes Operator が Atlasプロジェクトを削除するか、アクティブなサブリソースを持つプロジェクトを削除しようとすると ブロック状態になる可能性があります。データベースユーザーや配置など。プロジェクト参照を変更して、
atlasProject
名ではなく AtlasプロジェクトIDを点ようにします。例、
atlasDatabaseUser
リソースを減算するには次のようにします。apiVersion: atlas.mongodb.com/v1 kind: AtlasDatabaseUser metadata: name: my-database-user spec: roles: - roleName: readWriteAnyDatabase databaseName: admin externalProjectRef: id: 671998971c8520583f24f411 username: theuser passwordSecretRef: name: the-user-password