AtlasDeployment
Custom Resource
On this page
The AtlasDeployment
custom resource configures your MongoDB cluster
or serverless instance in Atlas. When you create the AtlasDeployment
custom resource, Atlas Kubernetes Operator tries to create or update a cluster or
serverless instance in Atlas.
Important
Action Required for Breaking Changes with Atlas Kubernetes Operator 2.0
With Atlas Kubernetes Operator 2.0,
deploymentSpec
replacesadvancedDeploymentSpec
in theAtlasDeployment
custom resource. You must update yourAtlasDeployment
custom resource as follows:If you use
advancedDeploymentSpec
, rename it todeploymentSpec
. You don't need to change any formatting.If you used
deploymentSpec
prior to Atlas Kubernetes Operator 2.0, rewrite yourAtlasDeployment
custom resource to match the formatting used in the examples.
Atlas Kubernetes Operator uses custom resource configuration files to manage your Atlas configuration. As of Atlas Kubernetes Operator 2.0, custom resources you delete in Kubernetes are no longer deleted in Atlas. Instead, Atlas Kubernetes Operator simply stops managing those resources. For example, if you delete an
AtlasProject
Custom Resource in Kubernetes, Atlas Kubernetes Operator no longer automatically deletes the corresponding project from Atlas, preventing accidental or unexpected deletions. To learn more, including how to revert this behavior to the default used prior to Atlas Kubernetes Operator 2.0, see New Default: Deletion Protection in Atlas Kubernetes Operator 2.0.
Atlas Kubernetes Operator does one of the following actions depending on the values you
specify in the AtlasDeployment
custom resource:
If you specify values for fields under
spec.deploymentSpec
, Atlas Kubernetes Operator uses the Atlas Clusters API Resource to create a new cluster or update an existing cluster.If you specify values for fields under
spec.serverlessSpec
, Atlas Kubernetes Operator uses the Atlas Serverless Instance API Resource to create a new serverless instance or update an existing serverless instance.
Creating or updating a cluster or serverless instance can take up to 10 minutes. Atlas Kubernetes Operator monitors the update process.
You can run the following command to check on the status:
kubectl get atlasdeployment -o yaml
The following example shows the status section of a cluster that is provisioning:
status: conditions: - lastTransitionTime: "2021-03-18T16:32:43Z" status: "False" type: ClusterReady reason: ClusterCreating message: Cluster is provisioning
The ClusterReady
status will change to True
when the cluster
or serverless instance is ready.
Examples
Status Example
The following example shows the AtlasDeployment
resource with a
ClusterReady
status of True
:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster namespace: mongodb-atlas-system spec: projectRef: name: my-project deploymentSpec: name: test-cluster tags: - key: "environment" value: "production" replicationSpecs: - zoneName: US-Zone numShards: 3 regionConfigs: - regionName: CENTRAL_US providerName: GCP backingProviderName: GCP priority: 7 electableSpecs: instanceSize: M10 nodeCount: 3 status: conditions: - lastTransitionTime: "2021-03-18T16:32:43Z" status: "True" type: Ready - lastTransitionTime: "2021-03-18T16:32:43Z" status: "True" type: ClusterReady connectionStrings: standard: mongodb://test-cluster-shard-00-00.kpc8f.mongodb.net:27017,test-cluster-shard-00-01.kpc8f.mongodb.net:27017,test-cluster-shard-00-02.kpc8f.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-1gm1pv-shard-0 standardSrv: mongodb+srv://test-cluster.kpc8f.mongodb.net mongoDBVersion: 6.0 mongoURIUpdated: "2021-03-12T12:21:41Z" observedGeneration: 1 stateName: IDLE
Configuration Example
The following example shows an AtlasDeployment
custom resource
specification configured for autoscaling multi-region clusters:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: test-cluster-name namespace: mongodb-atlas-system spec: projectRef: name: development deploymentSpec: clusterType: REPLICASET name: service-name tags: - key: "environment" value: "production" backupEnabled: true replicationSpecs: - numShards: 1 regionConfigs: - regionName: EASTERN_US providerName: GCP autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40 analyticsSpecs: instanceSize: M30 nodeCount: 1 electableSpecs: instanceSize: M30 nodeCount: 3 priority: 7 readOnlySpecs: instanceSize: M30 nodeCount: 1
Additional Options Example
The following example shows an AtlasDeployment
custom resource
specification configured with some of the additional options.
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster spec: projectRef: name: my-project deploymentSpec: name: test-cluster tags: - key: "environment" value: "production" replicationSpecs: - zoneName: Zone 1 regionConfigs: - electableSpecs: instanceSize: M10 nodeCount: 3 providerName: AWS regionName: US_EAST_1 priority: 7 processArgs: javascriptEnabled: false
Serverless Instance Example
The following example shows an AtlasDeployment
custom resource
specification configured for a serverless instance:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: test-cluster-name namespace: mongodb-atlas-system spec: projectRef: name: development serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: AWS regionName: US_EAST_1
Multi-Region Cluster Example
Clusters can span regions and cloud service providers. To learn more, see Considerations.
Note
While the Atlas Cluster API
Resource sends requests using the
v1.5
Atlas API versions, the Atlas Kubernetes Operator apiVersion
field
uses v1
. In this case, v1
refers to the version of
the Kubernetes API.
The following example shows an AtlasDeployment
custom
resource specification configured for multi-region clusters:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster spec: projectRef: name: my-project deploymentSpec: clusterType: REPLICASET name: tenantCluster tags: - key: "environment" value: "production" replicationSpecs: - zoneName: Zone 1 regionConfigs: priority: 7 - electableSpecs: instanceSize: M10 nodeCount: 3 providerName: AWS regionName: US_EAST_1
Multiple Cloud Service Providers Example
The following example shows an AtlasDeployment
custom resource
specification configured to span multiple cloud service providers:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster spec: projectRef: name: my-project deploymentSpec: clusterType: REPLICASET name: tenantCluster tags: - key: "environment" value: "production" replicationSpecs: - regionConfigs: - electableSpecs: instanceSize: M10 nodeCount: 3 providerName: AWS regionName: US_EAST_1 priority: 7 - electableSpecs: instanceSize: M10 nodeCount: 2 providerName: AZURE regionName: US_EAST_2 priority: 6 - electableSpecs: instanceSize: M10 nodeCount: 2 providerName: GCP regionName: CENTRAL_US priority: 5
Search Index Example
The following example shows an AtlasDeployment
custom resource
specification configured to create a search index for the collection
listingsAndReviews
and grades
:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster namespace: mongodb-atlas-system spec: deploymentSpec: backupEnabled: true clusterType: REPLICASET name: Test-cluster-M10 replicationSpecs: - regionConfigs: - backingProviderName: AWS electableSpecs: instanceSize: M10 nodeCount: 3 priority: 7 providerName: AWS regionName: US_EAST_1 zoneName: Zone 1 searchIndexes: - DBName: sample_training collectionName: grades name: test-vector-search-index type: vectorSearch vectorSearch: fields: - numDimensions: 1000 path: student_id similarity: euclidean type: vector - DBName: sample_airbnb collectionName: listingsAndReviews name: my-index search: mappings: dynamic: true searchConfigurationRef: name: atlassearchindexconfig-sample namespace: mongodb-atlas-system type: search terminationProtectionEnabled: false projectRef: name: my-project namespace: mongodb-atlas-system
Search Nodes Example
The following example shows an AtlasDeployment
custom resource
specification configured to create search nodes:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster namespace: mongodb-atlas-system spec: deploymentSpec: backupEnabled: true clusterType: REPLICASET name: Test-cluster-M10 replicationSpecs: - regionConfigs: - backingProviderName: AWS electableSpecs: instanceSize: M10 nodeCount: 3 priority: 7 providerName: AWS regionName: US_EAST_1 zoneName: Zone 1 searchNodes: - instanceSize: S20_HIGHCPU_NVME nodeCount: 2
Parameters
This section describes some of the key AtlasDeployment
custom resource
parameters available.
For a full list of available parameters for clusters, see the Atlas Clusters API.
For a full list of available parameters for serverless instances, see the Atlas Serverless Instances API.
To customize your specifications, refer to these descriptions, the available examples, and the API documentation.
spec.backupRef
Type: object
Optional
List that contains the details for the
AtlasBackupSchedule
Custom Resource that you want to apply. You can specify one backup schedule per cluster.
spec.backupRef.name
Type: string
Optional
metadata.name
value within theAtlasBackupSchedule
Custom Resource for the backup schedule that you want to apply. You can specify only one backup schedule per cluster, but you can use the same backup schedule for multiple clusters.If you omit this parameter, Atlas doesn't apply your backup configuration to this cluster.
spec.backupRef.namespace
Type: string
Optional
String that indicates the namespace that contains the
AtlasBackupSchedule
Custom Resource for the backup schedule that you want to apply.
spec.connectionSecret.name
Type: string
Conditional
Name of the opaque secret that contains the organization ID and API keys that Atlas Kubernetes Operator uses to connect to Atlas. If unspecified, Atlas Kubernetes Operator falls back to either:
The
spec.connectionSecretRef.name
parameter of the parentatlasProject
The default
global
secret, ifspec.connectionSecretRef.name
is undefined for the parentatlasProject
This parameter is mandatory for independent CRDs.
Atlas Kubernetes Operator watches secrets only with the label
atlas.mongodb.com/type=credentials
to avoid watching unnecessary secrets.The following example labels a secret:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.deploymentSpec
Type: array
Conditional
List that contains the cluster parameters from the API. For a full list of available parameters, see the Atlas Clusters API.
Important
You must specify
spec.deploymentSpec
orspec.serverlessSpec
in your configuration.
spec.deploymentSpec.clusterType
Type: string
Conditional
Human-readable label that identifies cluster type to create.
When should you use this parameter?
ConditionNecessityRequiredYou are deploying Global Clusters.RequiredYou are deploying non-Global replica sets and sharded clusters.OptionalAtlas accepts:
ValueCluster TypeREPLICASETreplica setSHARDEDsharded clusterGEOSHARDED
spec.deploymentSpec.customZoneMapping
Type: array
Required
List that contains Global Cluster parameters that map zones to geographic regions. For a full list of available parameters, see the Atlas Global Clusters API.
spec.deploymentSpec.customZoneMapping.location
Type: string
Required
Code that represents a location that maps to a zone in your Global Cluster.
spec.deploymentSpec.customZoneMapping.zone
Type: string
Required
Human-readable label that identifies the zone in your Global Cluster.
spec.deploymentSpec.diskSizeGB
Type: number
Optional
Capacity, in gigabytes, that indicates the host's root volume. Increase this number to add capacity, up to a maximum possible value of
4096
(4 TB). You must specify a positive number for this value.You can't set this value for clusters with local NVMe SSDs.
Note
If you enable autoscaling for
diskGB
in any region, you can't edit this option. To learn more, seespec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.diskGB.enabled
.The minimum disk size for dedicated clusters is 10 GB for AWS and Google Cloud. If you specify this setting with a lower disk size, Atlas defaults to the minimum disk size value.
If your database deployment includes Azure nodes, this value must correspond to an existing Azure disk type (8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4096).
Atlas calculates storage charges differently depending on whether you choose the default value or a custom value.
Atlas has disk capacity limits on single replica sets, scaling up to 4 TB for higher cluster tiers. To expand the total cluster storage beyond default limits, you can enable extended storage in the Project Settings. To accommodate further scaling in the future, we recommend that you enable sharding for long-term expansion.
If your database deployment spans cloud service providers, this value defaults to the minimum default of the providers involved.
To learn more, see Storage Capacity.
spec.deploymentSpec.encryptionAtRestProvider
Type: string
Optional
Cloud service provider that manages the customer key for this cluster. You must set this value to enable encryption at rest using customer-managed keys for this cluster, which provides an additional layer of encryption. To learn more, see Encrypt Data Using a Key Management Service.
Atlas accepts the following values:
ValueCloud ProviderAWSAmazon AWSGCPGoogle CloudAZUREMicrosoft AzureNONENo provider; the cluster doesn't encrypt data using customer-managed keys.
spec.deploymentSpec.managedNamespaces
Type: array
Required
List that contains information to create a managed namespace in a specified Global Cluster to create. For a full list of available parameters, see the Atlas Global Clusters API.
spec.deploymentSpec.managedNamespaces.collection
Type: string
Required
Human-readable label of the collection to manage in this Global Cluster.
spec.deploymentSpec.managedNamespaces.db
Type: string
Required
Human-readable label of the database to manage in this Global Cluster.
spec.deploymentSpec.managedNamespaces.isCustomShardKeyHashed
Type: boolean
Optional
Flag that indicates whether to hash the custom shard key for the specified collection. This parameter defaults to
false
.Set to
true
to enable a custom shard key for the collection.Set to
false
to disable a custom shard key for the collection. If diabled, MongoDB uses ranged sharding.
To learn more, see Hashed Shard Keys.
spec.deploymentSpec.managedNamespaces.isCustomShardKeyUnique
Type: boolean
Optional
Flag that indicates whether the custom shard key for the specified collection is unique. This parameter defaults to
false
.Set to
true
to enable a unique custom shard key for the collection.Set to
false
to disable a unique custom shard key for the collection.
spec.deploymentSpec.managedNamespaces.numInitialChunks
Type: integer
Optional
Minimum number of chunks to initially create when sharding an empty collection with a hashed shard key.
To learn more, see Shard a Global Collection.
spec.deploymentSpec.managedNamespaces.presplitHashedZones
Type: boolean
Optional
Flag that indicates whether MongoDB Cloud should create and distribute initial chunks for an empty or non-existing collection. This parameter defaults to
false
.Set to
true
to have MongoDB Cloud create and distribute initial chunks for an empty or non-existing collection.Set to
false
to not have MongoDB Cloud create and distribute initial chunks for an empty or non-existing collection..
spec.deploymentSpec.mongoDBMajorVersion
Type: string
Optional
Version of the cluster to deploy. Atlas supports the following MongoDB versions for
M10+
clusters:5.0
6.0
7.0
The following conditions produce the following results:
ConditionResultYou omit this parameter and you omit thespec.deploymentSpec.versionReleaseSystem
parameter.Atlas deploys a cluster that runs MongoDB 7.0.You omit this parameter and you set thespec.deploymentSpec.versionReleaseSystem
parameter toLTS
.Atlas deploys a cluster that runs MongoDB 7.0.You set thespec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.instanceSize
parameter toM0
,M2
, orM5
.You must deploy MongoDB 7.0.You specify this parameter.Atlas always deploys the cluster with the latest stable patch release of the specified version.You set thespec.deploymentSpec.versionReleaseSystem
parameter toCONTINUOUS
.You must omit this parameter.
spec.deploymentSpec.pitEnabled
Type: boolean
Conditional
Configuration that enables continuous cloud backup. To enable continuous cloud backup, you must specify
true
for this setting.
spec.deploymentSpec.replicationSpecs
Type: array of objects
Conditional
List that contains the configurations for your cluster regions. Use this parameter for multi-region clusters. You must set either
spec.deploymentSpec.replicationSpecs.regionConfigs.regionName
orspec.deploymentSpec.replicationSpecs
.When should you use this parameter?
ConditionNecessityValuesYou are deploying Global Clusters.RequiredEach object in the array represents a zone where Atlas deploys your cluster's nodes.You are deploying non-Global replica sets and sharded clusters.OptionalThis array has one object representing where Atlas deploys your cluster's nodes.If you specify this parameter, you must also specify
spec.deploymentSpec.clusterType
andspec.deploymentSpec.replicationSpecs.numShards
.
spec.deploymentSpec.replicationSpecs.numShards
Type: integer
Conditional
Positive integer that specifies the number of shards to deploy for a sharded cluster.
If you use the
spec.deploymentSpec.replicationSpecs
parameter, you must set this parameter.Atlas accepts
1
through50
, inclusive. The default value is1
.If you specify a value of
1
and you setspec.deploymentSpec.clusterType
toSHARDED
, Atlas deploys a single-shard sharded cluster.If you specify
1
and you setspec.deploymentSpec.clusterType
toREPLICASET
, Atlas deploys a replica set.Don't create a sharded cluster with a single shard for production environments. Single-shard sharded clusters don't provide the same benefits as multi-shard configurations.
Warning
When you use a sharded cluster, MongoDB requires that your applications connect to a
mongos
instance to ensure that your applications interact with the shards and other components of the sharded cluster properly. If you migrate from a replica set to a sharded cluster, your applications must restart to enable the connection to the cluster'smongos
. As a result, the Atlas Admin API prevents you from migrating a replica set directly to a sharded cluster with more than one shard. After you successfully migrate your replica set to a single shard cluster and reset your application connections, you can add additional shards to the cluster.
spec.deploymentSpec.replicationSpecs.regionConfigs
Type: array
Required
Hardware specifications for nodes set for a given region. Each
regionConfigs
object describes the region's priority in elections and the number and type of MongoDB nodes that Atlas deploys to the region.Each
regionConfigs
object must have either ananalyticsSpecs
object,electableSpecs
object, orreadOnlySpecs
object.M0
,M2
, orM5
clusters require onlyelectableSpecs
.Dedicated clusters can specify any of these specifications, but must have at least one
electableSpecs
object within areplicationSpec
.Every hardware specification must use the same
instanceSize
.
spec.deploymentSpec.replicationSpecs.regionConfigs.analyticsSpecs
Type: object
Optional
Hardware specifications for analytics nodes needed in the region. Analytics nodes handle analytic data such as reporting queries from BI Connector for Atlas. Analytics nodes are read-only and can never become the primary.
If you don't specify this parameter, Atlas deploys no analytics to this region.
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.diskGB.enabled
Type: boolean
Optional
Flag that indicates whether this database deployment enables disk autoscaling. This parameter defaults to
true
.Set to
true
to enable disk autoscaling.Set to
false
to disable disk autoscaling.
The maximum amount of RAM for the selected cluster tier and the oplog size can limit storage auto-scaling. To learn more, see Customize Your Storage.
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled
Type: boolean
Optional
Flag that indicates whether instance size autoscaling is enabled. This parameter defaults to
false
.Set to
true
to enable instance size autoscaling. If enabled, you must specify a value forspec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize
.Set to
false
to disable instance size autoscaling.
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize
Type: string
Conditional
String that indicates the maximum instance size to which your database deployment can automatically scale (such as
M40
). You must specify this parameter if you setspec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled
totrue
.Note
If you set a maximum instance size smaller than the database deployment's current instance size with autoscaling enabled, Atlas automatically scales the current instance size to the maximum value you specify.
For example, if the database deployment's current instance size is
M40
and you set the maximum instance size toM30
, Atlas automatically scales the current instance size toM30
.If Atlas changes the current instance size and you don't change the
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.instanceSize
in Atlas Kubernetes Operator to match the new instance size, Atlas Kubernetes Operator displays a warning in the logs but doesn't prevent autoscaling.
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSize
Type: string
Conditional
String that indicates the minimum instance size to which your database deployment can automatically scale (such as
M10
). You must specify this parameter if you setspec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled
totrue
.Note
If you set a minimum instance size larger than the database deployment's current instance size with autoscaling enabled, Atlas automatically scales the current instance size to the minimum value you specify.
For example, if the database deployment's current instance size is
M10
and you set the minimum instance size toM30
, Atlas automatically scales the current instance size toM30
.If Atlas changes the current instance size and you don't change the
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.instanceSize
in Atlas Kubernetes Operator to match the new instance size, Atlas Kubernetes Operator displays a warning in the logs but doesn't prevent autoscaling.
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs
Type: object
Optional
Hardware specifications for electable nodes in the region. Electable nodes can become the primary and can enable local reads.
If you don't specify this option, Atlas deploys no electable nodes to the region.
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.instanceSize
Type: string
Conditional
Hardware specification for the instance sizes in this region. Each instance size has a default storage and memory capacity. The instance size you select applies to all the data-bearing hosts in your instance size. To learn more, see the AWS, GCP, and Azure custom storage sizes.
If you deploy a sharded cluster, or global cluster, you must choose an instance size of
M30
or greater.If you change the instance size name after you deploy your cluster, Atlas changes the database deployment to the instance size you specify unless it falls outside the range you specify in
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSize
andspec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize
with autoscaling enabled. To learn more, seespec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSize
andspec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize
.Note
If you have autoscaling enabled for the compute field, you can't edit this option. To learn more, see
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled
.Note
You can change this setting to upgrade an
M0
,M2
, orM5
cluster to anM10+
cluster. However, you can't upgrade anM0
,M2
, orM5
cluster to another free or shared cluster. For example, you can't upgrade anM0
cluster to anM5
cluster.
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.nodeCount
Type: integer
Conditional
Number of electable nodes for Atlas to deploy to the region. Electable nodes can become the primary and can enable local reads.
The combined
electableSpecs.nodeCount
across allreplicationSpecs.regionConfigs
objects must total3
,5
, or7
.You can't create electable nodes if
spec.deploymentSpec.replicationSpecs.regionConfigs.priority
is0
.
spec.deploymentSpec.replicationSpecs.regionConfigs.priority
Type: integer
Required
Precedence is given to this region when a primary election occurs.
If your
regionConfigs
has onlyreadOnlySpecs
,analyticsSpecs
, or both, set this value to0
.If you have multiple
regionConfigs
objects (your cluster is multi-region or multi-cloud), they must have priorities in descending order. The highest priority is7
.Example
Set your highest priority region to
7
, your second-highest priority to6
, and your third-priority region to5
. If you have no electable nodes, set this value to0
.If your region has set
electableSpecs.nodeCount
to1
or higher, it must have a priority of exactly one less than another region in thereplicationSpecs.regionConfigs
array unless it is the primary. The highest-priority region must have a priority of7
. The lowest possible priority is1
.The priority
7
region identifies the Preferred Region of the cluster. Atlas places the primary node in the Preferred Region. Priorities1
through7
are exclusive: you can't assign a given priority to more than one region per cluster.Example
If you have three regions, their priorities would be
7
,6
, and5
respectively. If you added two more regions for supporting electable nodes, the priorities of those regions would be4
and3
respectively.
spec.deploymentSpec.replicationSpecs.regionConfigs.providerName
Type: string
Conditional
Cloud service provider on which Atlas provisions the hosts.
AWSAmazon AWSGCPGoogle Cloud PlatformAZUREMicrosoft Azure
spec.deploymentSpec.replicationSpecs.regionConfigs.regionName
Type: string
Conditional
Physical location of your MongoDB cluster. The region you choose can affect network latency for clients accessing your databases.
For a complete list of region name values, refer to the cloud provider reference pages:
For multi-region clusters, see
spec.deploymentSpec.replicationSpecs
. You must set eitherspec.deploymentSpec.replicationSpecs.regionConfigs.regionName
orspec.deploymentSpec.replicationSpecs
.
spec.deploymentSpec.replicationSpecs.regionConfigs.readOnlySpecs
Type: object
Optional
Hardware specifications for read-only nodes in the region. Read-only nodes can never become the primary member, but can enable local reads.
If you don't specify this parameter, Atlas deploys no read-only nodes to the region.
spec.deploymentSpec.replicationSpecs.zoneName
Type: string
Optional
Human-readable label that identifies the zone in a Global Cluster. Provide this value only if you set
spec.deploymentSpec.clusterType
toGEOSHARDED
.
spec.deploymentSpec.searchIndexes
Type: array
Optional
An array of
SearchIndex
objects with fields that describe the search index. EachSearchIndex
object contains the following fields:FieldTypeDescriptionname
stringHuman-readable label that identifies this index. Must be unique for a deployment.DBName
stringHuman-readable label that identifies the existing database that contains the collection with one or more Atlas Search indexes.
IMPORTANT: The database that you specify must already exist. If you don't have an existing database, create one.
collectionName
stringHuman-readable label that identifies the collection that contains one or more Atlas Search indexes.type
stringType of the index. Atlas accepts the following values:
search
vectorSearch
search
objectYou must include this object iftype
issearch
. Otherwise, omit it.vectorSearch
objectYou must include this object iftype
isvectorSearch
. Otherwise, omit it.
spec.deploymentSpec.searchIndexes.search
Type: object
Optional
FieldTypeDescriptionsynonyms
arrayRule sets that map words to their synonyms in this indexmappings
objectIndex specifications for the collection's fields
Required
searchConfigurationRef
objectA name/namespace reference to the AtlasSearchIndexConfig custom resource, described below.
Required
spec.deploymentSpec.searchIndexes.search.synonyms
Type: array
Optional
An array of
Synonym
objects with fields that describe rule sets that map words to their synonyms in this index. EachSynonym
object contains the following fields:FieldTypeDescriptionname
stringHuman-readable label that identifies the synonym definition. Each name must be unique within the same index definition
Required
analyzer
stringSpecific pre-defined method chosen to apply to the synonyms to be searched. Possible values are:
lucene.standard
lucene.standard
lucene.simple
lucene.whitespace
lucene.keyword
lucene.arabic
lucene.armenian
lucene.basque
lucene.bengali
lucene.brazilian
lucene.bulgarian
lucene.catalan
lucene.chinese
lucene.cjk
lucene.czech
lucene.danish
lucene.dutch
lucene.english
lucene.finnish
lucene.french
lucene.galician
lucene.german
lucene.greek
lucene.hindi
lucene.hungarian
lucene.indonesian
lucene.irish
lucene.italian
lucene.japanese
lucene.korean
lucene.kuromoji
lucene.latvian
lucene.lithuanian
lucene.morfologik
lucene.nori
lucene.norwegian
lucene.persian
lucene.portuguese
lucene.romanian
lucene.russian
lucene.smartcn
lucene.sorani
lucene.spanish
lucene.swedish
lucene.thai
lucene.turkish
lucene.ukrainian
Required
source
objectData set that stores the mapping one or more words map to one or more synonyms of those words
Required
spec.deploymentSpec.searchIndexes.search.synonyms.source
Type: object
Required
FieldTypeDescriptioncollection
stringHuman-readable label that identifies the MongoDB collection that stores words and their applicable synonyms
Required
spec.deploymentSpec.searchIndexes.search.mappings
Type: object
Required
An object with Index specifications for the collection's fields:
dynamic
booleanFlag that indicates whether the index uses dynamic or static mappings. Required if mappings.fields is omitted.fields
JSON/YAMLOne or more field specifications for the Atlas Search index. Required if mappings.dynamic is omitted or set to false.
spec.deploymentSpec.searchIndexes.vectorSearch
Type: object
Optional
FieldTypeDescriptionfields
JSON/YAMLArray of JSON objects. See examples https://dochub.mongodb.org/core/avs-vector-type
Required
spec.deploymentSpec.searchNodes
Type: array
Optional
An array of search nodes configurations. Each element contains two fields:
FieldTypeDescriptionnodeCount
integerNumber of search nodes in the cluster. Atlas accepts values 2 through 32, inclusive. The default number is2
.instanceSize
stringHardware specification for the search node instance sizes. Atlas accepts one of the following:
S20_HIGHCPU_NVME
S30_HIGHCPU_NVME
S40_HIGHCPU_NVME
S50_HIGHCPU_NVME
S60_HIGHCPU_NVME
S70_HIGHCPU_NVME
S80_HIGHCPU_NVME
S30_LOWCPU_NVME
S40_LOWCPU_NVME
S50_LOWCPU_NVME
S60_LOWCPU_NVME
S80_LOWCPU_NVME
S90_LOWCPU_NVME
S100_LOWCPU_NVME
The default instance size is
S20_HIGHCPU_NVME
.
spec.deploymentSpec.tags
Type: array
Optional
List that contains tags (key-value pairs) to better understand, organize, and identify your database deployments. To learn more, see Tags on Clusters.
spec.deploymentSpec.versionReleaseSystem
Type: string
Conditional
Release cadence that Atlas uses for this cluster. Atlas accepts:
CONTINUOUS
: Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.LTS
: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in thespec.deploymentSpec.mongoDBMajorVersion
parameter. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.If omitted, defaults to
LTS
.If you set this parameter to
CONTINUOUS
, you must omit thespec.deploymentSpec.mongoDBMajorVersion
parameter.
spec.externalProjectRef.id
Type: string
Conditional
ID of the project to which the deployment belongs. You must specify the project ID of an existing Atlas Project. This parameter is required for deployments who belong to projects managed by either:
A different instance of Atlas Kubernetes Operator
Tooling other than Atlas Kubernetes Operator
For deployments who belong to projects managed by the same instance of Atlas Kubernetes Operator, use
spec.projectRef.name
if you do not usespec.externalProjectRef.id
.
spec.processArgs
Type: object
Optional
Object that contains the additional configuration options for your cluster.
spec.processArgs.defaultReadConcern
Type: string
Optional
String that indicates the default level of acknowledgment requested from MongoDB for read operations set for this cluster.
MongoDB 5.0 clusters default to local.
spec.processArgs.defaultWriteConcern
Type: string
Optional
String that indicates the default level of acknowledgment requested from MongoDB for write operations set for this cluster.
MongoDB versions 5.0 and later clusters default to majority.
spec.processArgs.failIndexKeyTooLong
Type: boolean
Optional
Flag that indicates whether to fail the operation and return an error when you insert or update documents where all indexed entries exceed 1024 bytes. If you set this to
false
,mongod
writes documents that exceed this limit, but doesn't index them.This option corresponds to the
param.failIndexKeyTooLong
mongod
parameter.
spec.processArgs.javascriptEnabled
Type: boolean
Optional
Flag that indicates whether the cluster allows execution of operations that perform server-side executions of JavaScript.
This option corresponds to modifying the
security.javascriptEnabled
configuration file option for eachmongod
andmongos
in the cluster.
spec.processArgs.minimumEnabledTlsProtocol
Type: integer
Optional
String that indicates the minimum TLS version that the cluster accepts for incoming connections. Clusters using TLS 1.0 or 1.1 should consider setting TLS 1.2 as the minimum TLS protocol version.
To learn more, see What versions of TLS does Atlas support?.
This option corresponds to the
net.ssl.disabledProtocols
mongod
configuration file option.
spec.processArgs.noTableScan
Type: boolean
Optional
Flag that indicates whether the cluster disables executing any query that requires a collection scan to return results.
This option corresponds to the
notablescan
mongod
parameter.
spec.processArgs.oplogSizeMB
Type: integer
Optional
Number that indicates the storage limit of a cluster's oplog expressed in megabytes. A value of
null
indicates that the cluster uses the default oplog size that Atlas calculates.This option corresponds to the
replication.oplogSizeMB
mongod
configuration file option.
spec.processArgs.sampleRefreshIntervalBIConnector
Type: integer
Optional
Number that indicates the documents per database to sample when gathering schema information.
This parameter corresponds to the sampleSize mongosqld option.
spec.processArgs.sampleSizeBIConnector
Type: integer
Optional
Number that indicates the interval in seconds at which the mongosqld process re-samples data to create its relational schema.
This parameter corresponds to the sampleRefreshIntervalSecs mongosqld option.
spec.projectRef.name
Type: string
Conditional
Name of the project to which the deployment belongs. You must specify an existing
AtlasProject
Custom Resource. This parameter applies only to deployments that belong to projects managed by the same instance Atlas Kubernetes Operator.For deployments that belong to projects managed by either:
a different instance of Atlas Kubernetes Operator
tooling other than Atlas Kubernetes Operator
use
spec.externalProjectRef.name
.
spec.serverlessSpec
Type: array
Conditional
List that contains the serverless instance parameters from the API. For a full list of available parameters, see the Atlas Serverless Instances API.
Important
You must specify
spec.deploymentSpec
orspec.serverlessSpec
in your configuration.
spec.serverlessSpec.privateEndpoints
Type: array
Optional
List that contains the private endpoint configurations for the serverless instance.
spec.serverlessSpec.providerSettings
Type: Object
Conditional
Configuration that specifies the settings for the provisioned hosts on which MongoDB runs. The available options are specific to the cloud service provider. To learn more, see the AWS, GCP, and Azure serverless instance configuration options.
If you want to create or update a serverless instance, you must specify this setting.
Important
The following settings are deprecated and will be removed in a future release:
spec.serverlessSpec.providerSettings.DiskIOPS
spec.serverlessSpec.providerSettings.DiskTypeName
spec.serverlessSpec.providerSettings.EncryptEBSVolume
spec.serverlessSpec.providerSettings.InstanceSizeName
spec.serverlessSpec.providerSettings.VolumeType
spec.serverlessSpec.providerSettings.AutoScaling
Providing values for any of these settings has no effect.
spec.serverlessSpec.providerSettings.providerName
Type: string
Conditional
Cloud service provider on which Atlas provisions the host for a serverless instance.
Atlas accepts the following values:
AWSAmazon AWSGCPGoogle Cloud PlatformAZUREMicrosoft Azure
spec.serverlessSpec.providerSettings.regionName
Type: string
Conditional
Physical location of your MongoDB serverless instance. The region you choose can affect network latency for clients accessing your databases.
For a complete list of region name values, refer to the cloud provider reference pages:
spec.serverlessSpec.tags
Type: array
Optional
List that contains tags (key-value pairs) to better understand, organize, and identify your database deployments. To learn more, see Tags on Clusters.
status.connectionStrings
Type: array
Required
List that contains the connection URLs for accessing the cluster. This parameter appears after you create or update a cluster.
Note
You can't use a connection URL directly. Atlas clusters require authentication. You must create at least one
AtlasDatabaseUser
Custom Resource before the application in your Kubernetes cluster can connect to the Atlas cluster. Atlas Kubernetes Operator creates a special secret for each cluster and database user combination in the project. The application in your Kubernetes cluster can use this secret to connect to the Atlas cluster. Thespec.scopes
parameter in theAtlasDatabaseUser
custom resource restricts the clusters that create the database user.
For the configuration parameters available for a cluster from the API, see the Atlas Clusters API.
Note
The following parameters are deprecated in the Atlas API and Atlas Kubernetes Operator does not support them:
replicationSpec
replicationFactor