Terraform can also be used for bulk operations such as onboardings or modifications. This template creates 3 new properties during a single terraform apply for properties named after dev, qa, and test. However, these properties can be different apps (e.g. www, login, api, etc), not necessarily different testing environments.
By using the for_each meta-argument all the resources are created during a single terraform apply as opposed to other multi-environment setups where each configuration can be deployed independently. The latter is more convenient for day to day operations.
Basic usage of this module is as follows:
module "example" {
source = "<module-location>"
# Required variables
activate_property_on_production = <bool>
activate_property_on_staging = <bool>
akamai_access_token = <string>
akamai_client_secret = <string>
akamai_client_token = <string>
akamai_host = <string>
certificate = <number>
domain = <string>
email = <string>
group_name = <string>
properties = <map(object({
cpcode_name = string
origin_hostname = string
hostnames = list(string)
edge_hostname = string
}))>
version_notes = <string>
# Optional variables
akamai_account_key = <string> | default: ""
edge_hostname_ip_behavior = <string> | default: "IPV6_COMPLIANCE"
product_id = <string> | default: "Fresca"
}| Name | Version |
|---|---|
| terraform | >= 1.9.0 |
| akamai | ~> 10.0 |
No modules.
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| activate_property_on_production | n/a | bool |
n/a | yes |
| activate_property_on_staging | n/a | bool |
n/a | yes |
| akamai_access_token | Akamai access token | string |
n/a | yes |
| akamai_client_secret | Akamai client secret | string |
n/a | yes |
| akamai_client_token | Akamai client token | string |
n/a | yes |
| akamai_host | Akamai host | string |
n/a | yes |
| certificate | Akamai Certificate Enrollment ID | number |
n/a | yes |
| domain | Domain for all the properties | string |
n/a | yes |
| Notification email | string |
n/a | yes | |
| group_name | Akamai Group Name | string |
n/a | yes |
| properties | n/a | map(object({ |
n/a | yes |
| version_notes | Version Notes for the Property | string |
n/a | yes |
| akamai_account_key | Akamai account key (optional) | string |
"" |
no |
| edge_hostname_ip_behavior | Akamai Edge Hostname IP behavior | string |
"IPV6_COMPLIANCE" |
no |
| product_id | Akamai Property Product ID | string |
"Fresca" |
no |
| Name | Description |
|---|---|
| contract_id | n/a |
| group_id | n/a |