Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: Updates existing documentation for mongodbatlas_encryption_at_rest resource to be auto-generated #2529

Merged
merged 2 commits into from
Aug 28, 2024

Conversation

maastha
Copy link
Collaborator

@maastha maastha commented Aug 27, 2024

Description

Updates existing documentation for mongodbatlas_encryption_at_rest resource to be auto-generated

Link to any related issue(s): CLOUDP-267669

Type of change:

  • Bug fix (non-breaking change which fixes an issue). Please, add the "bug" label to the PR.
  • New feature (non-breaking change which adds functionality). Please, add the "enhancement" label to the PR. A migration guide must be created or updated if the new feature will go in a major version.
  • Breaking change (fix or feature that would cause existing functionality to not work as expected). Please, add the "breaking change" label to the PR. A migration guide must be created or updated.
  • This change requires a documentation update
  • Documentation fix/enhancement

Required Checklist:

  • I have signed the MongoDB CLA
  • I have read the contributing guides
  • I have checked that this change does not generate any credentials and that they are NOT accidentally logged anywhere.
  • I have added tests that prove my fix is effective or that my feature works per HashiCorp requirements
  • I have added any necessary documentation (if appropriate)
  • I have run make fmt and formatted my code
  • If changes include deprecations or removals I have added appropriate changelog entries.
  • If changes include removal or addition of 3rd party GitHub actions, I updated our internal document. Reach out to the APIx Integration slack channel to get access to the internal document.

Further comments

Refer to the example in the [official github repository](https://github.com/mongodb/terraform-provider-mongodbatlas/tree/master/examples) to implement Encryption at Rest
* `enabled` - Specifies whether Encryption at Rest is enabled for an Atlas project, To disable Encryption at Rest, pass only this parameter with a value of false, When you disable Encryption at Rest, Atlas also removes the configuration details.
* `customer_master_key_id` - The AWS customer master key used to encrypt and decrypt the MongoDB master keys.
* `region` - The AWS region in which the AWS customer master key exists: CA_CENTRAL_1, US_EAST_1, US_EAST_2, US_WEST_1, US_WEST_2, SA_EAST_1
Copy link
Collaborator Author

@maastha maastha Aug 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@maastha maastha marked this pull request as ready for review August 27, 2024 20:18
@maastha maastha requested review from a team as code owners August 27, 2024 20:18
Copy link
Contributor

APIx bot: a message has been sent to Docs Slack channel

Copy link
Collaborator

@EspenAlbert EspenAlbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automation 🤩

@lantoli
Copy link
Member

lantoli commented Aug 28, 2024

can you update the GHA to check this new auto-generated-doc resource? https://github.com/mongodb/terraform-provider-mongodbatlas/blob/master/.github/workflows/code-health.yml#L71

Copy link
Collaborator

@oarbusi oarbusi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!!

Comment on lines +24 to +28
## Example Usages



{{ .SchemaMarkdown | trimspace }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: Is the template missing how examples are defined in the docs?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes for this one I intentionally removed it to be able to use existing examples from the documentation, we currently have only examples for AWS for EAR for different cluster types in the example folder

@@ -21,7 +21,7 @@ See [Encryption at Rest](https://docs.atlas.mongodb.com/security-kms-encryption/

Copy link
Member

@AgustinBettati AgustinBettati Aug 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that was also my comment :-)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed offline with @AgustinBettati . I have updated https://jira.mongodb.org/browse/CLOUDP-267668 to ensure we add this check after updating the examples as part of adding the data source for this resource.

@maastha maastha merged commit c22c80e into CLOUDP-246459-ear-kms-dev Aug 28, 2024
53 checks passed
@maastha maastha deleted the CLOUDP-267669-ear-doc-auto branch August 28, 2024 11:14
Copy link
Contributor

@lmkerbey-mdb lmkerbey-mdb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@maastha I see this was merged before I had a chance to perform a copy review. Please open a new PR to address this feedback and ping me when you do. Thank you.

- `access_key_id` (String, Sensitive) Unique alphanumeric string that identifies an Identity and Access Management (IAM) access key with permissions required to access your Amazon Web Services (AWS) Customer Master Key (CMK).
- `customer_master_key_id` (String, Sensitive) Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys.
- `enabled` (Boolean) Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.
- `region` (String) Physical location where MongoDB Cloud deploys your AWS-hosted MongoDB cluster nodes. The region you choose can affect network latency for clients accessing your databases. When MongoDB Cloud deploys a dedicated cluster, it checks if a VPC or VPC connection exists for that provider and region. If not, MongoDB Cloud creates them as part of the deployment. MongoDB Cloud assigns the VPC a CIDR block. To limit a new VPC peering connection to one CIDR block and region, create the connection first. Deploy the cluster after the connection starts.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is MongoDB Cloud something specific and distinct from MongoDB Atlas? I think you want to refer to MongoDB Atlas here, and in all other places where this term is used.


- `azure_environment` (String) Azure environment in which your account credentials reside.
- `client_id` (String, Sensitive) Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant.
- `enabled` (Boolean) Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about 'Flag that indicates encryption at rest is enabled for the specified project'?

- `azure_environment` (String) Azure environment in which your account credentials reside.
- `client_id` (String, Sensitive) Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant.
- `enabled` (Boolean) Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.
- `key_identifier` (String, Sensitive) Web address with a unique key that identifies for your Azure Key Vault.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not clear what "identifies for your Azure Key Vault" is supposed to convey, because of the placement of "for". Given that there is a key_vault_name field after this, it doesn't seem like this is meant to be "identifies your Azure Key Vault".

- `enabled` (Boolean) Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.
- `key_identifier` (String, Sensitive) Web address with a unique key that identifies for your Azure Key Vault.
- `key_vault_name` (String) Unique string that identifies the Azure Key Vault that contains your key.
- `require_private_networking` (Boolean) Enable connection to your Azure Key Vault over private networking.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An earlier boolean field was describe as a "flag that . . .". Let's aim for alignment and refer to this as a 'Flag that enables'

- `key_vault_name` (String) Unique string that identifies the Azure Key Vault that contains your key.
- `require_private_networking` (Boolean) Enable connection to your Azure Key Vault over private networking.
- `resource_group_name` (String) Name of the Azure resource group that contains your Azure Key Vault.
- `secret` (String, Sensitive) Private data that you need secured and that belongs to the specified Azure Key Vault (AKV) tenant (**azureKeyVault.tenantID**). This data can include any type of sensitive data such as passwords, database connection strings, API keys, and the like. AKV stores this information as encrypted binary data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about 'AKV tenant private data to store as encrypted binary data.' I think the explication of what use-cases are suitable can be dropped.


- `enabled` (Boolean) Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.
- `key_version_resource_id` (String, Sensitive) Resource path that displays the key version resource ID for your Google Cloud KMS.
- `service_account_key` (String, Sensitive) JavaScript Object Notation (JSON) object that contains the Google Cloud Key Management Service (KMS). Format the JSON as a string and not as an object.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

. . . as a string, not an object.

Sensitive: true,
Optional: true,
Sensitive: true,
Description: "Private data that you need secured and that belongs to the specified Azure Key Vault (AKV) tenant (**azureKeyVault.tenantID**). This data can include any type of sensitive data such as passwords, database connection strings, API keys, and the like. AKV stores this information as encrypted binary data.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update these descriptions with the changes made to this passage where it appears above.

@@ -196,14 +236,20 @@ func (r *encryptionAtRestRS) Schema(ctx context.Context, req resource.SchemaRequ
PlanModifiers: []planmodifier.Bool{
boolplanmodifier.UseStateForUnknown(),
},
Description: "Flag that indicates whether someone enabled encryption at rest for the specified project. To disable encryption at rest using customer key management and remove the configuration details, pass only this parameter with a value of `false`.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change this passage to reflect the changes made to it where it occurs above.

-> **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.


-> **IMPORTANT NOTE** To disable the encryption at rest with customer key management for a project all existing clusters in the project must first either have encryption at rest for the provider set to none, e.g. `encryption_at_rest_provider = "NONE"`, or be deleted.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

. . . must either set encryption_at_rest_provider = "NONE", or omit the field.

{{ .SchemaMarkdown | trimspace }}

# Import
Encryption at Rest Settings can be imported using project ID, in the format `project_id`, e.g.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can import Encryption at Rest settings using project ID

maastha added a commit that referenced this pull request Sep 9, 2024
…o master (#2569)

* update sdk dev (#2490)

* chore: Creates TF models & interfaces for new `mongodbatlas_encryption_at_rest_private_endpoint` resource (#2493)

* chore: Creates TF models & interfaces for new `mongodbatlas_encryption_at_rest_private_endpoint` data source (#2500)

* feat: Updates `mongodbatlas_encryption_at_rest` resource to use new `azure_key_vault_config.require_private_networking` field (#2509)

* chore: Creates TF models & interfaces for `mongodbatlas_encryption_at_rest_private_endpoints` plural data source (#2502)

* feat: Implements `mongodbatlas_encryption_at_rest_private_endpoint` resource (#2512)

* wip - implementing CRUD

* include changelog entry

* small adjustments

* supporting state transition logic

* implement acceptance test

* add unit testing for state transitions

* handle return error message if failed status is present

* add acceptance test transitioning for public to private network

* improve messaging for failed status

* fix prechecks

* use global const for resource name

* avoid hardcoded value

* adjust state transition logic for delete

* adjusting target version in migration test to 1.19.0

* adjust default refresh to 30 seconds for quicker response

* feat: Implements `mongodbatlas_encryption_at_rest_private_endpoint` singular data source (#2527)

* implement singular data source

* including changelog entry

* doc: Updates existing documentation for `mongodbatlas_encryption_at_rest` resource to be auto-generated (#2529)

* doc: Include example for new `mongodbatlas_encryption_at_rest_private_endpoint` resource (#2540)

* Include example for ear with private endpoint

* fix example

* adjust readme

* Update examples/mongodbatlas_encryption_at_rest_private_endpoint/azure/README.md

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

* Update examples/mongodbatlas_encryption_at_rest_private_endpoint/azure/README.md

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

* add example cli command

* make use of variables to make value of resource id more compact

---------

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

* feat: Implements new `mongodbatlas_encryption_at_rest_private_endpoints` data source (#2536)

* temporary change to cloud provider access and getting latest sdk

* implements plural data source

* adapted cloud provider access with latest changes from dev preview

* fix unit test

* adding changelog entry

* add changes to verify plural data source in basic test case

* doc adjust to cloud_provider attribute

* feat: Implements new `mongodbatlas_encryption_at_rest` singular data source & adds `valid` attribute for cloud provider configs in the resource (#2538)

* fix: Adds error message handling to `mongodbatlas_encryption_at_rest_private_endpoint` resource (#2544)

* doc: Adds documentation for new `encryption_at_rest_private_endpoint` resource and data sources (#2547)

* adding documentation for encryption_at_rest_private_endpoint resource and data sources

* align generated docs

* minor typo fix

* Adjust description of project_id to make it more concise

* align note stating feature is available by request as defined in general docs

* chore: Adopt latest changes from master into ear private endpoint dev branch to adopt latest SDK (#2549)

* test: Reduce instance size and use of provisioned disk iops for test that verifies transition for symmetric to asymmetric configuration (#2503)

* doc: Include changelog entries to mention 2 new guides (#2506)

* add entry for 2 new guides

* add link

* chore: Updates examples link in index.md for v1.18.0 release

* chore: Updates CHANGELOG.md header for v1.18.0 release

* doc: Update Atlas SP db_role_to_execute info. (#2508)

* (DOCSP-41590) Updating Atlas SP db_role_to_execute info.

* Update docs/resources/stream_connection.md

Co-authored-by: kanchana-mongodb <[email protected]>

---------

Co-authored-by: kanchana-mongodb <[email protected]>

* doc: Contributing Guidelines Updates (#2494)

* Contributing Guidelines Updates

* Update README.md

* Update README.md

* Update contributing/README.md

Co-authored-by: kyuan-mongodb <[email protected]>

---------

Co-authored-by: kyuan-mongodb <[email protected]>

* test: Simply migration test checks after 1.18.0 release and adjust version constraint in advanced_cluster examples uing new schema (#2510)

* doc: Add references to the terraform modules in the resources documentations (#2513)

* add references to the modules in the resources documentations

* fix pr comments

* chore: Bump hashicorp/setup-terraform from 3.1.1 to 3.1.2 (#2515)

Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 3.1.1 to 3.1.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@651471c...b9cd54a)

---
updated-dependencies:
- dependency-name: hashicorp/setup-terraform
  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: Add mention of support ticket when opening a pull request (#2507)

* Add mention of creating support ticket when opening PR

* rephrasing to avoid mention of priority

* including suggestion

* doc: Updates`mongodbatlas_advanced_cluster` ISS migration guide & resource doc with expected 500 error on update (#2525)

* chore: Updates mongodbatlas_advanced_cluster tests to expect temporary SERVICE_UNAVAILABLE error when migrating from old to new schema (#2523)

* doc: Fixes wordings in the new advanced_cluster sharding guide. (#2524)

* chore: Updates examples link in index.md for v1.18.1 release

* chore: Updates CHANGELOG.md header for v1.18.1 release

* chore: upgrades go SDK from `v20240805001` to `v20240805002` (#2534)

* chore: Updates to Go 1.23 (#2535)

* update asdf TF version

* update to Go 1.23

* update linter

* update golang-ci linter

* disable Go telemetry

* revert TF change

* chore: Bump go.mongodb.org/atlas from 0.36.0 to 0.37.0 (#2532)

Bumps [go.mongodb.org/atlas](https://github.com/mongodb/go-client-mongodb-atlas) from 0.36.0 to 0.37.0.
- [Release notes](https://github.com/mongodb/go-client-mongodb-atlas/releases)
- [Changelog](https://github.com/mongodb/go-client-mongodb-atlas/blob/master/CHANGELOG.md)
- [Commits](mongodb/go-client-mongodb-atlas@v0.36.0...v0.37.0)

---
updated-dependencies:
- dependency-name: go.mongodb.org/atlas
  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: Bump github.com/hashicorp/hcl/v2 from 2.21.0 to 2.22.0 (#2530)

Bumps [github.com/hashicorp/hcl/v2](https://github.com/hashicorp/hcl) from 2.21.0 to 2.22.0.
- [Release notes](https://github.com/hashicorp/hcl/releases)
- [Changelog](https://github.com/hashicorp/hcl/blob/main/CHANGELOG.md)
- [Commits](hashicorp/hcl@v2.21.0...v2.22.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/hcl/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>

* update asdf TF version to 1.9.5 (#2537)

* chore: Changes deprecation message for labels attribute (#2542)

* chore: Upgrades go SDK from `v20240805002` to `v20240805003` (#2545)

* major version update calling gomajor tool

* manual change to reincorporate v20240530005

* reverts temp changes in cloud provider resources, fixes sdk versions in new implementations

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: svc-apix-bot <[email protected]>
Co-authored-by: lmkerbey-mdb <[email protected]>
Co-authored-by: kanchana-mongodb <[email protected]>
Co-authored-by: Zuhair Ahmed <[email protected]>
Co-authored-by: kyuan-mongodb <[email protected]>
Co-authored-by: rubenVB01 <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: maastha <[email protected]>
Co-authored-by: Marco Suma <[email protected]>
Co-authored-by: Espen Albert <[email protected]>
Co-authored-by: Leo Antoli <[email protected]>
Co-authored-by: Oriol <[email protected]>

* doc: Adds documentation & examples for `mongodbatlas_encryption_at_rest` singular data source (#2543)

* chore: Enables `mongodbatlas_encryption_at_rest` (Azure) tests to run in CI (#2551)

* chore: Adds `mongodbatlas_encryption_at_rest_private_endpoint` acceptance test using azapi to approve private endpoint & check ACTIVE status (#2558)

* doc: Add user journey considerations in current resource and example documentation (#2559)

* minor typo fix

* improve initial description in ear

* adjust ear docs with mention of azure private link

* private link doc adjustments

* improve example

* improve example

* add mention in ear examples about policies

* add note on update operation

* link adjustments and add header for handling existing clusters

* add note on private endpoint

* add note in data sources

* Update docs/resources/encryption_at_rest_private_endpoint.md

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

* add clarification of preview flag for data sources

---------

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

* update project_ip_addresses action

* address doc comment

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Agustin Bettati <[email protected]>
Co-authored-by: svc-apix-bot <[email protected]>
Co-authored-by: lmkerbey-mdb <[email protected]>
Co-authored-by: kanchana-mongodb <[email protected]>
Co-authored-by: Zuhair Ahmed <[email protected]>
Co-authored-by: kyuan-mongodb <[email protected]>
Co-authored-by: rubenVB01 <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marco Suma <[email protected]>
Co-authored-by: Espen Albert <[email protected]>
Co-authored-by: Leo Antoli <[email protected]>
Co-authored-by: Oriol <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants