FEATURES:
- resource/deployment: Automatically add a dedicated master tier when it is required due to the number of nodes in the cluster. Also removes it again if the number of nodes drops below the threshold for a dedicated master tier. This does not affect configurations that have explicitly configured a master tier. (#814)
- resource/project: Adds
elasticsearch_project
,observability_project
, andsecurity_project
resources to manage Serverless projects. (#817)
BUG FIXES:
- datasource/gcp_private_service_connect_endpoint: Fixup incorrect reference data for northamerica-northeast1. (#823)
- resource/deployment: Correctly handle deployment-alias being set to empty value. Setting an empty value should remove the alias instead of ignoring the change. (#821)
- resource/deployment: Fixes a bug where a validation would fail when using a dynamic stack version (e.g.
data.ec_stack.latest.version
) (#820)
FEATURES:
- datasource/deployments: Adds additional parameter
name
to allow searching by exact deployment name. (#797) - datasource/deploymenttemplates: Adds a new datasource to list all deployment-templates available in a region. (#799)
- resource/deployment: Added support for autoscaling Machine Learning tier only (#761)
- resource/deployment: Added support for symbols and profiling endpoints. (#783)
- resource/deployment: Validate the Kibana is present when attempting to enable other stateless resources. (#792)
ENHANCEMENTS:
- provider: Remove direct dependency on the old Terraform Plugin SDK (#720)
- provider: Update go version to 1.21 (#713)
- resource/deployment: Add support for instance configuration versions
- Add instance_configuration_version field to all resources and allow to update the instance_configuration_id to a value not defined in the template.
- Add migrate_to_latest_hardware field to allow migrating to the latest deployment template values.
- Add latest_instance_configuration_id and latest_instance_configuration_version read-only fields. (#755)
BUG FIXES:
- resource/deployment: Don't rewrite the observability deployment ID to
self
when it's been explicitly configured. (#789) - resource/deployment: Fix issue setting the elasticsearch_username when resetting the elasticsearch_password (#777)
- resource/deployment: Fix segfaults during Create/Update
- When
elasticsearch
attribute contains bothstrategy
andsnapshot_source
. - When
elasticsearch
definessnapshot
withrepository
that doesn't containreference
. (#719)
- When
- resource/deployment: Persist the snapshot source settings during reads. This fixes a provider crash when creating a deployment from a snapshot. (#788)
- resource/deployment: Update the elasticsearch_username when resetting the password. (#752)
- resource/extension: Fix provider crash when updating the contents of an extension. (#749)
FEATURES:
- resource/deployment: new "elasticsearch"'s "keystore_contents" attribute to manage deployment keystore items during deployment create and update calls. (#674)
ENHANCEMENTS:
- resource/deployment: Set the deployment ID in state as soon as possible to avoid an unmanaged deployment as a result of a subsequent failure. (#690)
- resource/deployment: Validates that the node_types/node_roles configuration used is supported by the specified Stack version. (#683)
BUG FIXES:
- datasource/deployment: Prevent a provider crash when the deployment data source is referencing a deleted deployment (#688)
- resource/deployment: Prevent an endless diff loop after importing deployments with APM or Integrations Server resources. (#689)
- resource/deployment: Prevent endless diff loops when deployment trust settings are empty (#687)
FEATURES:
- Upgrades the provider to terraform-plugin-framework:1.2.0 (#660)
- datasource/privatelink: Adds data sources (
aws_privatelink_endpoint
,azure_privatelink_endpoint
, andgcp_private_service_connect_endpoint
) to lookup private networking endpoint information. (#659) - resource/deployment: Add
reset_elasticsearch_password
attribute to the deployment resource. When true, this will reset the system password for the target deployment, updating theelasticsearch_password
output as a result. (#642) - resource/deployment: Adds endpoints integrations server resources. This allows consumers to explicitly capture service urls for dependent modules (e.g APM and Fleet). (#640)
- Prevents traffic filters managed with the
ec_deployment_traffic_filter_association
from being disassociated by theec_deployment
resource (#419). This also fixes a provider crash for the above scenario present in 0.6 (#621) (#632) - resource/deployment: Fix validation and application of elasticsearch plan strategy. (#648)
- resource/deployment: Fix a value conversion error encountered when attempting to parse deployments without a snapshot repository. (#666)
- datasource/deployments: Fix bug causing a provider crash when no autoscaling fields are defined in the matching deployment. (#667)
- provider: Fix incompatibilities causing infinite configuration drift when used with Terraform CLI 1.4 or higher. (#677)
- resource/deployment: Fix bugs related to transitioning to/from deployment topologies which include dedicated master nodes. (#682)
ENHANCEMENTS:
- Add resource ec_snapshot_repository for usage with Elastic Cloud Enterprise. (#613)
- data-source/traffic_filter: Add
ec_traffic_filter
data source. (#619) - resource/deployment: Ignore stopped resources when calculating the deployment version. (#623)
- resource/ec_deployment: Add snapshot settings (for usage with Elastic Cloud Enterprise only). (#620)
- resource/ec_deployment: Support the template migration api when changing deployment_template_id. (#625)
FEATURES:
Migration to TF Plugin Framework
BREAKING CHANGES:
New schema for ec_deployment
. Existing resources should be imported. Please see NOTES below and README for more details.
BUG FIXES:
NOTES
- Older versions of terraform CLI can report errors with the provider 0.6.0. Please make sure to update Terraform CLI to the latest version.
ec_deployment
has a new schema now but state upgrade is not implemented. The recommended way to proceed with existing TF resources is state import. However, this doesn't import user passwords and secret tokens.- After import, the next plan command may try to delete some empty or zero size attributes, e.g. it can try to delete empty
elasticsearch
config
orcold
tier if configuration doesn't define them andcold
tier size is zero. It should not be a problem. You can eigher execute the plan (the only result should be updated Terraform state while the deployment should stay the same) or add emptycold
tier andconfig
attributes to the configuration. - The migration is based on 0.4.1, so all changes from 0.5.0 and 0.5.1 are omitted.
FEATURES:
- resource/deployment: Utilise the template migration API to build the base update request when changing
deployment_template_id
. This results in more reliable changes between deployment templates. (#547)
FEATURES:
- datasource/privatelink: Adds data sources to obtain AWS/Azure Private Link, and GCP Private Service Connect configuration data. (#533)
- resource/deployment: Adds fleet_https_endpoint and apm_https_endpoint to integrations server resources. This allows consumers to explicitly capture service urls for dependent modules. (#548)
- resource/elasticsearch: Adds support for the
strategy
property to theelasticsearch
resource. This allows users to define how different plan changes are coordinated. (#507)
BUG FIXES:
- resource/deployment: Correctly restrict stateless (Kibana/Enterprise Search/Integrations Server) resources to a single topology element. Fixes a provider crash when multiple elements without an instance_configuration_id were specified. (#536)
- resource/elasticsearchkeystore: Correctly delete keystore items when removed from the module definition. (#546)
- resource: Updates all nested field accesses to validate type casts. This prevents a provider crash when a field is explicitly set to
null
. (#534)
BREAKING CHANGES:
- To support unsized topology elements when autoscaling is enabled, we now include all potentially sized topology elements in the
ec_deployment
state. When autoscaling is enabled, we now require that all autoscaleable topology elements be defined in theelasticsearch
block of anec_deployment
resource. If a topology element is not defined, Terraform will report a persistent diff during a plan/apply. (#472)
BUG FIXES:
- Allow zero sized topology elements when autoscaling is enabled. Previously, including an ML topology block would result in a persistent diff loop when the underlying ML tier remained disabled by autoscaling (i.e no ML jobs were enabled). (#472)
- main: Adds debug mode. Instructions for debugging the provider can be found in the CONTRIBUTING docs. (#430)
FEATURES:
- resource/integrations_server: Adds a new
ec_deployment_integrations_server
resource to the deployment, which has been introduced in Elastic Stack 8.0.0 (#425)
FEATURES:
- New Resource: resource/ec_deployment_elasticsearch_keystore: Adds a new
ec_deployment_elasticsearch_keystore
resource which allows creating and updating Elasticsearch keystore settings. (#364)
ENHANCEMENTS:
- datasource/ec_deployments: Adds four new fields,
deployments.#.elasticsearch_ref_id
,deployments.#.kibana_ref_id
,deployments.#.apm_ref_id
,deployments.#.enterprise_search_ref_id
to the data source. (#380) - datasource/ec_deployments: Adds two new fields,
deployments.#.name
anddeployments.#.alias
to the data source. (#362) - resource/ec_deployment_traffic_filter: Add support for Azure Private Link traffic rules. (#340)
BUG FIXES:
- resource/ec_deployment: Changes the
ec_deployment.elasticsearch.remote_cluster
block toschema.TypeSet
to allow specifying the blocks in any order. (#368) - resource/ec_deployment: Fix bug where setting any of the
elasticsearch.config.user_settings_* = null
would result in a provider panic. (#355) - resource/ec_deployment: Fix bug where some of the settings that were set by the UI were unset by the Terraform provider. See #214 for more details on the bug report. (#361)
- resource/ec_deployment: Fix bug where the deployment alias is ignored. (#341)
- resource/ec_deployment: Fixed a bug that affects partial version upgrades. During an upgrade only a subset of resources would upgrade successfully, but the
version
argument value updated as if all resources were upgraded. Attempts to retry the upgrade would fail since the version difference was not detected. (#371)
BUG FIXES:
- resource/ec_deployment: Fixes a bug which made ec_deployment version upgrades return an API error stating:
node_roles must be provided for all elasticsearch topology elements or for none of them
. (#329)
FEATURES:
- datasource/ec_deployment: Add a new size parameter to allow modifying the default size of
10
in the number of deployments returned by the search request. (#300) - resource/ec_deployment: Supports Autoscaling via two new settings:
elasticsearch.autoscale
("true"
or"false"
) and anelasticsearch.topology.autoscaling
block to modify the default autoscaling policies. For more information, refer to the documentation examples. (#296) - resource/ec_deployment: Supports deployment aliases in a new top level field
alias
. (#298)
ENHANCEMENTS:
- resource/ec_deployment: Retries the Shutdown API call on the destroy operation up to 3 times when the transient "Timeout Exceeded" error returned from the Elastic Cloud API. (#308)
BUG FIXES:
- datasource/ec_deployments: Properly sorts the datasource results by ID. (#322)
- resource/ec_deployment: Fixes a bug which made restoring a snapshot to an existing deployment fail. (#309)
- resource/ec_deployment: Handles account and external trust settings, fixing a bug where the default trust settings are unset and allowing users to set up their own trust settings for an Elasticsearch cluster. (#324)
BUG FIXES:
- resource/ec_deployment: Fixes a bug where specifying a dedicated tier for master or coordinating nodes would result in an API stating that the master or ingest roles are duplicated. (#291)
BREAKING CHANGES:
- ec_deployment: Removes the
apm.version
,enterprise_search.version
andkibana.version
computed fields. (#266) - resource/ec_deployment: Adds support for the newly added data tiers. A new required field
elasticsearch.toplogy.id
has been added, it needs to be set to all explicit Elasticsearch topology declarations. Anode_roles
computed field has been added to the schema and cannot be overridden by the user, versions>=7.10.0
will be automatically migrated by the provider to usenode_roles
from thenode_type_*
settings, these will be removed from the state. Whennode_type_*
fields are explicitly set in the terraform configuration they need to be unset manually by the user. Additionally, it removes theelasticsearch.version
computed field. (#253)
FEATURES:
- New Resource: resource/ec_extension: Add a new resource
ec_extension
which allows users to mange custom Elasticsearch bundles and plugins (#216)
ENHANCEMENTS:
- datasource/ec_deployment: Adds the tag attribute to the
ec_deployment
datasource (#244) - datasource/ec_deployments: Allows filtering deployments by their associated tags (#248)
- resource/ec_deployment: Add tags key / value map (#218)
- resource/ec_deployment: Adds a new
elasticsearch.extension
block which can be used to enable custom Elasticsearch bundles or plugins that have previously been uploaded. (#264)
BUG FIXES:
- datasource/ec_deployment: Fixes bug where the datasource was persisting zero sized topology elements in the state (#242)
- datasource/ec_deployments: Fixes bug where queries containing a hyphens wouldn't work as expected (#241)
- go/build: Fixes bug where the api user agent wasn't stripped of its
-dev
tag prior to releasing (#235) - resource/ec_traffic_filter: Fixes bug where having a traffic filter with a multiple rules will cause an infinite diff due to ordering (#208)
NOTES
The Elastic Cloud Terraform provider allows you to provision Elastic Cloud deployments on any Elastic Cloud platform, whether it’s Elasticsearch Service or Elastic Cloud Enterprise.
This functionality is in beta and is subject to change. The design and code are less mature than official GA features and are being provided as-is with no warranties.
FEATURES