From 8ac687b7fa5339f41f6ca963275e003e017e742d Mon Sep 17 00:00:00 2001 From: clouddrove-ci Date: Fri, 26 Apr 2024 12:52:22 +0000 Subject: [PATCH] update README.md --- README.md | 306 ++++++++++++++++++++++------------------------------- docs/io.md | 69 ++++++++++++ 2 files changed, 198 insertions(+), 177 deletions(-) create mode 100644 docs/io.md diff --git a/README.md b/README.md index 1efc93a..ba1c113 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,43 @@ - -

- - +[![Banner](https://github.com/clouddrove/terraform-gcp-vpc/blob/master/docs/CloudDrove.png)][website]

Terraform AWS Cloudfront CDN

-

- Terraform module provisions CloudFront CDN resource on AWS. -

+

+ With our comprehensive DevOps toolkit - streamline operations, automate workflows, enhance collaboration and, most importantly, deploy with confidence. +

+

- - Terraform + + Latest Release + + + tfsec Licence - - tfsec + + Changelog +

- + - + + + + - + @@ -40,23 +45,84 @@


-We eat, drink, sleep and most importantly love **DevOps**. We are working towards strategies for standardizing architecture while ensuring security for the infrastructure. We are strong believer of the philosophy Bigger problems are always solved by breaking them into smaller manageable problems. Resonating with microservices architecture, it is considered best-practice to run database, cluster, storage in smaller connected yet manageable pieces within the infrastructure. +We are a group of DevOps engineers & architects, joining hands in this ever evolving digital landscape. With our strong belief in Automation; just like microservices, always on the lookout to split the the infrastructure into smaller connected resources (database, cluster and more) which could be standardized, are manageable, scalable, secure & follow industry best practices. -This module is basically combination of [Terraform open source](https://www.terraform.io/) and includes automatation tests and examples. It also helps to create and improve your infrastructure with minimalistic code instead of maintaining the whole infrastructure code yourself. -We have [*fifty plus terraform modules*][terraform_modules]. A few of them are comepleted and are available for open source usage while a few others are in progress. +This module includes Terraform open source, examples, and automation tests (for better understanding), which would help you create and improve your infrastructure with minimalistic coding. -## Prerequisites +## Prerequisites and Providers -This module has a few dependencies: +This table contains both Prerequisites and Providers: + +| Description | Name | Version | +|:-------------:|:-------------------------------------------:|:---------:| +| **Prerequisite** | [Terraform](https://learn.hashicorp.com/terraform/getting-started/install.html) | >= 1.6.6 | +| **Provider** | [aws](https://aws.amazon.com/) | >= 5.31.0 | + + + + + +## Examples + +**IMPORTANT:** Since the master branch used in source varies based on new modifications, we recommend using the [release versions](https://github.com/clouddrove/terraform-aws-cloudfront/releases). + +πŸ“Œ For additional usage examples, check the complete list under [`examples/`](./examples) directory. + + + +## Inputs and Outputs + +Refer to complete documentation: [here](docs/io.md) + + + + + +## Module Dependencies + +This module has dependencies on: +- [Labels Module](https://github.com/clouddrove/terraform-aws-labels): Provides resource tagging. + + +## πŸ“‘ Changelog + +Refer [here](CHANGELOG.md). + + + + +## ✨ Contributors + +Big thanks to our contributors for elevating our project with their dedication and expertise! But, we do not wish to stop there, would like to invite contributions from the community in improving these projects and making them more versatile for better reach. Remember, every bit of contribution is immensely valuable, as, together, we are moving in only 1 direction, i.e. forward. + + + + +
+
+ + If you're considering contributing to our project, here are a few quick guidelines that we have been following (Got a suggestion? We are all ears!): + +- **Fork the Repository:** Create a new branch for your feature or bug fix. +- **Coding Standards:** You know the drill. +- **Clear Commit Messages:** Write clear and concise commit messages to facilitate understanding. +- **Thorough Testing:** Test your changes thoroughly before submitting a pull request. +- **Documentation Updates:** Include relevant documentation updates if your changes impact it. -- [Terraform 1.x.x](https://learn.hashicorp.com/terraform/getting-started/install.html) -- [Go](https://golang.org/doc/install) -- [github.com/stretchr/testify/assert](https://github.com/stretchr/testify) -- [github.com/gruntwork-io/terratest/modules/terraform](https://github.com/gruntwork-io/terratest) @@ -64,174 +130,60 @@ This module has a few dependencies: -## Examples -**IMPORTANT:** Since the `master` branch used in `source` varies based on new modifications, we suggest that you use the release versions [here](https://github.com/clouddrove/terraform-aws-cloudfront-cdn/releases). - - -Here are some examples of how you can use this module in your inventory structure: -### CDN With Basic Bucket -```hcl - module "cdn" { - source = "clouddrove/cloudfront-cdn/aws" - version = "1.0.1" - name = "basic-cdn" - environment = "test" - label_order = ["name", "environment"] - enabled_bucket = true - compress = false - aliases = ["clouddrove.com"] - bucket_name = "test-bucket" - viewer_protocol_policy = "redirect-to-https" - allowed_methods = ["GET", "HEAD"] - acm_certificate_arn = "arn:aws:acm:eu-west-1:xxxxxxxxxxxx:certificate/xxxxxx-xxxx-xxxxx-xxxx" - } -``` - -### CDN With Secure Bucket -```hcl - module "cdn" { - source = "clouddrove/cloudfront-cdn/aws" - version = "1.0.1" - name = "secure-cdn" - environment = "test" - label_order = ["name", "environment"] - aliases = ["clouddrove.com"] - bucket_name = "test-bucket" - viewer_protocol_policy = "redirect-to-https" - compress = false - allowed_methods = ["GET", "HEAD"] - acm_certificate_arn = "arn:aws:acm:eu-west-1:xxxxxxxxxxxx:certificate/xxxxxx-xxxx-xxxxx-xxxx" - trusted_signers = ["self"] - public_key_enable = true - public_key = "./../cdn.pem" - } -``` -### CDN With Domain -```hcl - module "cdn" { - source = "clouddrove/cloudfront-cdn/aws" - version = "1.0.1" - name = "domain-cdn" - environment = "test" - label_order = ["name", "environment"] - custom_domain = true - compress = false - aliases = ["clouddrove.com"] - domain_name = "clouddrove.com" - viewer_protocol_policy = "redirect-to-https" - allowed_methods = ["GET", "HEAD"] - acm_certificate_arn = "arn:aws:acm:eu-west-1:xxxxxxxxxxxx:certificate/xxxxxx-xxxx-xxxxx-xxxx" - } -``` - - - - - - -## Inputs - -| Name | Description | Type | Default | Required | -|------|-------------|------|---------|:--------:| -| acm\_certificate\_arn | Existing ACM Certificate ARN. | `string` | `""` | no | -| aliases | List of FQDN's - Used to set the Alternate Domain Names (CNAMEs) setting on Cloudfront. | `list(string)` | `[]` | no | -| allowed\_methods | List of allowed methods (e.g. GET, PUT, POST, DELETE, HEAD) for AWS CloudFront. | `list(string)` |
[
"DELETE",
"GET",
"HEAD",
"OPTIONS",
"PATCH",
"POST",
"PUT"
]
| no | -| attributes | Additional attributes (e.g. `1`). | `list(any)` | `[]` | no | -| bucket\_name | A unique identifier for the origin. | `string` | `""` | no | -| cached\_methods | List of cached methods (e.g. GET, PUT, POST, DELETE, HEAD). | `list(string)` |
[
"GET",
"HEAD"
]
| no | -| cdn\_enabled | Select Enabled if you want to created CloudFront. | `bool` | `true` | no | -| comment | Comment for the origin access identity. | `string` | `"Managed by Clouddrove"` | no | -| compress | Compress content for web requests that include Accept-Encoding: gzip in the request header. | `bool` | `false` | no | -| custom\_domain | If cdn create with custom Domain. | `bool` | `false` | no | -| default\_root\_object | Object that CloudFront return when requests the root URL. | `string` | `"index.html"` | no | -| default\_ttl | Default amount of time (in seconds) that an object is in a CloudFront cache. | `number` | `60` | no | -| delimiter | Delimiter to be used between `organization`, `environment`, `name` and `attributes`. | `string` | `"-"` | no | -| domain\_name | The DNS domain name of your custom origin (e.g. clouddrove.com). | `string` | `""` | no | -| enabled | Select Enabled if you want CloudFront to begin processing requests as soon as the distribution is created, or select Disabled if you do not want CloudFront to begin processing requests after the distribution is created. | `bool` | `true` | no | -| enabled\_bucket | If cdn create with s3 bucket. | `bool` | `false` | no | -| environment | Environment (e.g. `prod`, `dev`, `staging`). | `string` | `""` | no | -| error\_caching\_min\_ttl | the value of errro caching min ttl | `string` | `"10"` | no | -| error\_code | List of forwarded cookie names. | `string` | `"403"` | no | -| forward\_cookies | Time in seconds that browser can cache the response for S3 bucket. | `string` | `"none"` | no | -| forward\_cookies\_whitelisted\_names | List of forwarded cookie names. | `list(any)` | `[]` | no | -| forward\_header\_values | A list of whitelisted header values to forward to the origin. | `list(string)` |
[
"Access-Control-Request-Headers",
"Access-Control-Request-Method",
"Origin"
]
| no | -| forward\_query\_string | Forward query strings to the origin that is associated with this cache behavior. | `bool` | `false` | no | -| geo\_restriction\_locations | List of country codes for which CloudFront either to distribute content (whitelist) or not distribute your content (blacklist). | `list(string)` | `[]` | no | -| geo\_restriction\_type | Method that use to restrict distribution of your content by country: `none`, `whitelist`, or `blacklist`. | `string` | `"none"` | no | -| http\_version | The maximum HTTP version to support on the distribution. Allowed values are http1.1 and http2. The default is http2. | `string` | `"http2"` | no | -| is\_ipv6\_enabled | State of CloudFront IPv6. | `bool` | `true` | no | -| label\_order | Label order, e.g. `name`,`application`. | `list(any)` | `[]` | no | -| managedby | ManagedBy, eg 'CloudDrove'. | `string` | `"hello@clouddrove.com"` | no | -| max\_ttl | Maximum amount of time (in seconds) that an object is in a CloudFront cache. | `number` | `31536000` | no | -| min\_ttl | Minimum amount of time that you want objects to stay in CloudFront caches. | `number` | `0` | no | -| minimum\_protocol\_version | Cloudfront TLS minimum protocol version. | `string` | `"TLSv1"` | no | -| name | Name (e.g. `app` or `cluster`). | `string` | `""` | no | -| origin\_force\_destroy | Delete all objects from the bucket so that the bucket can be destroyed without error (e.g. `true` or `false`). | `bool` | `false` | no | -| origin\_http\_port | The HTTP port the custom origin listens on. | `number` | `80` | no | -| origin\_https\_port | The HTTPS port the custom origin listens on. | `number` | `443` | no | -| origin\_keepalive\_timeout | The Custom KeepAlive timeout, in seconds. By default, AWS enforces a limit of 60. But you can request an increase. | `number` | `60` | no | -| origin\_path | An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. It must begin with a /. Do not add a / at the end of the path. | `string` | `""` | no | -| origin\_protocol\_policy | The origin protocol policy to apply to your origin. One of http-only, https-only, or match-viewer. | `string` | `"match-viewer"` | no | -| origin\_read\_timeout | The Custom Read timeout, in seconds. By default, AWS enforces a limit of 60. But you can request an increase. | `number` | `60` | no | -| origin\_ssl\_protocols | The SSL/TLS protocols that you want CloudFront to use when communicating with your origin over HTTPS. | `list(string)` |
[
"TLSv1",
"TLSv1.1",
"TLSv1.2"
]
| no | -| price\_class | Price class for this distribution: `PriceClass_All`, `PriceClass_200`, `PriceClass_100`. | `string` | `"PriceClass_100"` | no | -| public\_key | It encoded public key that you want to add to CloudFront to use with features like field-level encryption. | `string` | `""` | no | -| public\_key\_enable | Public key enable or disable. | `bool` | `false` | no | -| repository | Terraform current module repo | `string` | `"https://github.com/clouddrove/terraform-aws-cloudfront-cdn"` | no | -| response\_code | page not found code | `string` | `"404"` | no | -| response\_page\_path | The path of the custom error page (for example, /custom\_404.html). | `string` | `"/index.html"` | no | -| smooth\_streaming | Indicates whether you want to distribute media files in Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. | `bool` | `false` | no | -| ssl\_support\_method | Specifies how you want CloudFront to serve HTTPS requests. One of `vip` or `sni-only`. | `string` | `"sni-only"` | no | -| tags | Additional tags (e.g. map(`BusinessUnit`,`XYZ`). | `map(any)` | `{}` | no | -| trusted\_signers | The AWS accounts, if any, that you want to allow to create signed URLs for private content. | `list(string)` | `[]` | no | -| viewer\_protocol\_policy | Allow-all, redirect-to-https. | `string` | `""` | no | -| web\_acl\_id | Web ACL ID that can be attached to the Cloudfront distribution. | `string` | `""` | no | - -## Outputs - -| Name | Description | -|------|-------------| -| access\_identity\_etag | The current version of the origin access identity's information. | -| access\_identity\_id | The identifier for the distribution. | -| arn | The ARN (Amazon Resource Name) for the distribution. | -| domain\_name | The domain name corresponding to the distribution. | -| etag | The current version of the distribution's information. | -| hosted\_zone\_id | The CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. | -| id | The identifier for the distribution. | -| pubkey\_etag | The current version of the public key. | -| pubkey\_id | The identifier for the public key. | -| status | The current status of the distribution. | -| tags | A mapping of tags to assign to the resource. | - - - - -## Testing -In this module testing is performed with [terratest](https://github.com/gruntwork-io/terratest) and it creates a small piece of infrastructure, matches the output like ARN, ID and Tags name etc and destroy infrastructure in your AWS account. This testing is written in GO, so you need a [GO environment](https://golang.org/doc/install) in your system. - -You need to run the following command in the testing folder: -```hcl - go test -run Test -``` ## Feedback -If you come accross a bug or have any feedback, please log it in our [issue tracker](https://github.com/clouddrove/terraform-aws-cloudfront-cdn/issues), or feel free to drop us an email at [hello@clouddrove.com](mailto:hello@clouddrove.com). +Spot a bug or have thoughts to share with us? Let's squash it together! Log it in our [issue tracker](https://github.com/clouddrove/terraform-aws-cloudfront/issues), feel free to drop us an email at [hello@clouddrove.com](mailto:hello@clouddrove.com). + +Show some love with a β˜… on [our GitHub](https://github.com/clouddrove/terraform-aws-cloudfront)! if our work has brightened your day! – your feedback fuels our journey! + + +## :rocket: Our Accomplishment + +We have [*100+ Terraform modules*][terraform_modules] πŸ™Œ. You could consider them finished, but, with enthusiasts like yourself, we are able to ever improve them, so we call our status - improvement in progress. + +- [Terraform Module Registry:](https://registry.terraform.io/namespaces/clouddrove) Discover our Terraform modules here. + +- [Terraform Modules for AWS/Azure Modules:](https://github.com/clouddrove/toc) Explore our comprehensive Table of Contents for easy navigation through our documentation for modules pertaining to AWS, Azure & GCP. + +- [Terraform Modules for Digital Ocean:](https://github.com/terraform-do-modules/toc) Check out our specialized Terraform modules for Digital Ocean. + + + + +## Join Our Slack Community + +Join our vibrant open-source slack community and embark on an ever-evolving journey with CloudDrove; helping you in moving upwards in your career path. +Join our vibrant Open Source Slack Community and embark on a learning journey with CloudDrove. Grow with us in the world of DevOps and set your career on a path of consistency. + +πŸŒπŸ’¬What you'll get after joining this Slack community: + +- πŸš€ Encouragement to upgrade your best version. +- 🌈 Learning companionship with our DevOps squad. +- 🌱 Relentless growth with daily updates on new advancements in technologies. + +Join our tech elites [Join Now][slack] πŸš€ + + +## Explore Our Blogs -If you have found it worth your time, go ahead and give us a β˜… on [our GitHub](https://github.com/clouddrove/terraform-aws-cloudfront-cdn)! + Click [here][blog] :books: :star2: -## About us +## Tap into our capabilities +We provide a platform for organizations to engage with experienced top-tier DevOps & Cloud services. Tap into our pool of certified engineers and architects to elevate your DevOps and Cloud Solutions. -At [CloudDrove][website], we offer expert guidance, implementation support and services to help organisations accelerate their journey to the cloud. Our services include docker and container orchestration, cloud migration and adoption, infrastructure automation, application modernisation and remediation, and performance engineering. +At [CloudDrove][website], has extensive experience in designing, building & migrating environments, securing, consulting, monitoring, optimizing, automating, and maintaining complex and large modern systems. With remarkable client footprints in American & European corridors, our certified architects & engineers are ready to serve you as per your requirements & schedule. Write to us at [business@clouddrove.com](mailto:business@clouddrove.com).

We are The Cloud Experts!


-

We ❀️ Open Source and you can check out our other modules to get help with your new Cloud ideas.

+

We ❀️ Open Source and you can check out our other modules to get help with your new Cloud ideas.

[website]: https://clouddrove.com + [blog]: https://blog.clouddrove.com + [slack]: https://www.launchpass.com/devops-talks [github]: https://github.com/clouddrove [linkedin]: https://cpco.io/linkedin [twitter]: https://twitter.com/clouddrove/ diff --git a/docs/io.md b/docs/io.md new file mode 100644 index 0000000..48ad891 --- /dev/null +++ b/docs/io.md @@ -0,0 +1,69 @@ +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| acm\_certificate\_arn | Existing ACM Certificate ARN. | `string` | `""` | no | +| aliases | List of FQDN's - Used to set the Alternate Domain Names (CNAMEs) setting on Cloudfront. | `list(string)` | `[]` | no | +| allowed\_methods | List of allowed methods (e.g. GET, PUT, POST, DELETE, HEAD) for AWS CloudFront. | `list(string)` |
[
"DELETE",
"GET",
"HEAD",
"OPTIONS",
"PATCH",
"POST",
"PUT"
]
| no | +| bucket\_name | A unique identifier for the origin. | `string` | `""` | no | +| cached\_methods | List of cached methods (e.g. GET, PUT, POST, DELETE, HEAD). | `list(string)` |
[
"GET",
"HEAD"
]
| no | +| cdn\_enabled | Select Enabled if you want to created CloudFront. | `bool` | `true` | no | +| comment | Comment for the origin access identity. | `string` | `"Managed by Clouddrove"` | no | +| compress | Compress content for web requests that include Accept-Encoding: gzip in the request header. | `bool` | `false` | no | +| custom\_domain | If cdn create with custom Domain. | `bool` | `false` | no | +| default\_root\_object | Object that CloudFront return when requests the root URL. | `string` | `"index.html"` | no | +| default\_ttl | Default amount of time (in seconds) that an object is in a CloudFront cache. | `number` | `60` | no | +| domain\_name | The DNS domain name of your custom origin (e.g. clouddrove.com). | `string` | `""` | no | +| enabled | Select Enabled if you want CloudFront to begin processing requests as soon as the distribution is created, or select Disabled if you do not want CloudFront to begin processing requests after the distribution is created. | `bool` | `true` | no | +| enabled\_bucket | If cdn create with s3 bucket. | `bool` | `false` | no | +| environment | Environment (e.g. `prod`, `dev`, `staging`). | `string` | `""` | no | +| error\_caching\_min\_ttl | the value of errro caching min ttl | `string` | `"10"` | no | +| error\_code | List of forwarded cookie names. | `string` | `"403"` | no | +| forward\_cookies | Time in seconds that browser can cache the response for S3 bucket. | `string` | `"none"` | no | +| forward\_cookies\_whitelisted\_names | List of forwarded cookie names. | `list(any)` | `[]` | no | +| forward\_header\_values | A list of whitelisted header values to forward to the origin. | `list(string)` |
[
"Access-Control-Request-Headers",
"Access-Control-Request-Method",
"Origin"
]
| no | +| forward\_query\_string | Forward query strings to the origin that is associated with this cache behavior. | `bool` | `false` | no | +| geo\_restriction\_locations | List of country codes for which CloudFront either to distribute content (whitelist) or not distribute your content (blacklist). | `list(string)` | `[]` | no | +| geo\_restriction\_type | Method that use to restrict distribution of your content by country: `none`, `whitelist`, or `blacklist`. | `string` | `"none"` | no | +| is\_ipv6\_enabled | State of CloudFront IPv6. | `bool` | `true` | no | +| label\_order | Label order, e.g. `name`,`application`. | `list(any)` |
[
"name",
"environment"
]
| no | +| managedby | ManagedBy, eg 'CloudDrove'. | `string` | `"hello@clouddrove.com"` | no | +| max\_ttl | Maximum amount of time (in seconds) that an object is in a CloudFront cache. | `number` | `31536000` | no | +| min\_ttl | Minimum amount of time that you want objects to stay in CloudFront caches. | `number` | `0` | no | +| minimum\_protocol\_version | Cloudfront TLS minimum protocol version. | `string` | `"TLSv1"` | no | +| name | Name (e.g. `app` or `cluster`). | `string` | `""` | no | +| origin\_http\_port | The HTTP port the custom origin listens on. | `number` | `80` | no | +| origin\_https\_port | The HTTPS port the custom origin listens on. | `number` | `443` | no | +| origin\_keepalive\_timeout | The Custom KeepAlive timeout, in seconds. By default, AWS enforces a limit of 60. But you can request an increase. | `number` | `60` | no | +| origin\_path | An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. It must begin with a /. Do not add a / at the end of the path. | `string` | `""` | no | +| origin\_protocol\_policy | The origin protocol policy to apply to your origin. One of http-only, https-only, or match-viewer. | `string` | `"match-viewer"` | no | +| origin\_read\_timeout | The Custom Read timeout, in seconds. By default, AWS enforces a limit of 60. But you can request an increase. | `number` | `60` | no | +| origin\_ssl\_protocols | The SSL/TLS protocols that you want CloudFront to use when communicating with your origin over HTTPS. | `list(string)` |
[
"TLSv1",
"TLSv1.1",
"TLSv1.2"
]
| no | +| price\_class | Price class for this distribution: `PriceClass_All`, `PriceClass_200`, `PriceClass_100`. | `string` | `"PriceClass_100"` | no | +| public\_key | It encoded public key that you want to add to CloudFront to use with features like field-level encryption. | `string` | `""` | no | +| public\_key\_enable | Public key enable or disable. | `bool` | `false` | no | +| repository | Terraform current module repo | `string` | `"https://github.com/clouddrove/terraform-aws-cloudfront-cdn"` | no | +| response\_code | page not found code | `string` | `"404"` | no | +| response\_page\_path | The path of the custom error page (for example, /custom\_404.html). | `string` | `"/index.html"` | no | +| smooth\_streaming | Indicates whether you want to distribute media files in Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. | `bool` | `false` | no | +| ssl\_support\_method | Specifies how you want CloudFront to serve HTTPS requests. One of `vip` or `sni-only`. | `string` | `"sni-only"` | no | +| trusted\_signers | The AWS accounts, if any, that you want to allow to create signed URLs for private content. | `list(string)` | `[]` | no | +| viewer\_protocol\_policy | Allow-all, redirect-to-https. | `string` | `""` | no | +| web\_acl\_id | Web ACL ID that can be attached to the Cloudfront distribution. | `string` | `""` | no | + +## Outputs + +| Name | Description | +|------|-------------| +| access\_identity\_etag | The current version of the origin access identity's information. | +| access\_identity\_id | The identifier for the distribution. | +| arn | The ARN (Amazon Resource Name) for the distribution. | +| domain\_name | The domain name corresponding to the distribution. | +| etag | The current version of the distribution's information. | +| hosted\_zone\_id | The CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. | +| id | The identifier for the distribution. | +| pubkey\_etag | The current version of the public key. | +| pubkey\_id | The identifier for the public key. | +| status | The current status of the distribution. | +| tags | A mapping of tags to assign to the resource. | +