A Terraform configuration is a complete document written in HCL (Hashicorp Configuration language) that tells Terraform how to manage a given collection of infrastructure. Configuration files tell Terraform what plugins to install, what infrastructure to create, and what data to fetch. The main purpose of the Terraform language is declaring resources, which represent infrastructure objects. The following sections describe how to define the resource eaa_application in terraform configuration file.
Manages the lifecycle of the EAA application.
This resource supports the following arguments:
name
- (Required) Name of the applicationdescription
- (Optional) Description of the applicationapp_profile
- (Required) The access application profile. "http", "tcp". Default "http"app_type
- (Required) The type of application configuration. "enterprise", "tunnel". Default "enterprise"client_app_mode
- (Required) The mode of client app. "tcp", "tunnel". Default "tcp"app_category
- (Optional) Name of the application categorydomain
- (Required) The type of access domain. "custom", "wapp". Default "custom"host
- (Required) The external default hostname for the application.servers
- (Optional) EAA application server details. list of dictionaries with following settings- origin_host - The IP address or FQDN of the origin server.
- orig_tls - Enables TLS on the origin server.
- origin_port - The port number of the origin server.
- origin_protocol - The protocol of the origin server connection. Either ssh or http.
tunnel_internal_hosts
- (Optional)- host - The IP address or FQDN of the hsot
- port_range - the port range of the host
- proto_type - The protocol of the host. Either "tcp" or "udp"
agents
- (Optional) EAA application connector details. list of agent namespopregion
- (Optional) The target region to deploy the applicationpopname
- (Computed) The name for the target pop to deploy the applicationauth_enabled
- (Required) - Is the application authentication enabledapp_authentication
- (Optional) dictionary with the application authentication data- app_idp - Name of the application IDP
- app_directories - List of application directories
- name - Name of the dictionary
- app_groups - list of subset of directory's groups that are assigned to the application.
- app_directories - List of application directories
- app_idp - Name of the application IDP
advanced_settings
- (Optional) dictionary of advanced settings- is_ssl_verification_enabled - (Optional) controls if the EAA connector performs origin server certificate validation
- ignore_cname_resolution - if the end user is accessing the application through Akamai CDN, which connects to the EAA cloud.
- g2o_enabled - Enables a G2O configuration for an application. Used only if you've enabled Akamai Edge Enforcement.
- x_wapp_read_timeout - (Required for Tunnel apps)
- internal_hostname - internal host name
- internal_host_port - internal host port
app_operational
- (Computed) if the app is operationalapp_status
- (Computed) status of the appapp_deployed
- (Computed) is the app deployedcname
- (Computed) cname of the appuuid_url
- (Computed) uuid of the app
The application resource is eaa_application. In order to create a new application through terraform, the following block could be used.
resource "eaa_application" "tfappname" {
provider = eaa /* eaa provider */
name = "confluence" /* Application Name */
description = "app created using terraform" /* Application Description */
host = "confluence.acmewapp.com" /* The external hostname for the application */
app_profile = "http" /* The access application profile */
app_type = "enterprise" /* application type */
domain = "wapp"
client_app_mode = "tcp" /* mode of client applications */
servers { /* EAA application server details. */
orig_tls = true
origin_protocol = "https"
origin_port = 443
origin_host = "10.2.0.201"
}
popregion = "us-east-1" /* The target region to deploy the app */
agents = ["agent1", "agent2"] /* List of connectors assigned to application */
auth_enabled = "true" /* is app authentication enabled *
app_authentication {
app_idp = "enterprise-idp" /* name of IDP assigned to app */
app_directories { /* List of directories assigned to the application *?
name = "Cloud Directory"
app_groups { /* List of groups under the directory that are assigned to the applicaion */
name = "group-1"
}
app_groups {
name = "group-2"
}
}
}
}
advanced_settings {
is_ssl_verification_enabled = "false" /* is the connector verifying the origin server certificate */
ignore_cname_resolution = "true" /* if the end user is accessing the application through Akamai CDN, which connects to the EAA cloud *
g2o_enabled = "true" /* Is G2O enabled */
}
example application configurations could be found under the examples directory.