From 3253ea6603b13712ffc63551ea37a6720377bc43 Mon Sep 17 00:00:00 2001 From: Taylor Swanson Date: Fri, 13 Oct 2023 15:27:14 -0500 Subject: [PATCH 1/3] Fix Fleet Agent Policy monitoring settings - Fixed Fleet Agent Policy monitoring settings not being applied correctly, particularily when the values would be set to false. - Update Fleet Agent Policy acceptance tests to verify disabling monitoring works as intended. - Fix ELASTICSEARCH_INSECURE environment variable not being set. --- CHANGELOG.md | 1 + internal/clients/config/elasticsearch.go | 2 +- internal/fleet/agent_policy_resource.go | 15 ++++++--------- internal/fleet/agent_policy_resource_test.go | 8 ++++---- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99ba9ab42..414224d8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Added - Introduce `elasticstack_kibana_import_saved_objects` resource as an additive only way to manage Kibana saved objects ([#343](https://github.com/elastic/terraform-provider-elasticstack/pull/343)). - Add support for Terraform Plugin Framework ([#343](https://github.com/elastic/terraform-provider-elasticstack/pull/343)). +- Fix Fleet Agent Policy monitoring settings ([#1](https://github.com/elastic/terraform-provider-elasticstack/pull/1)) ## [0.9.0] - 2023-10-09 diff --git a/internal/clients/config/elasticsearch.go b/internal/clients/config/elasticsearch.go index a47f0a527..62610bd1f 100644 --- a/internal/clients/config/elasticsearch.go +++ b/internal/clients/config/elasticsearch.go @@ -207,7 +207,7 @@ func (c elasticsearchConfig) withEnvironmentOverrides() elasticsearchConfig { } if insecure, ok := os.LookupEnv("ELASTICSEARCH_INSECURE"); ok { - if insecureValue, err := strconv.ParseBool(insecure); err != nil { + if insecureValue, err := strconv.ParseBool(insecure); err == nil { tlsClientConfig := c.ensureTLSClientConfig() tlsClientConfig.InsecureSkipVerify = insecureValue } diff --git a/internal/fleet/agent_policy_resource.go b/internal/fleet/agent_policy_resource.go index 3badf20aa..78332aaf7 100644 --- a/internal/fleet/agent_policy_resource.go +++ b/internal/fleet/agent_policy_resource.go @@ -127,16 +127,14 @@ func resourceAgentPolicyCreate(ctx context.Context, d *schema.ResourceData, meta req.MonitoringOutputId = &value } - var monitoringValues []fleetapi.AgentPolicyCreateRequestMonitoringEnabled + monitoringValues := make([]fleetapi.AgentPolicyCreateRequestMonitoringEnabled, 0, 2) if value := d.Get("monitor_logs").(bool); value { monitoringValues = append(monitoringValues, monitorLogs) } if value := d.Get("monitor_metrics").(bool); value { monitoringValues = append(monitoringValues, monitorMetrics) } - if len(monitoringValues) > 0 { - req.MonitoringEnabled = &monitoringValues - } + req.MonitoringEnabled = &monitoringValues policy, diags := fleet.CreateAgentPolicy(ctx, fleetClient, req) if diags.HasError() { @@ -181,16 +179,15 @@ func resourceAgentPolicyUpdate(ctx context.Context, d *schema.ResourceData, meta req.MonitoringOutputId = &value } - var monitoringValues []fleetapi.AgentPolicyUpdateRequestMonitoringEnabled + monitoringValues := make([]fleetapi.AgentPolicyUpdateRequestMonitoringEnabled, 0, 2) if value := d.Get("monitor_logs").(bool); value { monitoringValues = append(monitoringValues, monitorLogs) } if value := d.Get("monitor_metrics").(bool); value { monitoringValues = append(monitoringValues, monitorMetrics) } - if len(monitoringValues) > 0 { - req.MonitoringEnabled = &monitoringValues - } + req.MonitoringEnabled = &monitoringValues + _, diags = fleet.UpdateAgentPolicy(ctx, fleetClient, id, req) if diags.HasError() { return diags @@ -258,7 +255,7 @@ func resourceAgentPolicyRead(ctx context.Context, d *schema.ResourceData, meta i return diag.FromErr(err) } case monitorMetrics: - if err := d.Set("monitor_logs", true); err != nil { + if err := d.Set("monitor_metrics", true); err != nil { return diag.FromErr(err) } diff --git a/internal/fleet/agent_policy_resource_test.go b/internal/fleet/agent_policy_resource_test.go index 8b8e4493f..57671c808 100644 --- a/internal/fleet/agent_policy_resource_test.go +++ b/internal/fleet/agent_policy_resource_test.go @@ -44,8 +44,8 @@ func TestAccResourceAgentPolicy(t *testing.T) { resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "name", fmt.Sprintf("Updated Policy %s", policyName)), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "namespace", "default"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "description", "This policy was updated"), - resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_logs", "true"), - resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_metrics", "true"), + resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_logs", "false"), + resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_metrics", "false"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "skip_destroy", "false"), ), }, @@ -111,8 +111,8 @@ resource "elasticstack_fleet_agent_policy" "test_policy" { name = "%s" namespace = "default" description = "This policy was updated" - monitor_logs = true - monitor_metrics = true + monitor_logs = false + monitor_metrics = false skip_destroy = %t } From 0053cb5136fd2978d682a6ba92b1ffe4b5ad8e99 Mon Sep 17 00:00:00 2001 From: Taylor Swanson Date: Fri, 13 Oct 2023 15:43:55 -0500 Subject: [PATCH 2/3] Update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 414224d8d..63b0aec24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ### Added - Introduce `elasticstack_kibana_import_saved_objects` resource as an additive only way to manage Kibana saved objects ([#343](https://github.com/elastic/terraform-provider-elasticstack/pull/343)). - Add support for Terraform Plugin Framework ([#343](https://github.com/elastic/terraform-provider-elasticstack/pull/343)). -- Fix Fleet Agent Policy monitoring settings ([#1](https://github.com/elastic/terraform-provider-elasticstack/pull/1)) +- Fix Fleet Agent Policy monitoring settings ([#448](https://github.com/elastic/terraform-provider-elasticstack/pull/448)) ## [0.9.0] - 2023-10-09 From 0c06e35b8a13f6c22f3a9a9789df282ff0c5f917 Mon Sep 17 00:00:00 2001 From: Taylor Swanson Date: Mon, 16 Oct 2023 08:09:42 -0500 Subject: [PATCH 3/3] Alternate true/false for monitoring regression test --- internal/fleet/agent_policy_resource_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/fleet/agent_policy_resource_test.go b/internal/fleet/agent_policy_resource_test.go index 57671c808..534019399 100644 --- a/internal/fleet/agent_policy_resource_test.go +++ b/internal/fleet/agent_policy_resource_test.go @@ -33,7 +33,7 @@ func TestAccResourceAgentPolicy(t *testing.T) { resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "namespace", "default"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "description", "Test Agent Policy"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_logs", "true"), - resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_metrics", "true"), + resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_metrics", "false"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "skip_destroy", "false"), ), }, @@ -45,7 +45,7 @@ func TestAccResourceAgentPolicy(t *testing.T) { resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "namespace", "default"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "description", "This policy was updated"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_logs", "false"), - resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_metrics", "false"), + resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_metrics", "true"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "skip_destroy", "false"), ), }, @@ -69,7 +69,7 @@ func TestAccResourceAgentPolicySkipDestroy(t *testing.T) { resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "namespace", "default"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "description", "Test Agent Policy"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_logs", "true"), - resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_metrics", "true"), + resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "monitor_metrics", "false"), resource.TestCheckResourceAttr("elasticstack_fleet_agent_policy.test_policy", "skip_destroy", "true"), ), }, @@ -89,7 +89,7 @@ resource "elasticstack_fleet_agent_policy" "test_policy" { namespace = "default" description = "Test Agent Policy" monitor_logs = true - monitor_metrics = true + monitor_metrics = false skip_destroy = %t } @@ -112,7 +112,7 @@ resource "elasticstack_fleet_agent_policy" "test_policy" { namespace = "default" description = "This policy was updated" monitor_logs = false - monitor_metrics = false + monitor_metrics = true skip_destroy = %t }