The documented minimum supported Elastic Stack version is now 8.0. 7.x is no longer included in the acceptance test matrix or officially supported. Compatibility branches and version gates for pre-8.0 Elasticsearch behavior have been removed from the transform and ILM resources.
Previously elasticstack_kibana_security_detection_rule used a map of strings for action parameters. This caused issues with actions requiring non-string based parameters (see #2339 for an example). This has been changed to a single JSON string value which supports arbitrary param values.
Previously
resource "elasticstack_kibana_security_detection_rule" "test" {
...
actions = [
{
...
params = {
message = "Test state upgrade alert"
}
...
]
}becomes
resource "elasticstack_kibana_security_detection_rule" "test" {
...
actions = [
{
...
params = jsonencode({
message = "Test state upgrade alert"
})
...
]
}- Fix ILM policy delete failures when the policy is still referenced by indices (e.g. Fleet-managed data stream backing indices) (#2714)
- Migrated
elasticstack_elasticsearch_data_streamresource from Plugin SDK to Plugin Framework (#2744) - Add elasticstack_apm_source_map resource for managing APM source maps via Kibana API (#2712)
- Fixed enrich policy resource recreation on every apply when
queryis not configured, by treating marshaled-null API responses as equivalent to an absent query. (#2691) - Duplicate
actionsblockgroupvalues are now rejected at plan time with a clear error instead of failing with an opaque HTTP 400 at apply time. (#2656) - Poll for job closed state before deleting ML anomaly detection job to eliminate HTTP 409 version_conflict_engine_exception on teardown (#2669)
- Adds
elasticstack_fleet_proxyresource for managing fleet proxies (#2364) elasticstack_fleet_integrationnow syncsspace_idfrom Fleet on both create and read, preventing state drift that caused unexpected forced replacements. (#2582)- Add space-aware Kibana asset management for elasticstack_fleet_integration on Kibana >= 8.15.0 (#2608)
- Internal migration of ingest processor data sources to Plugin Framework. Add missing common fields to geoip and user_agent processors. (#2609)
- Add optional
use_existingonelasticstack_elasticsearch_indexto adopt an existing index at create instead of failing on duplicate. (#2589) - Fix plan-time params validation in
elasticstack_kibana_alerting_rulefor xpack.uptime.alerts.monitorStatus by using the correct generated struct and expanding legacy filter fields. (#2573) - Fix perpetual plan diff for
indices_options.expand_wildcards = ["all"]in ML datafeed resource (#2572) - add tamper protection option to agent policy ressource (#2086)
- Drop Elastic Stack 7.x support floor. The provider now documents and tests against Elastic Stack 8.0+. (#2554)
- Fix perpetual plan drift on elasticstack_elasticsearch_index mappings when an index template injects additional mapping content. (#2542)
- Align Kibana SLO KQL schema and API mapping with object-form filters, settings, artifacts, and enabled state. (#2495)
elasticstack_kibana_spacenow correctly clearsdescription,initials,color, andimage_urlwhen the configuration sets them to an empty string. Previously those explicit empty-string assignments were silently dropped from the outbound API request and Kibana retained the prior value. (#2452)- elasticstack_fleet_agent_policy no longer errors with "Provider produced inconsistent result" when the Fleet API returns an empty description for a policy whose description is unset in the Terraform configuration. (#2448)
- Migrate
elasticstack_elasticsearch_index_templateresource and data source to the Terraform Plugin Framework. Existing state is upgraded automatically (v0 → v1); attribute names, paths, block syntax, identity, and import behavior are preserved. (#2515) elasticstack_fleet_integration_policycan now be imported from non-default Kibana spaces using a composite<space_id>/<policy_id>import ID (#2522)- Add
template.data_stream_optionsblock toelasticstack_elasticsearch_index_templateto configure the failure store for new data streams via Terraform (#2509) - elasticstack_fleet_integration now detects out-of-band package upgrades and downgrades during refresh by consulting InstallationInfo.Version; terraform plan surfaces the drift instead of reporting "No changes". (#2447)
- elasticstack_elasticsearch_security_role now detects out-of-band drift on description, metadata, and other attributes during refresh; terraform plan no longer silently returns "No changes" when a role is modified outside Terraform. (#2446)
- New
elasticstack_fleet_custom_integrationresource for uploading and managing locally-built Fleet integration packages via the EPM binary upload API (#2387) - Change
elasticstack_kibana_security_detection_rule.actions[].paramsto a JSON string rather than a map of string values. This allows setting arbitrary, nested param values (#2340) - Add import support to the elasticstack_elasticsearch_enrich_policy resource (#2427)
- Add ssl.verification_mode attribute to the elasticstack_fleet_output ssl block (#2415)
0.14.5 - 2026-04-21
- Fix
elasticstack_kibana_slo.metric_custom_indicatorto support doc_count aggregation by making field optional and sending the no-field API variant (#2394) - Fix "provider produced inconsistent result after apply" for SLO resources when objective target, timeslice target, or histogram range from/to values are not exactly representable in float32 (#2401)
- Add
elasticstack_fleet_agent_download_sourceresource (#2081)
0.14.4 - 2026-04-20
- Add
elasticstack_kibana_agentbuilder_agentresource and data source (#2295) - Add
create_new_copiesandcompatibility_modeattributes toelasticstack_kibana_import_saved_objects(#2289) - Fix
elasticstack_elasticsearch_watchupdates when Watcher redacts nested action secrets on refresh. (#2296) - Migrated
elasticstack_elasticsearch_watchto the Terraform Plugin Framework (#2287) - Add
elasticstack_kibana_agentbuilder_toolresource and data source (#2111) - Fix state consistency with semantic text types in
elasticstack_elasticsearch_index(#2112) - Add
elasticstack_elasticsearch_inference_endpointresource. (#1955) elasticstack_kibana_data_view: Support in-place updates of thenamespacesfield via the Kibana Spaces API (POST /api/spaces/_update_objects_spaces), preventing data view recreation when sharing across spaces. Previously, any change tonamespaceswould force replacement of the resource, breaking dependent alerting rules that reference the data view by ID. (#2129)- Add
elasticstack_kibana_agentbuilder_workflowresource and data source (#1923) - Add
elasticstack_fleet_outputdata source. (#1762) - Fix
termFieldvalidation for ESQL.es-queryalert rules inelasticstack_kibana_alerting_rule. (#1914) - Fix perpetual diff in
elasticstack_elasticsearch_index_templateifsearch_routingorindex_routingwas unset butroutingwas set (#1841) - Fix provider panic in
elasticstack_fleet_integration_policywhen the integration version is no longer available in the package registry. (#1913) - Add
elasticstack_elasticsearch_ingest_processor_inferencedata source (#1956) - Add an experimental flag to skip synthetics location validation. (#1924)
- Add flapping detection to
elasticstack_kibana_alerting_rule. (#1966) - Attempt recovery when data view creation fails (#2024)
- Fix several "Provider produced inconsistent result after apply" errors in the anomaly detection job resource. (#2034)
- Remove deprecation warning on the
elasticsearch_connectionattribute provider wide (#2100) - Migrate
elasticstack_elasticsearch_index_lifecycleto the Terraform Plugin Framework (#2002) - Add
space_idtoelasticstack_kibana_synthetics_private_location(#2142) - Use space-scoped endpoints for Fleet resources to allow space-restricted roles to properly manage Fleet resources. (#2084)
- Fix perpetual
id"known after apply" diff inelasticstack_elasticsearch_security_roleby addingUseStateForUnknownplan modifier to the computedidattribute. (#2160) - Add
elasticstack_fleet_elastic_defend_integration_policyresource (#2147)
0.14.3 - 2026-03-02
- Add
elasticstack_fleet_outputdata source. (#1762) - Add
elasticstack_elasticsearch_index_template_ilm_attachmentresource to attach ILM policies to Fleet-managed or externally-managed index templates via the@customcomponent template. (#1641) - Fix
elasticstack_kibana_slotimeslice_metric_indicatorto supportlast_value,cardinality, andstd_deviationaggregations which are valid in the Kibana SLO API but were previously rejected by the provider. (#1749) - Add
elasticstack_kibana_security_enable_ruleresource (#1710) - Fix value conversion error in
elasticstack_elasticsearch_index_aliaswhen indices are unknown at plan time. (#1755) - Fix state consistency error in
elasticstack_kibana_security_exception_listwhenos_typesare used in Elastic Stack 9.2 (#1740) - Fix state consistency error in
elasticstack_elasticsearch_security_rolewhendescriptionis empty ("") (#1780) - Fix state consistency issue in
elasticstack_kibana_slowhengroup_byis set to an empty list (#1776) - Fix state consistency error in
elasticstack_kibana_security_detection_rulewhenthreat_filteris supplied (#1758) - Fix state consistency error in
elasticstack_fleet_integration_policywhen the policy was updated outside of the Terraform workflow (#1616)
0.14.2 - 2026-02-19
- Add parameter validation and default normalization for
elasticstack_kibana_alerting_ruleto prevent inconsistent state errors caused by API-injected defaults. (#1648) - Fix JSON marshaling error in
elasticstack_kibana_slowhengoodortotalfields inkql_custom_indicatorare empty or null. (#1729)
0.14.1 - 2026-02-18
- Fix provider panic in
elasticstack_kibana_slowhen SLO updates error without a HTTP response. (#1725) - Fix inconsistent state error in
elasticstack_kibana_alerting_rulewhenalert_delayis not specified. (#1726)
0.14.0 - 2026-02-16
The provider was only considering the first entry in the space_ids set (#1642). Extending the resource to correctly handle multiple spaces would not make sense as a single Terraform resource. Instead this attribute is being reduced to a single string, with practitioners able to manage the installation of an integration across multiple spaces through multiple instances of this resource.
Existing usage of the space_ids attribute must be migrated to space_id:
resource "elasticstack_fleet_integration" "tcp" {
name = "tcp"
version = "1.16.0"
space_ids = ["default", "o11y"]
}becomes:
resource "elasticstack_fleet_integration" "tcp-default" {
name = "tcp"
version = "1.16.0"
space_id = "default"
}
resource "elasticstack_fleet_integration" "tcp-o11y" {
name = "tcp"
version = "1.16.0"
space_id = "o11y"
}The input block in the elasticstack_fleet_integration_policy resource has been restructured into the inputs map attribute.
This transition:
- Allows the provider to implement semantic equality checking across all inputs within the integration policy. This change:
- Prevents several state consistency errors experienced whilst using this resource
- Allow practitioners to only define configuration for the inputs, streams, and variables that differ from the package defined defaults.
- Reduces the scope of the large
streams_jsonstring. Instead allowing each stream to be defined as it's own object for Terraform drift checking.
Existing usage of the input block must be migrated to the attribute syntax. Some examples of this migration can be seen in the changes to the provider automated tests. As a step-by-step guide however:
inputblocks are merged together into a singleinputsattribute- The
input_idattribute is removed, and instead used as the map key when defining an input streams_jsonis removed, with the contents becoming astreamsmap attribute
Combined, this looks like:
input {
input_id = "tcp-tcp"
enabled = false
streams_json = jsonencode({
"tcp.generic" : {
"enabled" : false
"vars" : {
"listen_address" : "localhost"
"listen_port" : 8085
"data_stream.dataset" : "tcp.generic"
"tags" : []
"syslog_options" : "field: message"
"ssl" : ""
"custom" : ""
}
}
})
}becoming
inputs = {
"tcp-tcp" = {
enabled = false
streams = {
"tcp.generic" = {
enabled = false
vars = jsonencode({
"listen_address" : "localhost"
"listen_port" : 8085
"data_stream.dataset" : "tcp.generic"
"tags" : []
"syslog_options" : "field: message"
"ssl" : ""
"custom" : ""
})
}
}
}
}- Add import support for
elasticstack_elasticsearch_scriptresource (#1637) - Migrate
elasticstack_kibana_alerting_ruleto use plugin framework (#1664) - Migrate
elasticstack_kibana_sloresource to the Terraform plugin framework (#1647) - Prevent a provider error with
elasticstack_fleet_integration_policywhen moving between a singlepolicy_idand multiplepolicy_ids(#1644) - Fix concurrent map write errors with
elasticstack_fleet_integration_policy(#1629) - Add support for Fleet API installation parameters to
elasticstack_fleet_integrationresource:prerelease,ignore_mapping_update_errors(8.11.0+),skip_data_stream_rollover(8.11.0+), andignore_constraints. These parameters provide full control over package installation behavior and enable installation of prerelease (beta, non-GA) packages. - Correctly handle 404 responses when reading
elasticstack_fleet_integrationresources (#1608) - Fix handling custom
policy_idattributes inelasticstack_fleet_integration_policyresources (#1594) - Add
advanced_settingstoelasticstack_fleet_agent_policyto configure agent logging, CPU limits, and download settings (#1545) - Prevent provider panic when importing a non-existant
elasticstack_elasticsearch_ml_datafeed. (#1579) - Fix handling of empty
exceptattributes inelasticstack_elasticsearch_security_role(#1581) - Fix the enabled property being ignored in
elasticstack_kibana_alerting_rule(#1527) - Add
advanced_monitoring_optionstoelasticstack_fleet_agent_policyto configure HTTP monitoring endpoint and diagnostics settings (#1537) - Move the
inputblock to aninputsmap inelasticstack_fleet_integration_policy(#1482) - Fix
elasticstack_elasticsearch_ml_anomaly_detection_jobimport to be resilient to sparse state values - Fix a state consistency issue when an
elasticstack_elasticsearch_ml_datafeed_stateresource withoutstartconfigured is started after being stopped. (#1563) - Fix a state consistency issue when
elasticstack_elasticsearch_ml_datafeed_statestartandendtimes are specified in a timezone that is not the server timezoneelasticstack_elasticsearch_ml_datafeed_stateresource withoutstartconfigured is started after being stopped. (#1563) - Fix an issue where
elasticstack_elasticsearch_ml_datafeed_statestartandendtimes where treated by the provider as unix seconds, but by the API as unix milliseconds. - Only require input parameters in
elasticstack_fleet_integration_policyto be specified if they differ from integration defaults (#1558) - Only require vars in
elasticstack_fleet_integration_policyto be specified if they differ from integration defaults (#1593) - Allow space restricted roles to manage
elasticstack_fleet_agent_policyresources. (#1597) - Fix missing timeslice's metric-scoped
filterparameter for doc_count aggregations (#1636) - Collapse
space_idsto a singlespace_idinelasticstack_fleet_integration(#1645) - Add
bearer_tokenauthentication support to Kibana and Fleet provider configurations. Bearer tokens configured in theelasticsearchblock are now propagated tokibanaandfleetblocks as fallback credentials, consistent with the existing behavior forusername,password, andapi_key. New environment variablesKIBANA_BEARER_TOKENandFLEET_BEARER_TOKENare also supported. (#1690)
0.13.1 - 2025-12-12
- Fix handling empty types in
elasticstack_elasticsearch_ml_anomaly_detection_job(#1544) - Fix handling empty
clustersandrun_asattributes inelasticstack_elasticsearch_security_roleresource (#1542)
0.13.0 - 2025-12-10
The alias block in the elasticstack_elasticsearch_index resource has been moved to an attribute.
This transition provides better support for future changes in both the provider and the underlying Terraform framework.
Existing usage of the alias block must be migrated to the attribute syntax. For example:
alias {
name = "my_alias_1"
}
alias {
name = "my_alias_2"
filter = jsonencode({
term = { "user.id" = "developer" }
})
}becomes
alias = [
{
name = "my_alias_1"
},
{
name = "my_alias_2"
filter = jsonencode({
term = { "user.id" = "developer" }
})
}
]- Fix
elasticstack_kibana_action_connectorfailing with "inconsistent result after apply" when config contains null values (#1524) - Add
host_name_formattoelasticstack_fleet_agent_policyto configure host name format (hostname or FQDN) (#1312) - Create
elasticstack_kibana_prebuilt_ruleresource (#1296) - Add
required_versionstoelasticstack_fleet_agent_policy(#1436) - Migrate
elasticstack_elasticsearch_security_roleresource to Terraform Plugin Framework (#1330) - Fix an issue where the
elasticstack_fleet_outputresource would error due to inconsistent state after an ouptut was edited in the Kibana UI (#1506) - Allow
indexanddata_view_idvalues to both be unknown during planning inelasticstack_kibana_security_detection_rule(#1499) - Support
.bedrockand.gen-aiconnectors (#1467) - Support the
solutionattribute inelasticstack_kibana_spacefrom 8.16 (#1486) - Add
elasticstack_elasticsearch_aliasresource (#1343) - Add
mapping_total_fields_limittoelasticstack_elasticsearch_index(#1494) - Add
elasticstack_kibana_default_data_viewresource (#1379) - Add support for Security Exceptions
- Add
elasticstack_kibana_security_exception_itemresource (#1496) - Add
elasticstack_kibana_security_exception_listresource (#1495) - Add
elasticstack_kibana_security_listresource (#1489) - Add
elasticstack_kibana_security_list_itemresource (#1492) - Add
elasticstack_kibana_security_list_data_streamsresource (#1525)
- Add
0.12.2 - 2025-11-19
- Fix
elasticstack_elasticsearch_snapshot_lifecyclemetadata type conversion causing terraform apply to fail (#1409) - Add new
elasticstack_elasticsearch_ml_anomaly_detection_jobresource (#1329) - Add new
elasticstack_elasticsearch_ml_datafeedresource (#1340) - Add
space_idsattribute to all Fleet resources to support space-aware Fleet resource management (#1390) - Add back missing import support for
elasticstack_elasticsearch_security_role_mapping(#1441) - Add new
elasticstack_elasticsearch_ml_job_stateresource (#1337) - Add new
elasticstack_elasticsearch_ml_datafeed_stateresource (#1422) - Add
output_idtoelasticstack_fleet_integration_policyresource (#1445) - Make
hostsattribute required inelasticstack_fleet_outputresource (#1450) - Fix
elasticstack_kibana_security_detection_ruleto properly respectspace_id
0.12.1 - 2025-10-22
- Fix regression restricting the characters in an
elasticstack_elasticsearch_role_mappingname. (#1373) - Add schema validations to require either (but not both)
indexanddata_view_idis set for relevant Security Detection Rules (#1381)
0.12.0 - 2025-10-15
- Fix provider crash with
elasticstack_kibana_action_connectorwhenconfigorsecretswas unset in 0.11.17 (#1355) - Added
labelsfield toelasticstack_kibana_synthetics_monitorresource for associating key-value pairs with monitors (#1360) - Fixes provider crash with
elasticstack_kibana_slowhen usingkql_custom_indicatorwith nofilterset. (#1354) - Updates for Security Detection Rules (#1361
- Add support for
threatproperty - Gracefully support
queryproperty not being set - Add esql specific validations to reject unsupported fields
indexandfilters - Gracefully handle response action with no provided
frequency - Add validation for required
anomaly_thresholdfield in anomaly detection rules - Add support for
timeline_id/timeline_titlefields - Gracefully handle
threat_querynot being provided forthreat_matchrule
- Add support for
0.11.19 - 2025-10-22
Version 0.11.19 is equivalent to 0.12.1. It is being released to help mitigate impact from 0.11.18 being inadvertently released ahead of schedule. This version contained a breaking change and defects related to internal refactors. While 0.11.19 still contains a breaking change from 0.11.17 it does fix defects (see details below) for any users relying on the latest 0.11.x version.
- Fix regression restricting the characters in an
elasticstack_elasticsearch_role_mappingname. (#1373) - Add schema validations to require either (but not both)
indexanddata_view_idis set for relevant Security Detection Rules (#1381) - Fix provider crash with
elasticstack_kibana_action_connectorwhenconfigorsecretswas unset in 0.11.17 (#1355) - Added
labelsfield toelasticstack_kibana_synthetics_monitorresource for associating key-value pairs with monitors (#1360) - Fixes provider crash with
elasticstack_kibana_slowhen usingkql_custom_indicatorwith nofilterset. (#1354) - Updates for Security Detection Rules (#1361
- Add support for
threatproperty - Gracefully support
queryproperty not being set - Add esql specific validations to reject unsupported fields
indexandfilters - Gracefully handle response action with no provided
frequency - Add validation for required
anomaly_thresholdfield in anomaly detection rules - Add support for
timeline_id/timeline_titlefields - Gracefully handle
threat_querynot being provided forthreat_matchrule
- Add support for
0.11.18 - 2025-10-10
The ssl field on the elasticstack_fleet_output resource has been changes from a block to an attribute. This change ensures ongoing consistency within the resource schema for this resource, and aligns with Terraform best practices.
Existing elasticstack_fleet_output resources defining ssl will have to update the declaration to an attribute style. For example:
resource "elasticstack_fleet_output" "output" {
...
ssl {
...
}
}becomes
resource "elasticstack_fleet_output" "output" {
...
ssl = { # Note the equals sign here.
...
}
}- Create
elasticstack_kibana_security_detection_ruleresource. (#1290) - Add
elasticstack_kibana_export_saved_objectsdata source (#1293) - Create
elasticstack_kibana_maintenance_windowresource. (#1224) - Add support for
solutionfield inelasticstack_kibana_spaceresource and data source (#1102) - Add
slo_idvalidation toelasticstack_kibana_slo(#1221) - Add
ignore_missing_component_templatestoelasticstack_elasticsearch_index_template(#1206) - Migrate
elasticstack_elasticsearch_enrich_policyresource and data source to Terraform Plugin Framework (#1220) - Prevent provider panic when a script exists in state, but not in Elasticsearch (#1218)
- Add support for managing cross_cluster API keys in
elasticstack_elasticsearch_security_api_key(#1252) - Allow version changes without a destroy/create cycle with
elasticstack_fleet_integration(#1255). This fixes an issue where it was impossible to upgrade integrations which are used by an integration policy. - Add
namespaceattribute toelasticstack_kibana_synthetics_monitorresource to support setting data stream namespace independently fromspace_id(#1247) - Support setting an explit
connector_idinelasticstack_kibana_action_connector. This attribute already existed, but was being ignored by the provider. Setting the attribute will return an error in Elastic Stack v8.8 and lower since creating a connector with an explicit ID is not supported. (1260) - Migrate
elasticstack_kibana_action_connectorto the Terraform plugin framework (#1269) - Migrate
elasticstack_elasticsearch_security_role_mappingresource and data source to Terraform Plugin Framework (#1279) - Add support for
inactivity_timeoutinelasticstack_fleet_agent_policy(#641) - Migrate
elasticstack_elasticsearch_scriptresource to Terraform Plugin Framework (#1297) - Add support for
kafkaoutput types inelasticstack_fleet_output(#1302) - Add support for
prevent_initial_backfilltoelasticstack_kibana_slo(#1071) - [Refactor] Regenerate the SLO client using the current OpenAPI spec (#1303)
- Add support for
data_view_idin theelasticstack_kibana_sloresource (#1305) - Add support for
unenrollment_timeoutinelasticstack_fleet_agent_policy(#1169) - Handle default value for
allow_restricted_indicesinelasticstack_elasticsearch_security_api_key(#1315) - Fixed
nilreference in kibana synthetics API client in case of response errors (#1320) - Add support for
agent_policy_idsinelasticstack_fleet_integration_policy(#1131)
0.11.17 - 2025-07-21
- Add
elasticstack_apm_agent_configurationresource (#1196) - Add support for
timeslice_metric_indicatorinelasticstack_kibana_slo(#1195) - Add
elasticstack_elasticsearch_ingest_processor_reroutedata source (#678) - Add support for
supports_agentlesstoelasticstack_fleet_agent_policy(#1197) - Ignore
master_timeoutwhen targeting Serverless projects (#1207)
0.11.16 - 2025-07-09
- Add
headersfor the provider connection (#1057) - Migrate
elasticstack_elasticsearch_system_userresource to Terraform plugin framework (#1154) - Add custom
endpointconfiguration support for snapshot repository setup (#1158) - Add
descriptiontoelasticstack_kibana_security_role(#1172) - Add
elasticstack_kibana_synthetics_parameterresource (#1155)
0.11.15 - 2025-04-23
- Add
global_data_tagsto fleet agent policies. (#1044)
0.11.14 - 2025-03-17
- Fix a provider crash when interacting with elasticstack_kibana_data_view resources created with 0.11.0. (#979)
- Add
max_primary_shard_docscondition to ILM rollover (#845) - Add missing entries to
data_view.field_formats.params(#1001) - Fix namespaces inconsistency when creating elasticstack_kibana_data_view resources (#1011)
- Update rule ID documentation. (#1047)
- Mark
elasticstack_kibana_action_connector.secretsas sensitive. (#1045)
0.11.13 - 2025-01-09
- Support 8.15.5 in acc tests (#963).
- Support 8.16.2 in acc tests (#964).
- Support 8.17.0 in acc tests (#969).
- Support 9.0.0 in acc tests (#954).
- Support several ssl fields in
elasticstack_kibana_synthetics_monitor(#967). - HTTP 400 Bad Request When Creating elasticstack_kibana_security_role (933).
0.11.12 - 2024-12-16
- Support multiple group by fields in SLOs (#870). This changes to type of the
group_byattribute of theelasticstack_kibana_sloresource from a String to a list of Strings. Any existing SLO defintions will need to updategroup_by = "field"togroup_by = ["field"].
- Handle NPE in integration policy secrets (#946)
- Use the auto-generated OAS schema from elastic/kibana for the Fleet API. (#834)
- Support description in
elasticstack_elasticsearch_security_roledata sources. (#884) - Prevent spurious recreation of
elasticstack_fleet_agent_policyresources due to 'changing' policy ids (#885) - Support
elasticstack_kibana_alerting_ruleresources with only one ofkqlortimeframeattributes set (#886) - Rename generated/fleet to generated/kibana, add data_view APIs. Keep libs/go-kibana-rest until migration can be completed. Clean and simplify the
elasticstack_kibana_data_viewresource to match the styling of Fleet resources. (#881) - Exposes internal objects needed to build a Crossplane Elasticstack provider (#949)
0.11.11 - 2024-10-25
- Allow
elasticstack_kibana_alerting_ruleto be used without Elasticsearch being configured. (#869) - Add resource
elasticstack_elasticsearch_data_stream_lifecycle(#838) - Ensure API keys are not replaced when upgrading from 0.11.9 or earlier. (#875)
0.11.10 - 2024-10-23
- Fix bug updating alert delay (#859)
- Support updating
elasticstack_elasticsearch_security_api_keywhen supported by the backing cluster (#843) - Fix validation of
throttle, andintervalattributes inelasticstack_kibana_alerting_ruleallowing all Elastic duration values (#846) - Fix boolean setting parsing for
elasticstack_elasticsearch_indicesdata source. (#842) - Update all Fleet and utils/tfsdk instances of diagnostics parameters to pass by pointer instead of pass by value. Added upgrader for fleet_integration_policy v0 to handle empty string vars_json/streams_json. (#855)
- Fix handling of EPM packages when uninstalled outside Terraform, and diags in create/update. (#854)
0.11.9 - 2024-10-14
- Remove support for specifying
include_type_namefrom theelasticstack_elasticsearch_indexresource. This parameter has been deprecated from 7.0, with indices restricted to a single type since 6.0. (#832)
- Fix inconsistent output errors in
elasticstack_fleet_outputfordefault_integrationsanddefault_monitoring. (#841) - Fix secret handling
elasticstack_fleet_integration_policyresource. (#821) - Fix merge values for
elasticstack_kibana_synthetics_monitormonitor locations (#823) - Migrate to a v8 Elasticsearch client (#832)
- Add support for the
.geminiconnector type for Kibana action connectors (#819) - Add
aliasesattribute toelasticstack_elasticsearch_transformresource. (#825) - Add
descriptionattribute toelasticstack_elasticsearch_security_roleresource. (#824) - Fix merge values for
elasticstack_kibana_synthetics_monitormonitor locations (#823 - Add
elasticstack_elasticsearch_index_templatedata source (#828)
0.11.8 - 2024-10-02
- Add key_id to the
elasticstack_elasticsearch_api_keyresource. (#789) - Fix handling of
sys_monitoringinelasticstack_fleet_agent_policy(#792) - Migrate
elasticstack_fleet_agent_policy,elasticstack_fleet_integration(both), andelasticstack_fleet_server_hostto terraform-plugin-framework (#785) - Fix for synthetics http/tcp monitor produces inconsistent result after apply (#801)
- Migrate
elasticstack_fleet_integration_policyto terraform-plugin-framework. Fix drift in integration policy secrets. (#797) - Migrate
elasticstack_fleet_outputto terraform-plugin-framework. (#811)
0.11.7 - 2024-09-20
- Add the
alerts_filterfield to theactionsin the Create Rule API (#774) - Add the
alert_delayfield to the Create Rule API (#715) - Add support for data_stream
lifecycletemplate settings (#724) - Fix a provider panic when
elasticstack_kibana_action_connectorreads a non-existant connector (#729) - Add support for
remote_indiciestoelasticstack_elasticsearch_security_role&elasticstack_kibana_security_role(#723)[#723] - Fix error handling in
elasticstack_kibana_import_saved_objects(#738) - Remove
space_idparameter from private locations to fix inconsistent state forelasticstack_kibana_synthetics_private_locationspace_id(#733) - Add the
Frequencyfield to the Create Rule API (#753) - Prevent a provider panic when the repository referenced in an
elasticstack_elasticsearch_snapshot_repositorydoes not exist (#758) - Add support for
remote_indiciestoelasticstack_elasticsearch_security_api_key(#766)[#766] - Add support for
icmpandbrowsermonitor types toelasticstack_kibana_synthetics_monitorresource (#772)[#772] - Migrate
elasticstack_fleet_enrollment_tokensto terraform-plugin-framework (#778)
0.11.6 - 2024-08-20
- Improve validation for index settings and mappings (#719)
- Add support for Kibana synthetics http and tcp monitors (#699)
- Add
elasticstack_kibana_spacesdata source (#682)
0.11.5 - 2024-08-12
- Fix setting
idfor Fleet outputs and servers (#666) - Fix
elasticstack_fleet_enrollment_tokensreturning empty tokens in some case (#683) - Add support for Kibana synthetics private locations (#696)
- Support setting
restrictioninelasticstack_elasticsearch_security_api_keyrole definitions (#577) - Fix type of
group_byattribute in thekibana_sloresource to be compatible with versions 8.14+ (#701)
0.11.4 - 2024-06-13
- The
titleattribute is now required in the elasticstack_kibana_data_view resource. In practice the resource didn't work without this set, the schema now enforces it's correctly configured.
- Populate policy_id when importing fleet policies and integrations (#646)
- Fix alerting rule update crash when backend responds with HTTP 4xx. (#649)
- Fix the elasticstack_kibana_data_view resource when not specifying an
idand running against Kibana 8.14 (#663) - Support allow_write_after_shrink when managing ILM policies (#662)
- Support managing image_url in Kibana spaces (#664)
0.11.3 - 2024-05-16
- Prevent a provider panic when an
elasticstack_elasticsearch_templateorelasticstack_elasticsearch_component_templateincludes an emptytemplate(template {}) block. (#598) - Prevent
elasticstack_kibana_spaceto attempt the space recreation ifinitialsandcolorare not provided. (#606) - Prevent a provider panic in
elasticstack_kibana_data_viewwhen afield_formatdoes not include apattern. (#619) - Fixed a bug where the
idattribute forelasticstack_kibana_sloresources was ignored by renaming the attribute toslo_id. (#622) - Fixed a bug where the
rule_idattribute forelasticstack_kibana_alerting_rulewas ignored. (#626) - Fixed a bug with incorrect HTTP header name for API key for alerting client. (#633)
- Fix provider crash when running against Serverless projects (#630)
- Added datasource for alerting connectors. (#607)
0.11.2 - 2024-03-13
- Fix authentication for fleet API (using ApiKey instead of Bearer keyword) (#576)
- Ensure all Kibana resources use the supplied
ca_certsvalue. (#585) - Don't panic when SLM indices are specified as a CSV string rather than an array (#593)
0.11.1 - 2024-02-17
- Add downsample section to ILMs #538
- Add new optional
ca_certsattribute for Kibana (#507) - Support API key authentication in
elasticstack_kibana_data_viewresource (#549)
- Handle nil LastExecutionDate's in Kibana alerting rules. (#508)
- Import all relevant attributes during
elasticstack_fleet_outputimport (#522) - Fix issue when setting
overrideinelasticstack_kibana_data_viewresource (#550) - Fixup typos in
elasticstack_elasticsearch_transformandelasticstack_kibana_security_roledocs (#551) - Fix issue when setting
field_attrsinelasticstack_kibana_data_viewresource (#552) - Fixup support for managing
elasticstack_kibana_data_viewresources in non-default spaces (#559) - Add an example resource and import command to the
elasticstack_kibana_data_viewdocs (#560)
0.11.0 - 2023-12-12
- Switch to Terraform protocol version 6 that is compatible with Terraform CLI version 1.0 and later.
- Add 'elasticstack_fleet_package' data source (#469)
- Add
tagsoption to Kibana's SLOs (#495) - Add support for Authorization header - Bearer Token and ES-Client-Authentication fields added.(#500)
- Add support for managing Kibana Data Views (#502)
- Support Logstash SSL fields in Fleet output (#498)
- Support for Kibana API Key authentication (#372)
- Rename fleet package objects to
elasticstack_fleet_integrationandelasticstack_fleet_integration_policy(#476) - Fix a provider crash when managing SLOs outside of the default Kibana space. (#485)
- Make input optional for
elasticstack_fleet_integration_policy(#493) - Sort Fleet integration policy inputs to ensure consistency (#494)
- Updated Elasticsearch role_mapping.go to enforce the replacement/updates of role mapping resources when the name field is altered. (#503)
0.10.0 - 2023-11-02
- Add support for Kibana security role (#435)
- Introduce
elasticstack_kibana_import_saved_objectsresource as an additive only way to manage Kibana saved objects (#343). - Add support for Terraform Plugin Framework (#343).
- Fix fleet resources not having ID set on import (#447)
- Fix Fleet Agent Policy monitoring settings (#448)
- Add
elasticstack_elasticsearch_infodata source. (#467) - Add
elasticstack_fleet_packageandelasticstack_fleet_package_policyresources (#454)
0.9.0 - 2023-10-09
- Update
elasticstack_fleet_outputto use new API schema format (#434)
- Fix mapping of webhook connectors that is stored in tfstate (#433)
0.8.0 - 2023-09-26
- Add support for the
.slack_apiconnector type for Kibana action connectors (#419) - resource
elasticstack_kibana_slo: Updatehistogram_custom_indicatorfromandtofields to float (#430)
0.7.0 - 2023-08-22
0.6.2 - 2023-06-19
- Logging of Kibana action connectors HTTP requests and responses when Terraform logs are enabled.
- Add
skip_destroyflag toelasticstack_fleet_agent_policyresource (#357)
0.6.1 - 2023-05-30
- Add
path_style_accesssetting toelasticstack_elasticsearch_snapshot_repositoryon s3 repositories to enable path style access pattern (#331) - Add
transformfield toelasticstack_elasticsearch_watchto allow for payload transforms to be defined (#340)
- Fix error presented by incorrect handling of
disabled_featuresfield inelasticstack_kibana_spaceresource (#340)
0.6.0 - 2023-05-24
-
New resource
elasticstack_elasticsearch_enrich_policyto manage enrich policies (#286) (Enrich API) -
New data source
elasticstack_elasticsearch_enrich_policyto read enrich policies (#293) (Enrich API) -
Add 'mapping_coerce' field to index resource (#229)
-
Add 'min_*' conditions to ILM rollover (#250)
-
Add support for Kibana connections (#226)
-
[Breaking Change] Add 'deletion_protection' field to index resource to avoid unintentional deletion. (#167)
- To delete index resource, you'll need to explicitly set
deletion_protection = falseas follows.
resource "elasticstack_elasticsearch_index" "example" { name = "example" mappings = jsonencode({ properties = { field1 = { type = "text" } } }) deletion_protection = false }
- To delete index resource, you'll need to explicitly set
-
Add
elasticstack_kibana_spacefor managing Kibana spaces (#272) -
Add
elasticstack_elasticsearch_transformfor managing Elasticsearch transforms (#284) -
Add
elasticstack_elasticsearch_watchfor managing Elasticsearch Watches (#155) -
Add
elasticstack_kibana_alerting_rulefor managing Kibana alerting rules (#292) -
Add client for communicating with the Fleet APIs (#311])
-
Add
elasticstack_fleet_enrollment_tokensandelasticstack_fleet_agent_policyfor managing Fleet enrollment tokens and agent policies (#322) -
Add
elasticstack_fleet_outputandelasticstack_fleet_server_hostfor managing Fleet outputs and server hosts (#327]) -
Add
elasticstack_kibana_action_connectorfor managing Kibana action connectors (#306)
-
Updated unsupported queue_max_bytes_number and queue_max_bytes_units with queue.max_bytes (#266)
-
Respect
ignore_unavailableandinclude_global_statevalues when configuring SLM policies (#224) -
Refactor API client functions and return diagnostics (#220)
-
Fix not to recreate index when field is removed from mapping (#232)
-
Add query params fields to index resource (#244)
-
Properly handle errors which occur during provider execution (#262)
-
Correctly handle empty logstash pipeline metadata in plan diffs (#256)
-
Fix error when logging API requests in debug mode (#259)
-
[Breaking Change] Change
pipeline_metadatatype from schema.TypeMap to schema.TypeString. This is to fix an error caused by updates to Logstash Pipelines outside of TF (#278)-
To use the updated
pipeline_metadatafield, you'll need to encapsulate any Terraform configuration with jsonencode{} as follows:resource "elasticstack_elasticsearch_logstash_pipeline" "example" { name = "example" pipeline = <<-EOF input{} filter{} output{} EOF pipeline_metadata = jsonencode({ type = "logstash_pipeline" version = 1 }) }
-
If migrating existing resources in state from a previous version of the provider, then you will need to remove the reference to the resources in state before reapplying / reimporting:
- Run
terraform state rmagainst your logstash pipelines (https://developer.hashicorp.com/terraform/cli/commands/state/rm) - Ensure any definitions of the
pipeline_metadatafield in your resource definitions have been encapsulated withjsonencode()as mentioned above. - EITHER
- run
terraform plan - run
terraform apply
- run
- OR
- reimport the resources into state using
terraform import(https://developer.hashicorp.com/terraform/cli/import)
- reimport the resources into state using
- Run
-
-
Fix order of
indicesfield in SLM (#326)
0.5.0 - 2022-12-07
- New resource
elasticstack_elasticsearch_logstash_pipelineto manage Logstash pipelines (Centralized Pipeline Management) (#151) - Add
elasticstack_elasticsearch_scriptresource (#173) - Add
elasticstack_elasticsearch_security_roledata source (#177) - Add
elasticstack_elasticsearch_security_role_mappingdata source (#178) - Apply
total_shards_per_nodesetting inallocateaction in ILM. Supported from Elasticsearch version 7.16 (#112) - Add
elasticstack_elasticsearch_security_api_keyresource (#193) - Add
elasticstack_elasticsearch_security_system_userresource to manage built-in user (#188) - Add
unassigned_node_left_delayed_timeoutto index resource (#196) - Add support for Client certificate based authentication (#191)
- Deprecate
elasticsearch_connectionblocks on individual resources/data sources. Connection configuration should be configured directly on the provider with multiple provider instances used to connect to different clusters. (#218)
- Remove unnecessary unsetting id on delete (#174)
- Fix not found handling for snapshot repository (#175)
- Add warn log when to remove resource from state (#185)
- Import snapshot repository name when importing (#187)
0.4.0 - 2022-10-07
- Add ca_data field to provider schema (#145)
- Add individual setting fields (#137)
- Allow use of
api_keyinstead ofusername/passwordfor authentication (#130) - Add
allow_restricted_indicessetting to security role (#125) - Add conditional to only set
passwordandpassword_hashwhen a new value is defined (#127) - Add support for ELASTICSEARCH_INSECURE environment variable as the default of the
insecureconfig value (#127) - Add elasticstack_elasticsearch_security_role_mapping resource (148)
- Refactor main function not to use deprecated debug method (#149)
- Expose provider package (#142)
- Upgrade Go version to 1.19 and sdk version to v2.22.0 (#139)
- Make API calls context aware to be able to handle timeouts (#138)
- Correctly identify a missing security user (#101)
- Support 7.x Elasticsearch < 7.15 by removing the default
media_typeattribute in the Append processor (#118)
0.3.3 - 2022-03-22
- Make sure it is possible to set priority to
0in ILM template (#88) - Set the ILM name on read operation (#87)
- Always use data_stream setting if it's present (#91)
0.3.2 - 2022-02-28
- Properly apply
number_of_replicassetting inallocateaction in ILM (#80)
0.3.1 - 2022-02-24
- Add new field
allow_custom_routingindata_streamsection ofindex_template, which appears only in Elasticsearch version 8.0.0. Make sureindex_templateresource can work with both 7.x and 8.x versions (#72) - Panic using
elasticstack_elasticsearch_security_user_data_sourcewhen the user absent or there is not enough permissions to fetch users from ES API (#73) - Fix typo in the index alias model (#78)
0.3.0 - 2022-02-17
- New resource
elasticstack_elasticsearch_data_streamto manage Elasticsearch data streams (#45) - New resource
elasticstack_elasticsearch_ingest_pipelineto manage Elasticsearch ingest pipelines (#56) - New resource
elasticstack_elasticsearch_component_templateto manage Elasticsearch component templates (#39) - New helper data sources to create processorts for ingest pipelines (#67)
- Update only changed index settings (#52)
- Enable import of index settings (#53)
- Handle
allocateaction in ILM policy (#59) - Send only initialized values to Elasticsearch API when managing the users (#66)
0.2.0 - 2022-01-27
- New resource to manage Elasticsearch indices (#38)
- The
insecureoption to the Elasticsearch provider configuration to ignore certificate verification (#36) - The
ca_fileoption to the Elasticsearch provider configuration to provide path to the custom root certificate file (#35) - Documentation templates for all the existing resources (#32)
- Identify missing or deleted resources in the Elasticsearch cluster and make sure Terraform can re-create them (#40)
- [Breaking] Rename
aliasesconfiguration option inelasticstack_elasticsearch_index_templateresource to singularalias
0.1.0 - 2021-12-20
- Initial set of the resources to gather feedback from the community
- Initial set of docs
- CI integration