From 4910719d4e4a75134011305f66cf2a65dab8c72d Mon Sep 17 00:00:00 2001 From: nigeisel Date: Fri, 25 Oct 2024 23:31:36 +0200 Subject: [PATCH] Fix content for terraform and aws roadmaps (#7589) * Fix URLs to AWS docs: links pointed to portuguese version of documentation * Fix URL to official process.env documentation (it pointed to an unrelated digital ocean article about command line args) * Fix typo * Add resource lifecycle node * Fix @article@ tag case * * Fix common but dangerous misconception: values, even if marked as sensitive, ARE written to state files in CLEAR text! * Source: https://developer.hashicorp.com/terraform/language/values/outputs#sensitive-suppressing-values-in-cli-output * Fix minor display issue: "" is rendered to "", so it was changed to `` * Fix missing space * Update terraform plan & apply * Fix link to terraform apply docs (pointed to terraform plan) * Add link to official terraform plan docs to terraform plan node --- .../roadmaps/aws/content/101-ec2/103-keypairs.md | 2 +- .../aws/content/101-ec2/104-elastic-ip.md | 2 +- .../aws/content/101-ec2/105-user-data-scripts.md | 2 +- .../aws/content/102-vpc/100-cidr-blocks.md | 2 +- .../aws/content/102-vpc/102-route-tables.md | 2 +- .../content/processenv@wthXp2YGg3eTMbxsek77C.md | 2 +- ...reating-local-modules@wQN1QrK9VB_fHlXrBzDoU.md | 2 +- .../content/local-values@1mFih8uFs3Lc-1PLgwiAU.md | 2 +- .../resource-lifecycle@76kp98rvph_8UOXZR-PBC.md | 15 ++++++++++++++- .../sensitive-outputs@8giL6H5944M2L0rwxjPso.md | 4 ++-- .../state-pull--push@wSh7bbPswcFAzOicX8VPx.md | 2 +- .../terraform-apply@LDpj-LY_SOXzno04D-Y25.md | 2 +- .../terraform-plan@LDxAXmTKyvogvgUpvN5pT.md | 1 + 13 files changed, 27 insertions(+), 13 deletions(-) diff --git a/src/data/roadmaps/aws/content/101-ec2/103-keypairs.md b/src/data/roadmaps/aws/content/101-ec2/103-keypairs.md index fa03918c9..495e010d3 100644 --- a/src/data/roadmaps/aws/content/101-ec2/103-keypairs.md +++ b/src/data/roadmaps/aws/content/101-ec2/103-keypairs.md @@ -4,4 +4,4 @@ Key pairs are part of Amazon EC2 and are used to securely log into your instance Visit the following resources to learn more: -- [@official@EC2 - Keypairs](https://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/ec2-key-pairs.html) +- [@official@EC2 - Keypairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) diff --git a/src/data/roadmaps/aws/content/101-ec2/104-elastic-ip.md b/src/data/roadmaps/aws/content/101-ec2/104-elastic-ip.md index 7661165bc..73e58f385 100644 --- a/src/data/roadmaps/aws/content/101-ec2/104-elastic-ip.md +++ b/src/data/roadmaps/aws/content/101-ec2/104-elastic-ip.md @@ -4,4 +4,4 @@ Visit the following resources to learn more: -- [@official@Elastic IP Addresses](https://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) +- [@official@Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) diff --git a/src/data/roadmaps/aws/content/101-ec2/105-user-data-scripts.md b/src/data/roadmaps/aws/content/101-ec2/105-user-data-scripts.md index 37989ce70..1ebdd5c62 100644 --- a/src/data/roadmaps/aws/content/101-ec2/105-user-data-scripts.md +++ b/src/data/roadmaps/aws/content/101-ec2/105-user-data-scripts.md @@ -4,4 +4,4 @@ Visit the following resources to learn more: -- [@official@User Data Scripts EC2](https://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/user-data.html) +- [@official@User Data Scripts EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) diff --git a/src/data/roadmaps/aws/content/102-vpc/100-cidr-blocks.md b/src/data/roadmaps/aws/content/102-vpc/100-cidr-blocks.md index 872d7086e..71b259fa5 100644 --- a/src/data/roadmaps/aws/content/102-vpc/100-cidr-blocks.md +++ b/src/data/roadmaps/aws/content/102-vpc/100-cidr-blocks.md @@ -5,4 +5,4 @@ Visit the following resources to learn more: - [@official@cidr.xyz: Interactive CIDR range visualizer](https://cidr.xyz/) -- [@official@VPC - CIRD Blocks](https://docs.aws.amazon.com/pt_br/vpc/latest/userguide/vpc-cidr-blocks.html) +- [@official@VPC - CIRD Blocks](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html) diff --git a/src/data/roadmaps/aws/content/102-vpc/102-route-tables.md b/src/data/roadmaps/aws/content/102-vpc/102-route-tables.md index faca9f7d6..e8ab699c1 100644 --- a/src/data/roadmaps/aws/content/102-vpc/102-route-tables.md +++ b/src/data/roadmaps/aws/content/102-vpc/102-route-tables.md @@ -4,4 +4,4 @@ A _Route Table_ in AWS VPC is a set of rules, called routes, that are used to de Visit the following resources to learn more: -- [@official@Route Tables](https://docs.aws.amazon.com/pt_br/quicksight/latest/user/vpc-route-table.html) +- [@official@Route Tables](https://docs.aws.amazon.com/quicksight/latest/user/vpc-route-table.html) diff --git a/src/data/roadmaps/nodejs/content/processenv@wthXp2YGg3eTMbxsek77C.md b/src/data/roadmaps/nodejs/content/processenv@wthXp2YGg3eTMbxsek77C.md index 20d19c477..c17b2b2e5 100644 --- a/src/data/roadmaps/nodejs/content/processenv@wthXp2YGg3eTMbxsek77C.md +++ b/src/data/roadmaps/nodejs/content/processenv@wthXp2YGg3eTMbxsek77C.md @@ -4,5 +4,5 @@ In Node. js, process. env is a global variable that is injected during runtime. Visit the following resources to learn more: -- [@official@Node.js Learn environment variables](https://www.digitalocean.com/community/tutorials/nodejs-command-line-arguments-node-scripts) +- [@official@Node.js Learn environment variables](https://nodejs.org/en/learn/command-line/how-to-read-environment-variables-from-nodejs) - [@article@Process.env Node](https://www.knowledgehut.com/blog/web-development/node-environment-variables) \ No newline at end of file diff --git a/src/data/roadmaps/terraform/content/creating-local-modules@wQN1QrK9VB_fHlXrBzDoU.md b/src/data/roadmaps/terraform/content/creating-local-modules@wQN1QrK9VB_fHlXrBzDoU.md index f6fd83896..ae0d6ad87 100644 --- a/src/data/roadmaps/terraform/content/creating-local-modules@wQN1QrK9VB_fHlXrBzDoU.md +++ b/src/data/roadmaps/terraform/content/creating-local-modules@wQN1QrK9VB_fHlXrBzDoU.md @@ -4,6 +4,6 @@ Creating local modules in Terraform involves organizing a set of related resourc Learn more from the following resources: -- [@official@Build and use a local moduke](https://developer.hashicorp.com/terraform/tutorials/modules/module-create) +- [@official@Build and use a local module](https://developer.hashicorp.com/terraform/tutorials/modules/module-create) - [@article@How to create reusable infrastructure with Terraform modules](https://blog.gruntwork.io/how-to-create-reusable-infrastructure-with-terraform-modules-25526d65f73d) - [@video@Creating a module in Terraform](https://www.youtube.com/watch?v=OeL2AlsdNaQ) \ No newline at end of file diff --git a/src/data/roadmaps/terraform/content/local-values@1mFih8uFs3Lc-1PLgwiAU.md b/src/data/roadmaps/terraform/content/local-values@1mFih8uFs3Lc-1PLgwiAU.md index 1ebcb3e59..e46055817 100644 --- a/src/data/roadmaps/terraform/content/local-values@1mFih8uFs3Lc-1PLgwiAU.md +++ b/src/data/roadmaps/terraform/content/local-values@1mFih8uFs3Lc-1PLgwiAU.md @@ -5,4 +5,4 @@ Local values can be understood as a name assigned to any expression to use it mu Learn more from the following resources: - [@official@Local Values](https://developer.hashicorp.com/terraform/language/values/locals) -- [@Article@Terraform Locals](https://spacelift.io/blog/terraform-locals) +- [@article@Terraform Locals](https://spacelift.io/blog/terraform-locals) diff --git a/src/data/roadmaps/terraform/content/resource-lifecycle@76kp98rvph_8UOXZR-PBC.md b/src/data/roadmaps/terraform/content/resource-lifecycle@76kp98rvph_8UOXZR-PBC.md index c99a543f0..e494568c6 100644 --- a/src/data/roadmaps/terraform/content/resource-lifecycle@76kp98rvph_8UOXZR-PBC.md +++ b/src/data/roadmaps/terraform/content/resource-lifecycle@76kp98rvph_8UOXZR-PBC.md @@ -1 +1,14 @@ -# Resource Lifecycle \ No newline at end of file +# Resource Lifecycle + +Each Terraform resource is subject to the lifecycle: Create, Update or Recreate, Destroy. When executing `terraform apply`, each resource: +* which exists in configuration but not in state is created +* which exists in configuration and state and has changed is updated +* which exists in configuration and state and has changed, but cannot updated due to API limitation is destroyed and recreated +* which exists in state, but not (anymore) in configuration is destroyed + +The lifecycle behaviour can be modified to some extend using the `lifecycle` meta argument. + +Learn more from the following resources: + +- [@official@How Terraform Applies a Configuration](https://developer.hashicorp.com/terraform/language/resources/behavior#how-terraform-applies-a-configuration) +- [@official@The lifecycle Meta-Argument](https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle) \ No newline at end of file diff --git a/src/data/roadmaps/terraform/content/sensitive-outputs@8giL6H5944M2L0rwxjPso.md b/src/data/roadmaps/terraform/content/sensitive-outputs@8giL6H5944M2L0rwxjPso.md index 4e0fdb27f..715a2bcd9 100644 --- a/src/data/roadmaps/terraform/content/sensitive-outputs@8giL6H5944M2L0rwxjPso.md +++ b/src/data/roadmaps/terraform/content/sensitive-outputs@8giL6H5944M2L0rwxjPso.md @@ -1,6 +1,6 @@ # Sensitive Outputs -Terraform sensitive outputs are a feature used to protect sensitive information in Terraform configurations. When an output is marked as sensitive, Terraform obscures its value in the console output and state files, displaying it as "" instead of the actual value. This is crucial for protecting sensitive data like passwords or API keys. +Terraform sensitive outputs are a feature used to protect sensitive information in Terraform configurations. When an output is marked as sensitive, Terraform obscures its value in the console output, displaying it as `` instead of the actual value. This is crucial for protecting sensitive data like passwords or API keys. To mark an output as sensitive, use the sensitive argument in the output block: @@ -11,7 +11,7 @@ output "database_password" { } ``` -Sensitive outputs are still accessible programmatically, but their values are hidden in logs and the console to prevent accidental exposure. This feature helps maintain security when sharing Terraform configurations or outputs with team members or in CI/CD pipelines. +Sensitive outputs are still accessible programmatically and are written to the state in clear text, but their values are hidden in logs and the console to prevent accidental exposure. This feature helps maintain security when sharing Terraform configurations or outputs with team members or in CI/CD pipelines. Learn more from the following resources: diff --git a/src/data/roadmaps/terraform/content/state-pull--push@wSh7bbPswcFAzOicX8VPx.md b/src/data/roadmaps/terraform/content/state-pull--push@wSh7bbPswcFAzOicX8VPx.md index a29b384c7..6f321bbe7 100644 --- a/src/data/roadmaps/terraform/content/state-pull--push@wSh7bbPswcFAzOicX8VPx.md +++ b/src/data/roadmaps/terraform/content/state-pull--push@wSh7bbPswcFAzOicX8VPx.md @@ -2,7 +2,7 @@ The `terraform state pull` and `terraform state push` commands are used for managing Terraform state in remote backends. The `pull` command retrieves the current state from the configured backend and outputs it to stdout, allowing for inspection or backup of the remote state. It's useful for debugging or for performing manual state manipulations. -The`push` command does the opposite, uploading a local state file to the configured backend, overwriting the existing remote state. This is typically used to restore a backup or to manually reconcile state discrepancies. Both commands should be used with caution, especially push, as they can potentially overwrite important state information. +The `push` command does the opposite, uploading a local state file to the configured backend, overwriting the existing remote state. This is typically used to restore a backup or to manually reconcile state discrepancies. Both commands should be used with caution, especially push, as they can potentially overwrite important state information. Learn more from the following resources: diff --git a/src/data/roadmaps/terraform/content/terraform-apply@LDpj-LY_SOXzno04D-Y25.md b/src/data/roadmaps/terraform/content/terraform-apply@LDpj-LY_SOXzno04D-Y25.md index ba54669b8..d3f133439 100644 --- a/src/data/roadmaps/terraform/content/terraform-apply@LDpj-LY_SOXzno04D-Y25.md +++ b/src/data/roadmaps/terraform/content/terraform-apply@LDpj-LY_SOXzno04D-Y25.md @@ -4,6 +4,6 @@ Learn more from the following resoureces: -- [@official@Terraform Apply Documentation](https://developer.hashicorp.com/terraform/cli/commands/plan) +- [@official@Terraform Apply Documentation](https://developer.hashicorp.com/terraform/cli/commands/apply) - [@course@Apply Terraform configuration](https://developer.hashicorp.com/terraform/tutorials/cli/apply) - [@article@Terraform Apply Command: Options, Examples and Best Practices](https://www.env0.com/blog/terraform-apply-guide-command-options-and-examples) \ No newline at end of file diff --git a/src/data/roadmaps/terraform/content/terraform-plan@LDxAXmTKyvogvgUpvN5pT.md b/src/data/roadmaps/terraform/content/terraform-plan@LDxAXmTKyvogvgUpvN5pT.md index 7da6faf8b..517902833 100644 --- a/src/data/roadmaps/terraform/content/terraform-plan@LDxAXmTKyvogvgUpvN5pT.md +++ b/src/data/roadmaps/terraform/content/terraform-plan@LDxAXmTKyvogvgUpvN5pT.md @@ -4,6 +4,7 @@ Learn more from the following resources: +- [@official@Terraform Plan Documentation](https://developer.hashicorp.com/terraform/cli/commands/plan) - [@course@Create a Terraform plan](https://developer.hashicorp.com/terraform/tutorials/cli/plan) - [@video@Terraform - Terraform Plan](https://www.youtube.com/watch?v=9v08h-Oaelo) - [@article@Terraform plan command and how it works](https://spacelift.io/blog/terraform-plan) \ No newline at end of file