From 0d46e97b5440f1958bdfe86105ce23dde18fc94d Mon Sep 17 00:00:00 2001 From: kaanyalti Date: Wed, 19 Mar 2025 01:33:21 -0400 Subject: [PATCH 1/2] fix(6208): set default scheme to https, updated test config defaults to set protocol to http, updated unit and integration tests --- internal/pkg/config/config_test.go | 2 +- internal/pkg/config/output.go | 6 ++++-- internal/pkg/config/output_test.go | 12 ++++++------ internal/pkg/testing/fleet-server-testing.yml | 5 +++-- internal/pkg/testing/setup.go | 7 +++++-- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/internal/pkg/config/config_test.go b/internal/pkg/config/config_test.go index fd978e199..53036b984 100644 --- a/internal/pkg/config/config_test.go +++ b/internal/pkg/config/config_test.go @@ -583,7 +583,7 @@ func defaultFleet() Fleet { func defaultElastic() Elasticsearch { return Elasticsearch{ - Protocol: "http", + Protocol: "https", ServiceToken: "test-token", Hosts: []string{"localhost:9200"}, MaxRetries: 3, diff --git a/internal/pkg/config/output.go b/internal/pkg/config/output.go index e91dda87c..9b40ea011 100644 --- a/internal/pkg/config/output.go +++ b/internal/pkg/config/output.go @@ -26,8 +26,10 @@ import ( // The timeout would be driven by the server for long poll. // Giving it some sane long value. -const httpTransportLongPollTimeout = 10 * time.Minute -const schemeHTTP = "http" +const ( + httpTransportLongPollTimeout = 10 * time.Minute + schemeHTTP = "https" +) var hasScheme = regexp.MustCompile(`^([a-z][a-z0-9+\-.]*)://`) diff --git a/internal/pkg/config/output_test.go b/internal/pkg/config/output_test.go index ad62afae3..a8519f33f 100644 --- a/internal/pkg/config/output_test.go +++ b/internal/pkg/config/output_test.go @@ -204,7 +204,7 @@ func TestToESConfig(t *testing.T) { require.NoError(t, err) // cmp.Diff can't handle function pointers. - res.Transport.(*http.Transport).Proxy = nil + res.Transport.(*http.Transport).Proxy = nil //nolint:errcheck // skipping error check in test test.result.Header.Set("X-elastic-product-origin", "fleet") assert.True(t, cmp.Equal(test.result, res, copts...), "mismatch (-want +got)\n%s", cmp.Diff(test.result, res, copts...)) @@ -225,7 +225,7 @@ func TestToESConfig(t *testing.T) { require.NoError(t, err) expect := elasticsearch.Config{ - Addresses: []string{"http://localhost:9200"}, + Addresses: []string{"https://localhost:9200"}, ServiceToken: "test-token", Header: http.Header{"X-Elastic-Product-Origin": []string{"fleet"}}, MaxRetries: 3, @@ -240,7 +240,7 @@ func TestToESConfig(t *testing.T) { }, } - es.Transport.(*http.Transport).Proxy = nil + es.Transport.(*http.Transport).Proxy = nil //nolint:errcheck // skipping error check in test assert.True(t, cmp.Equal(expect, es, copts...), "mismatch (-want +got)\n%s", cmp.Diff(expect, es, copts...)) }) @@ -258,7 +258,7 @@ func TestToESConfig(t *testing.T) { require.NoError(t, err) expect := elasticsearch.Config{ - Addresses: []string{"http://localhost:9200"}, + Addresses: []string{"https://localhost:9200"}, Header: http.Header{"X-Elastic-Product-Origin": []string{"fleet"}}, MaxRetries: 3, Transport: &http.Transport{ @@ -272,7 +272,7 @@ func TestToESConfig(t *testing.T) { }, } - es.Transport.(*http.Transport).Proxy = nil + es.Transport.(*http.Transport).Proxy = nil //nolint:errcheck // skipping error check in test assert.True(t, cmp.Equal(expect, es, copts...), "mismatch (-want +got)\n%s", cmp.Diff(expect, es, copts...)) }) @@ -390,7 +390,7 @@ func Test_Elasticsearch_DiagRequests(t *testing.T) { w.WriteHeader(http.StatusOK) })) defer srv.Close() - ctx, cancel := context.WithCancel(context.Background()) + ctx, cancel := context.WithCancel(context.Background()) //nolint:usetesting // using context.Background not t.Context defer cancel() es := &Elasticsearch{} es.InitDefaults() diff --git a/internal/pkg/testing/fleet-server-testing.yml b/internal/pkg/testing/fleet-server-testing.yml index fe97898b5..eaa4aa508 100644 --- a/internal/pkg/testing/fleet-server-testing.yml +++ b/internal/pkg/testing/fleet-server-testing.yml @@ -1,7 +1,8 @@ output: elasticsearch: - hosts: '${ELASTICSEARCH_HOSTS:localhost:9200}' - service_token: '${ELASTICSEARCH_SERVICE_TOKEN}' + hosts: "${ELASTICSEARCH_HOSTS:localhost:9200}" + service_token: "${ELASTICSEARCH_SERVICE_TOKEN}" + protocol: http fleet: agent: diff --git a/internal/pkg/testing/setup.go b/internal/pkg/testing/setup.go index 702b7b751..46303e96d 100644 --- a/internal/pkg/testing/setup.go +++ b/internal/pkg/testing/setup.go @@ -24,16 +24,19 @@ import ( "github.com/elastic/fleet-server/v7/internal/pkg/testing/esutil" ) -var defaultCfg config.Config -var defaultCfgData = []byte(` +var ( + defaultCfg config.Config + defaultCfgData = []byte(` output: elasticsearch: hosts: '${ELASTICSEARCH_HOSTS:localhost:9200}' service_token: '${ELASTICSEARCH_SERVICE_TOKEN:test-token}' + protocol: http fleet: agent: id: 1e4954ce-af37-4731-9f4a-407b08e69e42 `) +) func init() { c, err := yaml.NewConfig(defaultCfgData, config.DefaultOptions...) From f6f3430b2512de4591d3c662d7125740f1d357e5 Mon Sep 17 00:00:00 2001 From: kaanyalti Date: Wed, 19 Mar 2025 03:30:30 -0400 Subject: [PATCH 2/2] fix(6208): updated default config, added protocol http --- internal/pkg/bulk/setup_test.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/pkg/bulk/setup_test.go b/internal/pkg/bulk/setup_test.go index 1919fdbf7..3723e0ced 100644 --- a/internal/pkg/bulk/setup_test.go +++ b/internal/pkg/bulk/setup_test.go @@ -26,16 +26,19 @@ import ( var rand = rnd.New() -var defaultCfg config.Config -var defaultCfgData = []byte(` +var ( + defaultCfg config.Config + defaultCfgData = []byte(` output: elasticsearch: hosts: '${ELASTICSEARCH_HOSTS:localhost:9200}' service_token: '${ELASTICSEARCH_SERVICE_TOKEN:test-token}' + protocol: http fleet: agent: id: 1e4954ce-af37-4731-9f4a-407b08e69e42 `) +) const testPolicy = `{ "properties": {