Skip to content

Commit

Permalink
Pre-Release staging v1.4.0 (#763)
Browse files Browse the repository at this point in the history
* INTMDB-310:  Potential bug when disabling auditing (#705)

* Add support for proper destroy of Auditing settings

* Remove whitespace

* Add support for schema migration (#717)

* Correct import function for snapshot export bucket (#715)

* INTMDB-311: Feature Add: Prometheus and Microsoft Team to the Third Party Integration Settings (#706)

* INTMDB-311: Feature Add: Promethus and Microsoft Team to the Third Party Integration Settings

* Update documentation add additional schema values

* Map to temporary branch for testing

* Fix Lint

* Add boolean field for Prometheus enabled

* Remove Name from Teams integration

* Remove extra Name field from Teams integration type add examples

* Terraform fmt

* Correct version

* Fix lint issue

* terraform fmt example

* Update third party integration resource enabled to boolean

* Rename example file

* Simplify example to integration only Doc updates password optional field

* INTMDB-328: Update resource & data source to address change in go SDK that impacts resource_mongodbatlas_x509_authentication_database_user (#738)

* Chore(deps): Bump actions/setup-go from 2 to 3 (#710)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2 to 3.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Chore(deps): Bump github.com/gruntwork-io/terratest (#711)

Bumps [github.com/gruntwork-io/terratest](https://github.com/gruntwork-io/terratest) from 0.40.6 to 0.40.7.
- [Release notes](https://github.com/gruntwork-io/terratest/releases)
- [Commits](gruntwork-io/terratest@v0.40.6...v0.40.7)

---
updated-dependencies:
- dependency-name: github.com/gruntwork-io/terratest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Chore(deps): Bump hashicorp/setup-terraform from 1 to 2 (#719)

Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 1 to 2.
- [Release notes](https://github.com/hashicorp/setup-terraform/releases)
- [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md)
- [Commits](hashicorp/setup-terraform@v1...v2)

---
updated-dependencies:
- dependency-name: hashicorp/setup-terraform
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Chore(deps): Bump github.com/hashicorp/terraform-plugin-sdk/v2 (#720)

Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.12.0 to 2.14.0.
- [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases)
- [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md)
- [Commits](hashicorp/terraform-plugin-sdk@v2.12.0...v2.14.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Chore(deps): Bump github.com/hashicorp/terraform-plugin-sdk/v2 (#727)

Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.14.0 to 2.16.0.
- [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases)
- [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md)
- [Commits](hashicorp/terraform-plugin-sdk@v2.14.0...v2.16.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Chore(deps): Bump github.com/gruntwork-io/terratest (#726)

Bumps [github.com/gruntwork-io/terratest](https://github.com/gruntwork-io/terratest) from 0.40.7 to 0.40.8.
- [Release notes](https://github.com/gruntwork-io/terratest/releases)
- [Commits](gruntwork-io/terratest@v0.40.7...v0.40.8)

---
updated-dependencies:
- dependency-name: github.com/gruntwork-io/terratest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Chore(deps): Bump github.com/spf13/cast from 1.4.1 to 1.5.0 (#730)

Bumps [github.com/spf13/cast](https://github.com/spf13/cast) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/spf13/cast/releases)
- [Commits](spf13/cast@v1.4.1...v1.5.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/cast
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add default empty option list to fix breaking change for X509 certificates library function

* Remove empty options := matlas.ListOptions

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* INTMDB-319: Add support for parameter unordered in resource_mongodbatlas_event_trigger (#739)

* Add support for unordered realm parameter

* Make unordered optional parameter

* Update GO SDK to master

* Sync to latest SDK library version

* Update documentation for unordered parameter

* Add support for unordered to tests

* Chore(deps): Bump github.com/gruntwork-io/terratest (#744)

Bumps [github.com/gruntwork-io/terratest](https://github.com/gruntwork-io/terratest) from 0.40.10 to 0.40.12.
- [Release notes](https://github.com/gruntwork-io/terratest/releases)
- [Commits](gruntwork-io/terratest@v0.40.10...v0.40.12)

---
updated-dependencies:
- dependency-name: github.com/gruntwork-io/terratest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Chore(deps): Bump github.com/hashicorp/terraform-plugin-sdk/v2 (#743)

Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.16.0 to 2.17.0.
- [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases)
- [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md)
- [Commits](hashicorp/terraform-plugin-sdk@v2.16.0...v2.17.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Melissa Plunkett <[email protected]>

* INTMDB-321: Add support for cloud export backup to mongodbatlas_cloud_backup_schedule (#740)

* Sync to go SDK

* Correct lint error

* Lint space

* Update docs to include auto export and use_org_and_group_names_in_export_prefix

* Add link for snapshot export

* Rename to emptyStruct

* Add brackets to hyperlink

* Remove extra space

* INTMDB-313: Update the project resource with new settings (#741)

* Add support for project_settings

* Sync up SDK library latest version

* Fix lint isues

* Update projects datasource documentation

* Update docs with links

* Add additional tests for new attributes remove space in import section

* Add test for additional project settings

* INTMDB-307 Allow setting of regional mode setting on a group (#718)

* Started on private_endpoint_regional_mode data_source and resource

* Started filling out test and wrote refresh func to ensure cluster status' are all at APPLIED

* No longer reading the setting in refresh func

* Removed unused testing infrastructure

* Fixed data_source test for private endpoint regional mode

* Fixed how regional mode refresh func is consumed

* Fixed resource name on new test

* Added resource and data source to the provider, fixed other build issues

* Fixed lint errors

* Setting key for private endpoint regional mode as just the projectID

* Fixed failing test for private endpoint regional mode. Still need to add a cluster to the config

* Added assertion that cluster connection_strings are maintained properly in state

* Added example for regional mode and update delay before checking refresh func

* Checking if cluster is in the UPDATING state prior to checking against the cluster statsu

* Added dependency on regional mode for the cluster data

* Updated regional mode example to have usage documentation. Updated integration test to create more of its dependencies during the test

* Format example for aws-atlas-privatelink-regionalized

* Fixed an issue with tflint

* Update regional mode test to spin up vpc requirements

* Added documentation and updated example to have two separate private endpoints

* Updated example to have regional_mode enabled

* Updated Project ID refs in documentation to match others in example tf

* Revert "Update regional mode test to spin up vpc requirements"

This reverts commit 3f5893c.

* Fixed formatting on example tf

* Let code breathe in example atlas cluster

Co-authored-by: Andrea Angiolillo <[email protected]>

* Use proper error and log messaging, utilize diag.Errorf

* Update website/docs/r/private_endpoint_regional_mode.html.markdown

Co-authored-by: Melissa Plunkett <[email protected]>

* Update enabled description in docs to contain more of the api documentation

Co-authored-by: Melissa Plunkett <[email protected]>

* Update website/docs/r/private_endpoint_regional_mode.html.markdown

Co-authored-by: Melissa Plunkett <[email protected]>

* Link to registry docs not our github repo

Co-authored-by: Melissa Plunkett <[email protected]>

* Updated assertions in tests

* Updated example to be more current and accurate. Fixed test

* Updated private endpoint regional mode to be disabled on delete

* Made enabled properly optional for private endpoitn regional mode and made data_source test replicate actual usage

Co-authored-by: admin <[email protected]>
Co-authored-by: Andrea Angiolillo <[email protected]>
Co-authored-by: Melissa Plunkett <[email protected]>

* INTDB-301-DOC: Move Federated Docs to separate branch (#747)

* Move Federated Docs to separate branch PR

* Add docs for new datasources and updated role mappings resource

* Refactor okta_idp_id to idp_id in docs

* Add additional parameters for identity provider resource

* Removed cloud from much of the docs

* Applied group id description changes

* Addressed more suggested docs changes

* Downcased federated settings

* Make role mapping import optional add missing formatting for example

* Highlight importance of import being needed

* Changed Provides an to provides a and remove upper case on federated settings

* Update identity_provider datasource

* Missed one

* Add SHA-256

* Fix post_auth_role_grants

* Doc corrections

* remove pagination from singular role mapping

* Import needed

* Doc updates

* Update org settings resource to pull up required args

* Add import statement importance

Co-authored-by: Dosty <[email protected]>

* INTMDB-301: Feature add: Add support for managment of federated authentication configuration  (#742)

* Add support for federated settings

* Refactor for service pattern change

* Refactor options and plural singular names

* Update go SDK version

* Add initial federated website docs

* Provide examples for Federated settings

* Sync go.mod to contain breaking change SDK change

* Fix examples for lint error sync SDK to master

* Add menu items for federation settings and upgrade guides

* Remove Federated Docs from PR

* PR Review updates

* Add support for datasource tests

* Fix lint fmt

* Add identity_provider_id variable

* Move identity_provider_id

* Add role mappings datasource test

* Add additional tests for federated resources

* Lint check

* Add additional datasources and tests

* Remove unused function

* Add support for role mappings and update tests and examples

* Fix role mapping import to fit new style of parameters

* Remove commented code

* go mod tidy

* Remove extra parameter user_conflicts

* Add missing parameters and refactor name of variables

* Update example

* Update mongodbatlas/resource_mongodbatlas_federated_settings_identity_provider.go

Co-authored-by: Andrea Angiolillo <[email protected]>

* go fmt

* Add support for import tests

* Add federated settings env variables to README remove upgrade guide

* Remove cloud prefix from federated examples and resources idp_id to okta_idp_id

* Add new sort to role mapping

* Add README for federated example

* Refactor alias mongodbatlas to matlas dead code removal import spaces

Co-authored-by: Andrea Angiolillo <[email protected]>

* Update CHANGELOG.md

* Update CHANGELOG.md

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Melissa Plunkett <[email protected]>
Co-authored-by: Dosty Everts <[email protected]>
Co-authored-by: Andrea Angiolillo <[email protected]>
  • Loading branch information
5 people authored Jun 30, 2022
1 parent 16c9ea8 commit b4a1650
Show file tree
Hide file tree
Showing 101 changed files with 6,015 additions and 58 deletions.
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,30 @@
# Changelog

## [v1.4.0-pre.1](https://github.com/mongodb/terraform-provider-mongodbatlas/tree/v1.4.0-pre.1) (2022-06-29)
**Closed issues:**

Fix for Add support for cloud export backup to mongodbatlas_cloud_backup_schedule (#740)
Feature Add: Update the project resource with new settings (#741)
Feature Add: Feature add: Add support for management of federated authentication configuration
Feature Add: Add Regionalized Private Endpoint Settings
Fix for Potential bug when disabling auditing #705
Feature Add: Prometheus and Microsoft Team to the Third Party Integration Settings #706
Fix for Correct import function for snapshot export bucket #714 #715
Fix for Add support for schema migration #717
Feature Add: Prometheus and Microsoft Team to the Third Party Integration Settings
Fix for Cannot import export bucket - bad state id encoding #708
Error missing expected { when updating the provider #697

**Merged pull requests:**

INTMDB-321: Add support for cloud export backup to mongodbatlas_cloud_backup_schedule (#740)
INTMDB-313: Update the project resource with new settings (#741)
INTMDB-301: Feature add: Add support for management of federated authentication configuration
INTMDB-307: Add Regionalized Private Endpoint Settings
INTMDB-310: Potential bug when disabling auditing #705
INTMDB-311: Feature Add: Prometheus and Microsoft Team to the Third Party Integration Settings #706
INTMDB-315: Correct import function for snapshot export bucket #714 #715
INTMDB-309: Add support for schema migration #717
## [v1.3.1-pre.1](https://github.com/mongodb/terraform-provider-mongodbatlas/tree/v1.3.1-pre.1) (2022-02-23)

**Closed issues:**
Expand Down
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,19 @@ $ export MONGODB_ATLAS_API_KEYS_IDS=<API_KEYS_IDS>
export SKIP_TEST_EXTERNAL_CREDENTIALS=TRUE
```

- For `Federated Settings` resource configuration:
```sh
$ export MONGODB_ATLAS_FEDERATION_SETTINGS_ID=<YOUR_FEDERATION_SETTINGS_ID>
$ export ONGODB_ATLAS_FEDERATED_ORG_ID=<YOUR_FEDERATED_ORG_ID>
$ export MONGODB_ATLAS_FEDERATED_PROJECT_ID=<YOUR_VPC_FEDERATED_PROJECT_ID>
$ export MONGODB_ATLAS_FEDERATED_GROUP_ID=<YOUR_FEDERATED_GROUP_ID>
$ export MONGODB_ATLAS_FEDERATED_ROLE_MAPPING_ID=<YOUR_FEDERATED_ROLE_MAPPING_ID>
$ export MONGODB_ATLAS_FEDERATED_OKTA_IDP_ID=<YOUR_FEDERATED_OKTA_IDP_ID>
$ export MONGODB_ATLAS_FEDERATED_SSO_URL=<YOUR_FEDERATED_SSO_URL>
$ export MONGODB_ATLAS_FEDERATED_ISSUER_URI=<YOUR_FEDERATED_ISSUER_URI>
```
~> **Notice:** For more information about the Federation configuration resource, see: https://www.mongodb.com/docs/atlas/reference/api/federation-configuration/

##### AWS env variables

- For `Network Peering` resource configuration:
Expand Down
59 changes: 59 additions & 0 deletions examples/Federated-Settings/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Example - Okta and MongoDB Atlas Federated Settings Configuration

This project aims to provide an example of using Okta and MongoDB Atlas together.


## Dependencies

* Terraform v0.13
* Okta account
* A MongoDB Atlas account

```
Terraform v0.13.0
+ provider registry.terraform.io/terraform-providers/mongodbatlas v1.4.0
```

## Usage

**1\. Ensure your Okta/Mongodb Atlas Federal settings configuration is set up to have a working set of organizations, verified domains, and identity providers.**

**2\. TFVARS**

Now create **terraform.tfvars** file with all the variable values and make sure **not to commit it**.

**3\. Review the Terraform plan. **

Execute the below command and ensure you are happy with the plan.

``` bash
$ terraform plan
```
This project currently does the below deployments:

- MongoDB Atlas Federated Settings Organizational Role Mapping
- MongoDB Atlas Federated Settings Organizational Identity Provider
- MongoDB Atlas Federated Settings Organizational configuration

**4\. Execute the Terraform import for 2 resources that do not support create.**
``` bash
$ terraform import mongodbatlas_federated_settings_identity_provider.identity_provider 6287a67f7f7f7f7f441c6c-0oad7f7f7f7fk1297
terraform import mongodbatlas_federated_settings_org_config.org_connections_import 6287a67f7f7f7f7f441c6c-627a96837f7f7f7f7e306f14

```

**5\. Execute the Terraform apply.**

Now execute the plan to provision the Federated settings resources.

``` bash
$ terraform apply
```

**6\. Destroy the resources.**

Once you are finished your testing, ensure you destroy the resources to avoid unnecessary Atlas charges.

``` bash
$ terraform destroy
```
50 changes: 50 additions & 0 deletions examples/Federated-Settings/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
data "mongodbatlas_federated_settings" "federated_settings" {
org_id = var.org_id
}
data "mongodbatlas_federated_settings_identity_providers" "identity_provider" {
federation_settings_id = data.mongodbatlas_federated_settings.federated_settings.id
}

data "mongodbatlas_federated_settings_org_configs" "org_configs_ds" {
federation_settings_id = data.mongodbatlas_federated_settings.federated_settings.id
}

data "mongodbatlas_federated_settings_org_role_mappings" "org_role_mapping" {
federation_settings_id = data.mongodbatlas_federated_settings.federated_settings.id
org_id = var.org_id
}
resource "mongodbatlas_federated_settings_org_role_mapping" "org_role_mapping" {
federation_settings_id = data.mongodbatlas_federated_settings.federated_settings.id
org_id = var.org_id
external_group_name = "newgroup"

role_assignments {
group_id = var.group_id
roles = ["GROUP_OWNER", "GROUP_DATA_ACCESS_ADMIN", "GROUP_SEARCH_INDEX_EDITOR", "GROUP_DATA_ACCESS_READ_ONLY"]
}

role_assignments {
org_id = var.org_id
roles = ["ORG_OWNER", "ORG_MEMBER"]
}

}
resource "mongodbatlas_federated_settings_org_config" "org_connections_import" {
federation_settings_id = data.mongodbatlas_federated_settings.federated_settings.id
org_id = var.org_id
identity_provider_id = var.identity_provider_id
domain_restriction_enabled = false
domain_allow_list = ["yourdomain.com"]
}

resource "mongodbatlas_federated_settings_identity_provider" "identity_provider" {
federation_settings_id = data.mongodbatlas_federated_settings.federated_settings.id
name = var.name
associated_domains = ["yourdomain.com"]
sso_debug_enabled = true
status = "ACTIVE"
sso_url = "https://mysso.oktapreview.com/app/mysso_terrafssotesdev_1/exk1f7f7f7fk5wp50h8/sso/saml"
issuer_uri = "http://www.okta.com/exk1f716hf7f750h8"
request_binding = "HTTP-POST"
response_signature_algorithm = "SHA-256"
}
15 changes: 15 additions & 0 deletions examples/Federated-Settings/output.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
output "federated_settings_ds" {
value = data.mongodbatlas_federated_settings.federated_settings.id
}

output "identity_provider" {
value = data.mongodbatlas_federated_settings_identity_providers.identity_provider.id
}

output "org_configs_ds" {
value = data.mongodbatlas_federated_settings_org_configs.org_configs_ds.id
}

output "org_role_mapping" {
value = data.mongodbatlas_federated_settings_org_role_mappings.org_role_mapping.id
}
4 changes: 4 additions & 0 deletions examples/Federated-Settings/provider.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
provider "mongodbatlas" {
public_key = var.public_key
private_key = var.private_key
}
28 changes: 28 additions & 0 deletions examples/Federated-Settings/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
variable "public_key" {
type = string
description = "Public Programmatic API key to authenticate to Atlas"
}
variable "private_key" {
type = string
description = "Private Programmatic API key to authenticate to Atlas"
}
variable "org_id" {
type = string
description = "MongoDB Organization ID"
}
variable "group_id" {
type = string
description = "MongoDB Group ID"
}

variable "name" {
type = string
description = "MongoDB Identity Provider Name"
default = "mongodb_federation_test"
}

variable "identity_provider_id" {
type = string
description = "MongoDB Identity Provider ID"
default = "5754gdhgd758"
}
11 changes: 11 additions & 0 deletions examples/Federated-Settings/versions.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
}
mongodbatlas = {
source = "mongodb/mongodbatlas"
}
}
required_version = ">= 0.13"
}
5 changes: 5 additions & 0 deletions examples/MongoDB-Atlas-Third-Party-Integration/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
iatlaspl.code-workspace
terraform.tfvars
.terraform/
*.tfstate*

68 changes: 68 additions & 0 deletions examples/MongoDB-Atlas-Third-Party-Integration/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Example - A basic example configuring MongoDB Atlas Third Party Integrations and Terraform

This project aims to provide a very straight-forward example of setting up Terraform with MongoDB Atlas. This will create the following resources in MongoDB Atlas:

- Atlas Project
- Microst Teams Third Party Integration
- Prometheus Third Party Integration


You can refer to the MongoDB Atlas documentation to know about the parameters that support Third Party Integrations.

[Prometheus](https://www.mongodb.com/docs/atlas/tutorial/prometheus-integration/#std-label-httpsd-prometheus-config)

[Microsoft Teams](https://www.mongodb.com/docs/atlas/tutorial/integrate-msft-teams/)

## Dependencies

* Terraform v0.13 or greater
* A MongoDB Atlas account
* provider.mongodbatlas: version = "~> 0.9.1"

## Usage

**1\. Ensure your MongoDB Atlas credentials are set up.**

This can be done using environment variables:

```bash
export MONGODB_ATLAS_PUBLIC_KEY="xxxx"
export MONGODB_ATLAS_PRIVATE_KEY="xxxx"
```

... or follow as in the `variables.tf` file and create **terraform.tfvars** file with all the variable values and make sure **not to commit it**.


> **IMPORTANT** Hard-coding your MongoDB Atlas programmatic API key pair into a Terraform configuration is not recommended. Consider the risks, especially the inadvertent submission of a configuration file containing secrets to a public repository.

**2\. Review the Terraform plan.**

Execute the below command and ensure you are happy with the plan.

``` bash
$ terraform plan
```

This project currently creates the below deployments:

- Atlas Project
- Microst Teams Third Party Integration
- Prometheus Third Party Integration

**3\. Execute the Terraform apply.**

Now execute the plan to provision the MongoDB Atlas resources.

``` bash
$ terraform apply
```

**4\. Destroy the resources.**

Once you are finished your testing, ensure you destroy the resources to avoid unnecessary charges.

``` bash
$ terraform destroy
```

7 changes: 7 additions & 0 deletions examples/MongoDB-Atlas-Third-Party-Integration/project.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
resource "mongodbatlas_project" "project" {
name = var.project_name
org_id = var.org_id
}
output "project_name" {
value = mongodbatlas_project.project.name
}
4 changes: 4 additions & 0 deletions examples/MongoDB-Atlas-Third-Party-Integration/provider.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
provider "mongodbatlas" {
public_key = var.public_key
private_key = var.private_key
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
resource "mongodbatlas_third_party_integration" "test_msteams" {
project_id = mongodbatlas_project.project.id
type = "MICROSOFT_TEAMS"
microsoft_teams_webhook_url = var.microsoft_teams_webhook_url
}

resource "mongodbatlas_third_party_integration" "test_prometheus" {
project_id = mongodbatlas_project.project.id
type = "PROMETHEUS"
user_name = var.user_name
password = var.password
service_discovery = "file"
scheme = "https"
enabled = true
}
31 changes: 31 additions & 0 deletions examples/MongoDB-Atlas-Third-Party-Integration/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
variable "public_key" {
type = string
description = "Public Programmatic API key to authenticate to Atlas"
}
variable "private_key" {
type = string
description = "Private Programmatic API key to authenticate to Atlas"
}
variable "org_id" {
type = string
description = "MongoDB Organization ID"
}
variable "project_name" {
type = string
description = "The MongoDB Atlas Project Name"
}
variable "user_name" {
type = string
description = "The Prometheus User Name"
default = "puser"
}
variable "password" {
type = string
description = "The Prometheus Password"
default = "ppassword"
}
variable "microsoft_teams_webhook_url" {
type = string
description = "The Microsoft Teams Webhook URL"
default = "https://yourcompany.webhook.office.com/webhookb2/zzz@yyy/IncomingWebhook/xyz"
}
8 changes: 8 additions & 0 deletions examples/MongoDB-Atlas-Third-Party-Integration/versions.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
terraform {
required_providers {
mongodbatlas = {
source = "mongodb/mongodbatlas"
}
}
required_version = ">= 0.13"
}
Loading

0 comments on commit b4a1650

Please sign in to comment.