@@ -1093,8 +1093,8 @@ func (r *tester) prepareScenario(ctx context.Context, config *testConfig, stackC
10931093 }
10941094 scenario .kibanaDataStream = ds
10951095
1096- scenario .indexTemplateName = BuildIndexTemplateName (ds , r .pkgManifest .Type , config .Vars )
1097- scenario .dataStream = BuildDataStreamName (scenario .policyTemplateInput , ds , r .pkgManifest .Type , config .Vars )
1096+ scenario .indexTemplateName = BuildIndexTemplateName (ds , policyTemplate , r .pkgManifest .Type , config .Vars )
1097+ scenario .dataStream = BuildDataStreamName (scenario .policyTemplateInput , ds , policyTemplate , r .pkgManifest .Type , config .Vars )
10981098
10991099 r .cleanTestScenarioHandler = func (ctx context.Context ) error {
11001100 logger .Debugf ("Deleting data stream for testing %s" , scenario .dataStream )
@@ -1263,8 +1263,8 @@ func (r *tester) prepareScenario(ctx context.Context, config *testConfig, stackC
12631263
12641264// BuildIndexTemplateName builds the expected index template name that is installed in Elasticsearch
12651265// when the package data stream is added to the policy.
1266- func BuildIndexTemplateName (ds kibana.PackageDataStream , manType string , cfgVars common.MapStr ) string {
1267- dataStreamDataset := getExpectedDatasetForTest (manType , ds .Inputs [0 ].Streams [0 ].DataStream .Dataset , cfgVars )
1266+ func BuildIndexTemplateName (ds kibana.PackageDataStream , policyTemplate packages. PolicyTemplate , manType string , cfgVars common.MapStr ) string {
1267+ dataStreamDataset := getExpectedDatasetForTest (manType , ds .Inputs [0 ].Streams [0 ].DataStream .Dataset , policyTemplate . Name , cfgVars )
12681268
12691269 indexTemplateName := fmt .Sprintf (
12701270 "%s-%s" ,
@@ -1276,8 +1276,8 @@ func BuildIndexTemplateName(ds kibana.PackageDataStream, manType string, cfgVars
12761276
12771277// BuildDataStreamName builds the expected data stream name that is installed in Elasticsearch
12781278// when the package data stream is added to the policy.
1279- func BuildDataStreamName (policyTemplateInput string , ds kibana.PackageDataStream , manType string , cfgVars common.MapStr ) string {
1280- dataStreamDataset := getExpectedDatasetForTest (manType , ds .Inputs [0 ].Streams [0 ].DataStream .Dataset , cfgVars )
1279+ func BuildDataStreamName (policyTemplateInput string , ds kibana.PackageDataStream , policyTemplate packages. PolicyTemplate , manType string , cfgVars common.MapStr ) string {
1280+ dataStreamDataset := getExpectedDatasetForTest (manType , ds .Inputs [0 ].Streams [0 ].DataStream .Dataset , policyTemplate . Name , cfgVars )
12811281
12821282 // Input packages using the otel collector input require to add a specific dataset suffix
12831283 if manType == "input" && policyTemplateInput == otelCollectorInputName {
@@ -1293,13 +1293,14 @@ func BuildDataStreamName(policyTemplateInput string, ds kibana.PackageDataStream
12931293 return dataStreamName
12941294}
12951295
1296- func getExpectedDatasetForTest (pkgType , dataset string , cfgVars common.MapStr ) string {
1296+ func getExpectedDatasetForTest (pkgType , dataset , policyTemplateName string , cfgVars common.MapStr ) string {
12971297 if pkgType == "input" {
12981298 // Input packages can set `data_stream.dataset` by convention to customize the dataset.
12991299 v , _ := cfgVars .GetValue ("data_stream.dataset" )
13001300 if ds , ok := v .(string ); ok && ds != "" {
13011301 return ds
13021302 }
1303+ return policyTemplateName
13031304 }
13041305 return dataset
13051306}
@@ -1768,6 +1769,7 @@ func (r *tester) expectedDatasets(scenario *scenarioTest, config *testConfig) ([
17681769 // get dataset directly from package policy added when preparing the scenario
17691770 expectedDataset := scenario .kibanaDataStream .Inputs [0 ].Streams [0 ].DataStream .Dataset
17701771 if r .pkgManifest .Type == "input" {
1772+ expectedDataset = scenario .policyTemplateName
17711773 if scenario .policyTemplateInput == otelCollectorInputName {
17721774 // Input packages whose input is `otelcol` must add the `.otel` suffix
17731775 // Example: httpcheck.metrics.otel
@@ -2015,22 +2017,26 @@ func createInputPackageDatastream(
20152017 },
20162018 }
20172019
2018- dataset := fmt .Sprintf ("%s.%s" , pkg .Name , policyTemplate .Name )
20192020 streams := []kibana.Stream {
20202021 {
20212022 ID : fmt .Sprintf ("%s-%s.%s" , policyTemplate .Input , pkg .Name , policyTemplate .Name ),
20222023 Enabled : true ,
20232024 DataStream : kibana.DataStream {
2024- Type : policyTemplate .Type ,
2025- Dataset : dataset ,
2025+ Type : policyTemplate .Type ,
2026+ // This dataset is the one Fleet uses to identify the stream,
2027+ // it must be <package name>.<policy template name>. This is not
2028+ // the same as the dataset used for the index template, configured
2029+ // with vars below.
2030+ Dataset : fmt .Sprintf ("%s.%s" , pkg .Name , policyTemplate .Name ),
20262031 },
20272032 },
20282033 }
20292034
20302035 // Add policyTemplate-level vars.
20312036 vars := setKibanaVariables (policyTemplate .Vars , cfgVars )
20322037 if _ , found := vars ["data_stream.dataset" ]; ! found {
2033- dataStreamDataset := dataset
2038+ // Fleet uses the policy template name as default dataset for input packages, do the same.
2039+ dataStreamDataset := policyTemplate .Name
20342040 v , _ := cfgVars .GetValue ("data_stream.dataset" )
20352041 if dataset , ok := v .(string ); ok && dataset != "" {
20362042 dataStreamDataset = dataset
0 commit comments