diff --git a/test/e2e/agent/config_test.go b/test/e2e/agent/config_test.go index ed4846a9f8..1102abe0dc 100644 --- a/test/e2e/agent/config_test.go +++ b/test/e2e/agent/config_test.go @@ -124,7 +124,6 @@ func TestMultipleOutputConfig(t *testing.T) { } func TestFleetMode(t *testing.T) { - v := version.MustParse(test.Ctx().ElasticStackVersion) name := "test-agent-fleet" agentNS := test.Ctx().ManagedNamespace(0) @@ -147,17 +146,7 @@ func TestFleetMode(t *testing.T) { WithFleetServer(). WithElasticsearchRefs(agent.ToOutput(esBuilder.Ref(), "default")). WithKibanaRef(kbBuilder.Ref()). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.metricbeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.metricbeat", "default")) - - // https://github.com/elastic/cloud-on-k8s/issues/7389 - if v.LT(version.MinFor(8, 12, 0)) || v.GE(version.MinFor(8, 14, 0)) { - fleetServerBuilder = fleetServerBuilder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.filebeat", "default")) - } + WithFleetAgentDataStreamsValidation() kbBuilder = kbBuilder.WithConfig(fleetConfigForKibana(t, fleetServerBuilder.Agent.Spec.Version, esBuilder.Ref(), fleetServerBuilder.Ref(), true)) @@ -183,17 +172,7 @@ func TestFleetMode(t *testing.T) { WithFleetServer(). WithElasticsearchRefs(agent.ToOutput(esBuilder.Ref(), "default")). WithKibanaRef(kbBuilder.Ref()). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.metricbeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.metricbeat", "default")) - - // https://github.com/elastic/cloud-on-k8s/issues/7389 - if v.LT(version.MinFor(8, 12, 0)) || v.GE(version.MinFor(8, 14, 0)) { - fleetServerBuilder = fleetServerBuilder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.filebeat", "default")) - } + WithFleetAgentDataStreamsValidation() kbBuilder = kbBuilder.WithConfig(fleetConfigForKibana(t, fleetServerBuilder.Agent.Spec.Version, esBuilder.Ref(), fleetServerBuilder.Ref(), true)) diff --git a/test/e2e/agent/recipes_test.go b/test/e2e/agent/recipes_test.go index 5902357b5a..a736682323 100644 --- a/test/e2e/agent/recipes_test.go +++ b/test/e2e/agent/recipes_test.go @@ -88,21 +88,13 @@ func TestMultiOutputRecipe(t *testing.T) { } func TestFleetKubernetesIntegrationRecipe(t *testing.T) { - v := version.MustParse(test.Ctx().ElasticStackVersion) - customize := func(builder agent.Builder) agent.Builder { if !builder.Agent.Spec.FleetServerEnabled { return builder } builder = builder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.metricbeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.metricbeat", "default")). + WithFleetAgentDataStreamsValidation(). // TODO API server should generate event in time but on kind we see repeatedly no metrics being reported in time // see https://github.com/elastic/cloud-on-k8s/issues/4092 // WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "kubernetes.apiserver", "k8s")). @@ -126,12 +118,6 @@ func TestFleetKubernetesIntegrationRecipe(t *testing.T) { WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "system.socket_summary", "default")). WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "system.uptime", "default")) - // https://github.com/elastic/cloud-on-k8s/issues/7389 - if v.LT(version.MinFor(8, 12, 0)) || v.GE(version.MinFor(8, 14, 0)) { - builder = builder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.filebeat", "default")) - } - return builder } @@ -157,14 +143,7 @@ func TestFleetKubernetesNonRootIntegrationRecipe(t *testing.T) { } return builder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.metricbeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.metricbeat", "default")). + WithFleetAgentDataStreamsValidation(). // TODO API server should generate event in time but on kind we see repeatedly no metrics being reported in time // see https://github.com/elastic/cloud-on-k8s/issues/4092 // WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "kubernetes.apiserver", "k8s")). @@ -209,14 +188,8 @@ func TestFleetCustomLogsIntegrationRecipe(t *testing.T) { } return builder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.fleet_server", "default")). WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "generic", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.metricbeat", "default")). + WithFleetAgentDataStreamsValidation(). WithDefaultESValidation(agent.HasEvent("/_search?q=message:" + loggingPod.Logged)). WithDefaultESValidation(agent.NoEvent("/_search?q=message:" + notLoggingPod.Logged)) } @@ -225,31 +198,12 @@ func TestFleetCustomLogsIntegrationRecipe(t *testing.T) { } func TestFleetAPMIntegrationRecipe(t *testing.T) { - v := version.MustParse(test.Ctx().ElasticStackVersion) - customize := func(builder agent.Builder) agent.Builder { if !builder.Agent.Spec.FleetServerEnabled { return builder } - - builder = builder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.apm_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.apm_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.metricbeat", "default")) - - // https://github.com/elastic/cloud-on-k8s/issues/7389 - if v.LT(version.MinFor(8, 12, 0)) || v.GE(version.MinFor(8, 14, 0)) { - builder = builder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.filebeat", "default")) - } - - return builder + return builder.WithFleetAgentDataStreamsValidation() } - runAgentRecipe(t, "fleet-apm-integration.yaml", customize) } diff --git a/test/e2e/agent/tls_test.go b/test/e2e/agent/tls_test.go index f5a5c5cf80..7aa7b70f23 100644 --- a/test/e2e/agent/tls_test.go +++ b/test/e2e/agent/tls_test.go @@ -56,17 +56,7 @@ func TestFleetAgentWithoutTLS(t *testing.T) { WithElasticsearchRefs(agent.ToOutput(esBuilder.Ref(), "default")). WithKibanaRef(kbBuilder.Ref()). WithTLSDisabled(true). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.metricbeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.metricbeat", "default")) - - // https://github.com/elastic/cloud-on-k8s/issues/7389 - if v.LT(version.MinFor(8, 12, 0)) || v.GE(version.MinFor(8, 14, 0)) { - fleetServerBuilder = fleetServerBuilder. - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.filebeat", "default")) - } + WithFleetAgentDataStreamsValidation() kbBuilder = kbBuilder.WithConfig(fleetConfigForKibana(t, fleetServerBuilder.Agent.Spec.Version, esBuilder.Ref(), fleetServerBuilder.Ref(), false)) diff --git a/test/e2e/agent/upgrade_test.go b/test/e2e/agent/upgrade_test.go index d7d42eef2c..32d3f383ed 100644 --- a/test/e2e/agent/upgrade_test.go +++ b/test/e2e/agent/upgrade_test.go @@ -38,12 +38,7 @@ func TestAgentVersionUpgradeToLatest8x(t *testing.T) { WithFleetServer(). WithElasticsearchRefs(agent.ToOutput(esBuilder.Ref(), "default")). WithKibanaRef(kbBuilder.Ref()). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.fleet_server", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.LogsType, "elastic_agent.metricbeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.elastic_agent", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.filebeat", "default")). - WithDefaultESValidation(agent.HasWorkingDataStream(agent.MetricsType, "elastic_agent.metricbeat", "default")) + WithFleetAgentDataStreamsValidation() kbBuilder = kbBuilder.WithConfig(fleetConfigForKibana(t, fleetServerBuilder.Agent.Spec.Version, esBuilder.Ref(), fleetServerBuilder.Ref(), true)) diff --git a/test/e2e/test/agent/builder.go b/test/e2e/test/agent/builder.go index dd18d3262d..003adb4f8c 100644 --- a/test/e2e/test/agent/builder.go +++ b/test/e2e/test/agent/builder.go @@ -181,6 +181,23 @@ func (b Builder) WithESValidation(validation ValidationFunc, outputName string) return b } +func (b Builder) WithFleetAgentDataStreamsValidation() Builder { + v := version.MustParse(test.Ctx().ElasticStackVersion) + b = b. + WithDefaultESValidation(HasWorkingDataStream(LogsType, "elastic_agent", "default")). + WithDefaultESValidation(HasWorkingDataStream(LogsType, "elastic_agent.filebeat", "default")). + WithDefaultESValidation(HasWorkingDataStream(LogsType, "elastic_agent.fleet_server", "default")). + WithDefaultESValidation(HasWorkingDataStream(LogsType, "elastic_agent.metricbeat", "default")). + WithDefaultESValidation(HasWorkingDataStream(MetricsType, "elastic_agent.elastic_agent", "default")). + WithDefaultESValidation(HasWorkingDataStream(MetricsType, "elastic_agent.fleet_server", "default")). + WithDefaultESValidation(HasWorkingDataStream(MetricsType, "elastic_agent.metricbeat", "default")) + // https://github.com/elastic/cloud-on-k8s/issues/7389 + if v.LT(version.MinFor(8, 12, 0)) || v.GE(version.MinFor(8, 14, 0)) { + b = b.WithDefaultESValidation(HasWorkingDataStream(MetricsType, "elastic_agent.filebeat", "default")) + } + return b +} + func (b Builder) WithElasticsearchRefs(refs ...agentv1alpha1.Output) Builder { b.Agent.Spec.ElasticsearchRefs = refs return b