Terraform Enterprise Plugin Reference 25.1.x
The XL Deploy Terraform Enterprise plugin deploys the terraform.Module on Terraform Enterprise as the same manner as targeting terraform.TerraformClient. The plugin defines the terraform.ConfigurationSpec. It gathers references on Terraform modules and manages the output->input connections between them. The plugin offers a new extension point to define new structured-type CI based on existing Terraform modules. The plugin exposes the mapper API to allow creating new Infrastructure CI based on the execution of the terraform.Configuration.
Requirements
- XL Deploy 9.5.0 or later.
- Terraform 0.14.6
| Terraform Version | AWS Artifacts | | | | GCP Artifacts | Azure Artifacts | |:-----------------:|:-------------:|:----------:|:---------:|:--------:|---------------|-----------------| | | S3-Bucket | S3-Content | AWS Stack | Multi | GCP-Module | Azure-VM | | 0.14.6 | Yes | Yes | No | Yes | Yes | Yes | | 0.13.2 | Not Supported | Not Supported | Yes | Not Supported | Not Supported | Not Supported | | 0.12.6 | Not Supported | Not Supported | Not Supported | Not Supported | Not Supported | Not Supported |
- xld-terraform-enterprise-plugin-10.1.0 onwards is compatible with Java 11
- xld-terraform-enterprise-plugin-10.0.0 and xld-terraform-enterprise-plugin-9.7.0 are compatible with Java 8
CI Reference
Configuration Item Overview
Deployeds
| CI | Description |
|---|---|
| terraformEnterprise.ExecutedModule | Terraform input configuration |
Containers
| CI | Description |
|---|---|
| terraformEnterprise.AwsProvider | AWS provider specification |
| terraformEnterprise.AzureProvider | Azure provider specification |
| terraformEnterprise.GcpProvider | GCP provider specification |
| terraformEnterprise.Organization | Connection definition for terraform enterprise organisation |
| terraformEnterprise.Provider | Container provider specification |
| terraformEnterprise.Workspace | Container workspace specification |
Other Configuration Items
| CI | Description |
|---|---|
| terraformEnterprise.Mappers | Description unavailable |
Configuration Item Details
terraformEnterprise.AwsProvider
| Type Hierarchy | terraformEnterprise.Provider >> udm.BaseContainer >> udm.BaseConfigurationItem |
|---|---|
| Interfaces | udm.Container, udm.Taggable |
AWS provider specification
| Parent | ||
|---|---|---|
|
|
| |
|
Workspace
|
| Public properties | ||
|---|---|---|
|
|
|
accessKey: STRING
|
|
The access key to use when connecting to AWS(AWS_ACCESS_KEY_ID).
|
||
|
|
|
accessSecret: STRING
|
|
The access secret key to use when connecting to AWS (AWS_SECRET_ACCESS_KEY).
|
||
|
|
|
additionalMappers: MAP_STRING_STRING
|
|
Additional Mappers
|
||
|
|
|
credentials: MAP_STRING_STRING
|
|
Credentials
|
||
|
|
|
defaultRegion: STRING
|
|
The default region where to apply the configuration (AWS_DEFAULT_REGION).
|
||
|
|
|
tags: SET_OF_STRING
|
|
If set, only deployables with the same tag will be automatically mapped to this container.
|
||
|
|
|
variables: MAP_STRING_STRING
|
|
Variables
|
| Hidden properties | ||
|---|---|---|
|
|
|
credentialsPropertyMapping: MAP_STRING_STRING = { accessKey=AWS_ACCESS_KEY_ID, accessSecret=AWS_SECRET_ACCESS_KEY, defaultRegion=AWS_DEFAULT_REGION }
|
|
Credentials Property Mapping
|
terraformEnterprise.AzureProvider
| Type Hierarchy | terraformEnterprise.Provider >> udm.BaseContainer >> udm.BaseConfigurationItem |
|---|---|
| Interfaces | udm.Container, udm.Taggable |
Azure provider specification
| Parent | ||
|---|---|---|
|
|
| |
|
Workspace
|
| Public properties | ||
|---|---|---|
|
|
|
clientId: STRING
|
|
Client ID to use for the account (ARM_CLIENT_ID),
|
||
|
|
|
clientKey: STRING
|
|
Client Key to use for the account (ARM_CLIENT_SECRET)
|
||
|
|
|
credentialsPropertyMapping: MAP_STRING_STRING = { subscriptionId=ARM_SUBSCRIPTION_ID, tenantId=ARM_TENANT_ID, clientId=ARM_CLIENT_ID, clientKey=ARM_CLIENT_SECRET }
|
|
Credentials Property Mapping
|
||
|
|
|
subscriptionId: STRING
|
|
Subscription ID (ARM_SUBSCRIPTION_ID)
|
||
|
|
|
tenantId: STRING
|
|
Tenant ID to use for the account (ARM_TENANT_ID)
|
||
|
|
|
additionalMappers: MAP_STRING_STRING
|
|
Additional Mappers
|
||
|
|
|
credentials: MAP_STRING_STRING
|
|
Credentials
|
||
|
|
|
tags: SET_OF_STRING
|
|
If set, only deployables with the same tag will be automatically mapped to this container.
|
||
|
|
|
variables: MAP_STRING_STRING
|
|
Variables
|
terraformEnterprise.ExecutedModule
| Type Hierarchy | udm.BaseDeployedInfrastructureAsCode >> udm.BaseDeployedArtifact >> udm.BaseDeployed >> udm.BaseConfigurationItem |
|---|---|
| Interfaces | udm.Artifact, udm.Deployed, udm.DerivedArtifact, udm.EmbeddedDeployedContainer |
Terraform input configuration
| Parent | ||
|---|---|---|
|
|
|
container:
CI<udm.Container>
|
|
The container on which this deployed runs.
|
| Public properties | ||
|---|---|---|
|
|
|
applyDestroyOperation: BOOLEAN
|
|
Apply Destroy Operation
|
||
|
|
|
automaticDictionary: BOOLEAN = true
|
|
If true, XL Deploy will automatically create a dictionary containing the output variables and add it to the environment.
|
||
|
|
|
deployable:
CI<udm.Deployable>
|
|
The deployable that this deployed is derived from.
|
||
|
|
|
dictionaryPath: STRING
|
|
Path to the dictionary containing the output variables. If empty, the dictionary name will be the name of the template concatenated with -dictionary. If you specify a dictionary name, it will be created in the same folder as the target environment or in the folder specified for the new environment. You can also specify a full path starting with 'Environments/'.
|
||
|
|
|
environmentPath: STRING
|
|
Path to the new environment. If empty, the generated CIs will be added to the target environment. If you specify an environment name, the new environment will be created in the same folder as the target environment. If you specify a folder and an environment name, they will be created in the same folder as the target environment. You can also specify a full path starting with 'Environments/'.
|
||
|
|
|
generateCIsFromResources: BOOLEAN = true
|
|
If true, XL Deploy will automatically create CIs based on resources that are deployed.
|
||
|
|
|
generatedConfigurationItems:
SET_OF_CI<udm.ConfigurationItem>
|
|
Set of infrastructure resources mapped to configuration items.
|
||
|
|
|
inputVariables: MAP_STRING_STRING
|
|
Input variables to be used in the Terraform configuration.
|
||
|
|
|
outputVariables: MAP_STRING_STRING
|
|
Output variables captured in deployed. Key is the alias name and value is the terraform output property value for a given resource.
|
||
|
|
|
placeholders: MAP_STRING_STRING
|
|
A Map containing all the placeholders mapped to their values. Special values are <ignore> or <empty>
|
||
|
|
|
secretInputVariables: MAP_STRING_STRING
|
|
Secret input variables to be used in the Terraform configuration.
|
||
|
|
|
secretOutputVariables: MAP_STRING_STRING
|
|
Secret out variables.
|
| Hidden properties | ||
|---|---|---|
|
|
|
boundConfigurationItems:
SET_OF_CI<udm.ConfigurationItem>
|
|
The set of created CIs.
|
terraformEnterprise.GcpProvider
| Type Hierarchy | terraformEnterprise.Provider >> udm.BaseContainer >> udm.BaseConfigurationItem |
|---|---|
| Interfaces | udm.Container, udm.Taggable |
GCP provider specification
| Parent | ||
|---|---|---|
|
|
| |
|
Workspace
|
| Public properties | ||
|---|---|---|
|
|
|
jsonKeyFile: STRING
|
|
The json keyfile content using json format to connect to GCP (GOOGLE_CLOUD_KEYFILE_JSON).
|
||
|
|
|
project: STRING
|
|
The project (GOOGLE_PROJECT).
|
||
|
|
|
additionalMappers: MAP_STRING_STRING
|
|
Additional Mappers
|
||
|
|
|
credentials: MAP_STRING_STRING
|
|
Credentials
|
||
|
|
|
region: STRING
|
|
The default region where to apply the configuration (GOOGLE_REGION).
|
||
|
|
|
tags: SET_OF_STRING
|
|
If set, only deployables with the same tag will be automatically mapped to this container.
|
||
|
|
|
variables: MAP_STRING_STRING
|
|
Variables
|
||
|
|
|
zone: STRING
|
|
The default region where to apply the configuration (GOOGLE_ZONE).
|
| Hidden properties | ||
|---|---|---|
|
|
|
credentialsPropertyMapping: MAP_STRING_STRING = { project=GOOGLE_PROJECT, region=GOOGLE_REGION, zone=GOOGLE_ZONE, jsonKeyFile=GOOGLE_CLOUD_KEYFILE_JSON }
|
|
Credentials Property Mapping
|
terraformEnterprise.Mappers
| Virtual Type |
|---|
Description unavailable
terraformEnterprise.Organization
| Type Hierarchy | udm.BaseContainer >> udm.BaseConfigurationItem |
|---|---|
| Interfaces | udm.Container, udm.Taggable |
Connection definition for terraform enterprise organisation
| Public properties | ||
|---|---|---|
|
|
|
defaultLogLevel: INTEGER = 30
|
|
Default Log Level
|
||
|
|
|
pathToCAFile: STRING = ./plugins/my-certificates.jar/certifi/cacert.pem
|
|
if verifyCertificates property value is true, Path to the CA pem file. If the pem file is in archive file (zip,jar),use this syntax. /a/b/to/myarchive.jar/path/to/ca/foo.pem
|
||
|
|
|
token: STRING
|
|
Token
|
||
|
|
|
url: STRING
|
|
Url
|
||
|
|
|
host:
CI<overthere.Host>
|
|
Host
|
||
|
|
|
organizationName: STRING
|
|
organization's name in terraform enterprise
|
||
|
|
|
proxyServer:
CI<credentials.ProxyServer>
|
|
Proxy Server
|
||
|
|
|
tags: SET_OF_STRING
|
|
If set, only deployables with the same tag will be automatically mapped to this container.
|
||
|
|
|
verifyCertificates: BOOLEAN
|
|
Verify certificates on HTTPS connections
|
| Control task | Parameter CI | Attributes | Description |
|---|---|---|---|
| checkConnection |
delegate = jythonScript, script = xldtfe/check_connection.py |
No description. |
terraformEnterprise.Provider
| Type Hierarchy | udm.BaseContainer >> udm.BaseConfigurationItem |
|---|---|
| Interfaces | udm.Container, udm.Taggable |
Container provider specification
| Parent | ||
|---|---|---|
|
|
| |
|
Workspace
|
| Public properties | ||
|---|---|---|
|
|
|
credentialsPropertyMapping: MAP_STRING_STRING = { empty=empty }
|
|
Credentials Property Mapping
|
||
|
|
|
additionalMappers: MAP_STRING_STRING
|
|
Additional Mappers
|
||
|
|
|
credentials: MAP_STRING_STRING
|
|
Credentials
|
||
|
|
|
tags: SET_OF_STRING
|
|
If set, only deployables with the same tag will be automatically mapped to this container.
|
||
|
|
|
variables: MAP_STRING_STRING
|
|
Variables
|
terraformEnterprise.Workspace
| Type Hierarchy | udm.BaseContainer >> udm.BaseConfigurationItem |
|---|---|
| Interfaces | udm.Container, udm.Taggable |
Container workspace specification
| Parent | ||
|---|---|---|
|
|
| |
|
Organization
|
| Public properties | ||
|---|---|---|
|
|
|
debug: BOOLEAN
|
|
Debug
|
||
|
|
|
deleteWorkspace: BOOLEAN
|
|
Delete Workspace
|
||
|
|
|
tags: SET_OF_STRING
|
|
If set, only deployables with the same tag will be automatically mapped to this container.
|
||
|
|
|
terraformVersion: STRING
|
|
Terraform Version
|
||
|
|
|
workspaceName: STRING
|
|
Workspace Name
|