Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes Operator
/

AtlasDeployment Custom Resource

On this page

  • Examples
  • Status Example
  • Configuration Example
  • Additional Options Example
  • Serverless Instance Example
  • Multi-Region Cluster Example
  • Multiple Cloud Service Providers Example
  • Search Index Example
  • Search Nodes Example
  • Parameters

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 replaces advancedDeploymentSpec in the AtlasDeployment custom resource. You must update your AtlasDeployment custom resource as follows:

    • If you use advancedDeploymentSpec, rename it to deploymentSpec. You don't need to change any formatting.

    • If you used deploymentSpec prior to Atlas Kubernetes Operator 2.0, rewrite your AtlasDeployment 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.

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

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

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

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

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

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

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

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

This section describes some of the key AtlasDeployment custom resource parameters available.

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 the AtlasBackupSchedule 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 parent atlasProject

  • The default global secret, if spec.connectionSecretRef.name is undefined for the parent atlasProject

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 or spec.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?

Condition
Necessity
Required
You are deploying Global Clusters.
Required
You are deploying non-Global replica sets and sharded clusters.
Optional

Atlas accepts:

Value
Cluster Type
REPLICASET
replica set
SHARDED
sharded cluster
GEOSHARDED
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, see spec.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:

Value
Cloud Provider
AWS
Amazon AWS
GCP
Google Cloud
AZURE
Microsoft Azure
NONE
No 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:

Condition
Result
You omit this parameter and you omit the spec.deploymentSpec.versionReleaseSystem parameter.
Atlas deploys a cluster that runs MongoDB 7.0.
You omit this parameter and you set the spec.deploymentSpec.versionReleaseSystem parameter to LTS.
Atlas deploys a cluster that runs MongoDB 7.0.
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 the spec.deploymentSpec.versionReleaseSystem parameter to CONTINUOUS.
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 or spec.deploymentSpec.replicationSpecs.

When should you use this parameter?

Condition
Necessity
Values
You are deploying Global Clusters.
Required
Each object in the array represents a zone where Atlas deploys your cluster's nodes.
You are deploying non-Global replica sets and sharded clusters.
Optional
This array has one object representing where Atlas deploys your cluster's nodes.

If you specify this parameter, you must also specify spec.deploymentSpec.clusterType and spec.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 through 50, inclusive. The default value is 1.

  • If you specify a value of 1 and you set spec.deploymentSpec.clusterType to SHARDED, Atlas deploys a single-shard sharded cluster.

  • If you specify 1 and you set spec.deploymentSpec.clusterType to REPLICASET, 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.

    Tip

    See also:

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's mongos. 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 an analyticsSpecs object, electableSpecs object, or readOnlySpecs object.

  • M0, M2, or M5 clusters require only electableSpecs.

  • Dedicated clusters can specify any of these specifications, but must have at least one electableSpecs object within a replicationSpec.

  • 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.

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 set spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled to true.

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 to M30, Atlas automatically scales the current instance size to M30.

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 set spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled to true.

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 to M30, Atlas automatically scales the current instance size to M30.

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 and spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize with autoscaling enabled. To learn more, see spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSize and spec.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, or M5 cluster to an M10+ cluster. However, you can't upgrade an M0, M2, or M5 cluster to another free or shared cluster. For example, you can't upgrade an M0 cluster to an M5 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 all replicationSpecs.regionConfigs objects must total 3, 5, or 7.

You can't create electable nodes if spec.deploymentSpec.replicationSpecs.regionConfigs.priority is 0.

spec.deploymentSpec.replicationSpecs.regionConfigs.priority

Type: integer

Required

Precedence is given to this region when a primary election occurs.

If your regionConfigs has only readOnlySpecs, analyticsSpecs, or both, set this value to 0.

If you have multiple regionConfigs objects (your cluster is multi-region or multi-cloud), they must have priorities in descending order. The highest priority is 7.

Example

Set your highest priority region to 7, your second-highest priority to 6, and your third-priority region to 5. If you have no electable nodes, set this value to 0.

If your region has set electableSpecs.nodeCount to 1 or higher, it must have a priority of exactly one less than another region in the replicationSpecs.regionConfigs array unless it is the primary. The highest-priority region must have a priority of 7. The lowest possible priority is 1.

The priority 7 region identifies the Preferred Region of the cluster. Atlas places the primary node in the Preferred Region. Priorities 1 through 7 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, and 5 respectively. If you added two more regions for supporting electable nodes, the priorities of those regions would be 4 and 3 respectively.

spec.deploymentSpec.replicationSpecs.regionConfigs.providerName

Type: string

Conditional

Cloud service provider on which Atlas provisions the hosts.

AWS
Amazon AWS
GCP
Google Cloud Platform
AZURE
Microsoft 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 either spec.deploymentSpec.replicationSpecs.regionConfigs.regionName or spec.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 to GEOSHARDED.

spec.deploymentSpec.searchIndexes

Type: array

Optional

An array of SearchIndex objects with fields that describe the search index. Each SearchIndex object contains the following fields:

Field
Type
Description
name
string
Human-readable label that identifies this index. Must be unique for a deployment.
DBName
string

Human-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
string
Human-readable label that identifies the collection that contains one or more Atlas Search indexes.
type
string

Type of the index. Atlas accepts the following values:

  • search

  • vectorSearch

search
object
You must include this object if type is search. Otherwise, omit it.
vectorSearch
object
You must include this object if type is vectorSearch. Otherwise, omit it.
spec.deploymentSpec.searchIndexes.search

Type: object

Optional

Field
Type
Description
synonyms
array
Rule sets that map words to their synonyms in this index
mappings
object

Index specifications for the collection's fields

Required

searchConfigurationRef
object

A 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. Each Synonym object contains the following fields:

Field
Type
Description
name
string

Human-readable label that identifies the synonym definition. Each name must be unique within the same index definition

Required

analyzer
string

Specific 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
object

Data 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

Field
Type
Description
collection
string

Human-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
boolean
Flag that indicates whether the index uses dynamic or static mappings. Required if mappings.fields is omitted.
fields
JSON/YAML
One 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

Field
Type
Description
fields
JSON/YAML

Array 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:

Field
Type
Description
nodeCount
integer
Number of search nodes in the cluster. Atlas accepts values 2 through 32, inclusive. The default number is 2.
instanceSize
string

Hardware 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 the spec.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 the spec.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 use spec.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.

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 or spec.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:

AWS
Amazon AWS
GCP
Google Cloud Platform
AZURE
Microsoft 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. The spec.scopes parameter in the AtlasDatabaseUser 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

Back

AtlasProject