/awscdk-resources-mongodbatlas

MongoDB Atlas AWS CDK Resources

Primary LanguageTypeScriptApache License 2.0Apache-2.0

MongoDB Atlas AWS CDK Resources

Code Health Package CDK npm version PyPI version NuGet version Maven Central Go Reference

View on Construct Hub

Use MongoDB Atlas AWS CDK (or Cloud Development Kit) constructs to manage MongoDB Atlas. The AWS CDK is a framework for defining infrastructure as code (IaC). It allows developers to write code in their preferred programming language, such as TypeScript for example, to define and deploy infrastructure. AWS CDK gets synthesized down into AWS CloudFormation templates at deployment so users no longer have to write or maintain YAML/JSON based CloudFormation templates.

Available Packages

NPM

The npm package is available at awscdk-resources-mongodbatlas

npm i awscdk-resources-mongodbatlas

PyPI

The PyPI package is available at awscdk-resources-mongodbatlas

pip install awscdk-resources-mongodbatlas

Nuget

The Nuget package is available at MongoDB.AWSCDKResourcesMongoDBAtlas

dotnet add package MongoDB.AWSCDKResourcesMongoDBAtlas --version 1.0.0

Maven

The Maven package is available at awscdk-resources-mongodbatlas

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>awscdk-resources-mongodbatlas</artifactId>
    <version>1.0.0</version>
</dependency>

Go

The go package is generated into the github.com/mongodb/awscdk-resources-mongodbatlas-go package.

go get github.com/mongodb/awscdk-resources-mongodbatlas-go/awscdkresourcesmongodbatlas

Available Constructors

MongoDB Atlas AWS CDK Resources provides L1, L2 and L3 CDK constructors. Please, have a look at README.md for a full lists of constructors and examples.

Getting Started

See the cdk examples for how to setup prerequisites & get started with your first cluster, using our AWS CDK sample code. We also provide a quick guide on How to Deploy MongoDB Atlas with AWS CDK in TypeScript.

Support, Bugs, Feature Requests

Feature requests can be submitted at feedback.mongodb.com - just select "Atlas CloudFormation Resources" as the category or vote for an already suggested feature.

Support for the MongoDB Atlas Resource Provider for CloudFormation is provided under MongoDB Atlas support plans, starting with Developer. Please submit support questions within the Atlas UI. In addition, support questions submitted under the Issues section of this repo are also being monitored. Bugs should be filed under the Issues section of this repo.

MongoDB Atlas API Keys Credential Management

Atlas API keys Configuration are required for both CloudFormation and CDK resources, and this Atlas API key pair are provided as input by the use of a Profile

AWS CloudFormation limits Third Parties from using non-AWS API Keys as either hardcoded secrets in CloudFormation templates or via CDK, hence we now require all the users store MongoDB Atlas API Keys via AWS Secrets Manager.

NOTE: the process for configuring the PROFILE is the same and is required both for CloudFormation and CDK

1. Configure your MongoDB Atlas API Keys

You'll need to generate an API key pair (public and private keys) for your Atlas organization and configure them to grant CloudFormation access to your Atlas project. Refer to the Atlas documentation for detailed instructions.

2. Configure your Profile

To use Atlas CloudFormation resources, you must configure a "profile" with your API keys using AWS Secrets Manager.

The secret should follow this format:

SecretName: cfn/atlas/profile/{ProfileName}
SecretValue: {"PublicKey": "YourPublicKey", "PrivateKey": "YourPrivateKey"}

To create a new secret for a default profile, use the PROFILE SECRET TEMPLATE file provided in this repository.

Here are some examples of how to use this template:

example 1:

  ProfileName: default
  SecretName: cfn/atlas/profile/default
  SecretValue: {"PublicKey": "YourPublicKey", "PrivateKey": "YourPrivateKey"}

example 2:

  ProfileName: testProfile
  SecretName: cfn/atlas/profile/testProfile
  SecretValue: {"PublicKey": "YourPublicKey", "PrivateKey": "YourPrivateKey"}

Contributing

See our CONTRIBUTING.md guide.