From 3372d3e8f03a277042df870423afdd9e20b28c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20S=C3=A1nchez?= Date: Thu, 11 Sep 2025 12:49:18 -0600 Subject: [PATCH 1/3] DOCSP-53419-adds Cluster CFN Readme and examples --- cfn-resources/cluster/README.md | 81 ++++++++++++++++++++++++++++++--- examples/cluster/README.md | 2 +- 2 files changed, 76 insertions(+), 7 deletions(-) diff --git a/cfn-resources/cluster/README.md b/cfn-resources/cluster/README.md index e30056600..da22d33e4 100644 --- a/cfn-resources/cluster/README.md +++ b/cfn-resources/cluster/README.md @@ -1,18 +1,87 @@ -# MongoDB::Atlas::Cluster +# MongoDB::Atlas::Cluster CFN resource ## Description +Provides a resource for managing [Clusters](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-clusters) in AWS Cloud Formation. The resource +lets you create, edit, and delete clusters. The resource requires your Project +ID to perform these actions. -Resource for managing [Clusters](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-clusters). ## Requirements -Set up an AWS profile to securely give CloudFormation access to your Atlas credentials. -For instructions on setting up a profile, [see here](/README.md#mongodb-atlas-api-keys-credential-management). +To securely give CloudFormation access to your Atlas credentials, you must +set up an [AWS Profile](/README.md#mongodb-atlas-api-keys-credential-management). + ## Attributes and Parameters -See the [resource docs](docs/README.md). +* `AdvancedSettings` - processArgs +Advanced configuration details to add for one cluster in the specified project. + +* `BackupEnabled` - Boolean +Flag that indicates whether the cluster can perform backups. If set to true, the cluster can perform backups. You must set this value to true for NVMe clusters. Backup uses Cloud Backups for dedicated clusters and Shared Cluster Backups for tenant clusters. If set to false, the cluster doesn't use backups. + + +* `BiConnector` - BiConnector +Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster. + +* `ClusterType` - String +Configuration of nodes that comprise the cluster. + +* `ConnectionStrings` - connectionStrings +Collection of Uniform Resource Locators that point to the MongoDB database. + + +* `DiskSizeGB` - Double + Storage capacity that the host's root volume possesses expressed in gigabytes. Increase this number to add capacity. MongoDB Cloud requires this parameter if you set replicationSpecs. If you specify a disk size below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value. The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier. + +* `EncryptionAtRestProvider` - String +Cloud service provider that manages your customer keys to provide an additional layer of encryption at rest for the cluster. To enable customer key management for encryption at rest, the cluster replicationSpecs[n].regionConfigs[m].{type}Specs.instanceSize setting must be M10 or higher and "backupEnabled" : false or omitted entirely. - Allowed Values: `AWS` | `GCP` | `AZURE` | `NONE` + +* `GlobalClusterSelfManagedSharding` - Optional - Boolean - Requires replacement +Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (GEOSHARDED). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more info here. + +* `Profile` - String - Requires replacement +Profile used to provide credentials information, (a secret with the cfn/atlas/profile/{Profile}, is required), if not provided default is used + + +* `ProjectId` - String - Requires replacement +Unique identifier of the project the cluster belongs to. + + +* `Labels` - Array +Collection of key-value pairs between 1 to 255 characters in length that tag and categorize the cluster. The MongoDB Cloud console doesn't display your labels. + + +* `MongoDBMajorVersion` - String +Major MongoDB version of the cluster. MongoDB Cloud deploys the cluster with the latest stable release of the specified version. + + +* `Name` - String - Requires replacement +Human-readable label that identifies the advanced cluster. + +* `Paused` - Boolean +Flag that indicates whether the cluster is paused or not. + + +* `PitEnabled` - Boolean +Flag that indicates whether the cluster uses continuous cloud backups. + +* `ReplicationSpecs` - Array +List of settings that configure your cluster regions. For Global Clusters, each object in the array represents a zone where your clusters nodes deploy. For non-Global replica sets and sharded clusters, this array has one object representing where your clusters nodes deploy. + +* `RootCertType` - String +Root Certificate Authority that MongoDB Cloud cluster uses. MongoDB Cloud supports Internet Security Research Group. + +* `VersionReleaseSystem` - String +Method by which the cluster maintains the MongoDB versions. If value is CONTINUOUS, you must not specify mongoDBMajorVersion + +* `TerminationProtectionEnabled` - Boolean +Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster. + +* `Tags` - Array +List of settings that configure your cluster regions. For Global Clusters, each object in the array represents a zone where your clusters nodes deploy. For non-Global replica sets and sharded clusters, this array has one object representing where your clusters nodes deploy. + ## Cloudformation Examples -See the examples [CFN Template](/examples/cluster/cluster.json) for example resource. \ No newline at end of file +See the examples [CFN Template](/examples/cluster/README.md) for example resource. \ No newline at end of file diff --git a/examples/cluster/README.md b/examples/cluster/README.md index 822cd3c56..743b34cf6 100644 --- a/examples/cluster/README.md +++ b/examples/cluster/README.md @@ -9,7 +9,7 @@ Step c: Select and activate Enter the RoleArn that is created in step 1. - Cluster Resource is ready to use. + Your cluster Resource is ready to use. ## Step 2: Create template using [cluster.json](project-cluster.json) Note: Make sure you are providing appropriate vales for From 24c824d3d68e867f9058c829e8d2b7363b148088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20S=C3=A1nchez?= Date: Fri, 12 Sep 2025 16:00:08 -0600 Subject: [PATCH 2/3] Suggestions applied --- cfn-resources/cluster/README.md | 82 ++++++--------------------------- 1 file changed, 14 insertions(+), 68 deletions(-) diff --git a/cfn-resources/cluster/README.md b/cfn-resources/cluster/README.md index da22d33e4..aa524a050 100644 --- a/cfn-resources/cluster/README.md +++ b/cfn-resources/cluster/README.md @@ -5,83 +5,29 @@ Provides a resource for managing [Clusters](https://www.mongodb.com/docs/api/doc lets you create, edit, and delete clusters. The resource requires your Project ID to perform these actions. +*Important:* `MongoDB::Atlas::Cluster` supports Flex Clusters, and all future +updates for creating and managing Flex Clusters will be exclusively available +through this resource. -## Requirements - -To securely give CloudFormation access to your Atlas credentials, you must -set up an [AWS Profile](/README.md#mongodb-atlas-api-keys-credential-management). - - -## Attributes and Parameters - -* `AdvancedSettings` - processArgs -Advanced configuration details to add for one cluster in the specified project. - -* `BackupEnabled` - Boolean -Flag that indicates whether the cluster can perform backups. If set to true, the cluster can perform backups. You must set this value to true for NVMe clusters. Backup uses Cloud Backups for dedicated clusters and Shared Cluster Backups for tenant clusters. If set to false, the cluster doesn't use backups. - - -* `BiConnector` - BiConnector -Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster. - -* `ClusterType` - String -Configuration of nodes that comprise the cluster. - -* `ConnectionStrings` - connectionStrings -Collection of Uniform Resource Locators that point to the MongoDB database. - - -* `DiskSizeGB` - Double - Storage capacity that the host's root volume possesses expressed in gigabytes. Increase this number to add capacity. MongoDB Cloud requires this parameter if you set replicationSpecs. If you specify a disk size below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value. The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier. - -* `EncryptionAtRestProvider` - String -Cloud service provider that manages your customer keys to provide an additional layer of encryption at rest for the cluster. To enable customer key management for encryption at rest, the cluster replicationSpecs[n].regionConfigs[m].{type}Specs.instanceSize setting must be M10 or higher and "backupEnabled" : false or omitted entirely. - Allowed Values: `AWS` | `GCP` | `AZURE` | `NONE` +*Important:* We recommend using `MongoDB::Atlas::Cluster` to create and manage +Flex clusters instead of the `MongoDB::Atlas::FlexCluster` as future upgrades +will only be available through this resource. -* `GlobalClusterSelfManagedSharding` - Optional - Boolean - Requires replacement -Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (GEOSHARDED). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more info here. +*Important:* Cluster upgrades to and from Flex Clusters are currently +unavailable but are planned for future development. -* `Profile` - String - Requires replacement -Profile used to provide credentials information, (a secret with the cfn/atlas/profile/{Profile}, is required), if not provided default is used -* `ProjectId` - String - Requires replacement -Unique identifier of the project the cluster belongs to. - - -* `Labels` - Array -Collection of key-value pairs between 1 to 255 characters in length that tag and categorize the cluster. The MongoDB Cloud console doesn't display your labels. - - -* `MongoDBMajorVersion` - String -Major MongoDB version of the cluster. MongoDB Cloud deploys the cluster with the latest stable release of the specified version. - - -* `Name` - String - Requires replacement -Human-readable label that identifies the advanced cluster. - -* `Paused` - Boolean -Flag that indicates whether the cluster is paused or not. - - -* `PitEnabled` - Boolean -Flag that indicates whether the cluster uses continuous cloud backups. - -* `ReplicationSpecs` - Array -List of settings that configure your cluster regions. For Global Clusters, each object in the array represents a zone where your clusters nodes deploy. For non-Global replica sets and sharded clusters, this array has one object representing where your clusters nodes deploy. - -* `RootCertType` - String -Root Certificate Authority that MongoDB Cloud cluster uses. MongoDB Cloud supports Internet Security Research Group. +## Requirements -* `VersionReleaseSystem` - String -Method by which the cluster maintains the MongoDB versions. If value is CONTINUOUS, you must not specify mongoDBMajorVersion +To securely give CloudFormation access to your Atlas credentials, you must +set up an [AWS Profile](/README.md#mongodb-atlas-api-keys-credential-management). -* `TerminationProtectionEnabled` - Boolean -Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster. -* `Tags` - Array -List of settings that configure your cluster regions. For Global Clusters, each object in the array represents a zone where your clusters nodes deploy. For non-Global replica sets and sharded clusters, this array has one object representing where your clusters nodes deploy. +## Attributes and Parameters +For futher information, see the [resource docs](docs/README.md) section. ## Cloudformation Examples -See the examples [CFN Template](/examples/cluster/README.md) for example resource. \ No newline at end of file +For examples, see the [CFN Template](/examples/cluster/cluster.json) example. \ No newline at end of file From 10531e2f712bcfb6480ab51d4d091b3975778432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20S=C3=A1nchez?= Date: Mon, 15 Sep 2025 11:14:55 -0600 Subject: [PATCH 3/3] Update cfn-resources/cluster/README.md Co-authored-by: Leo Antoli <430982+lantoli@users.noreply.github.com> --- cfn-resources/cluster/README.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/cfn-resources/cluster/README.md b/cfn-resources/cluster/README.md index aa524a050..e9698f31e 100644 --- a/cfn-resources/cluster/README.md +++ b/cfn-resources/cluster/README.md @@ -5,16 +5,9 @@ Provides a resource for managing [Clusters](https://www.mongodb.com/docs/api/doc lets you create, edit, and delete clusters. The resource requires your Project ID to perform these actions. -*Important:* `MongoDB::Atlas::Cluster` supports Flex Clusters, and all future -updates for creating and managing Flex Clusters will be exclusively available -through this resource. +*Note:* Upgrades to or from flex clusters are currently unavailable. We expect to support upgrades to or from flex clusters in the foreseeable future. -*Important:* We recommend using `MongoDB::Atlas::Cluster` to create and manage -Flex clusters instead of the `MongoDB::Atlas::FlexCluster` as future upgrades -will only be available through this resource. - -*Important:* Cluster upgrades to and from Flex Clusters are currently -unavailable but are planned for future development. +*Important:* Use the `MongoDB::Atlas::Cluster` resource instead of the `MongoDB::Atlas::FlexCluster` resource to create and manage flex clusters. `MongoDB::Atlas::Cluster` supports flex clusters and future upgrades will only be available through this resource.