Terraform Enterprise Plugin Reference 25.3.0

    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 25.3.x or later.
    • Java 17 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-25.3.0 onwards requires Java 17 or later
    • 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

    CIDescription
    terraformEnterprise.ExecutedModule Terraform input configuration

    Containers

    CIDescription
    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

    CIDescription
    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 taskParameter CIAttributesDescription
    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