From 5d4d35607b6f7f68565d347cac436bd8a4409a9c Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:37:23 -0500 Subject: [PATCH] [8.12] [Fleet] Update Fleet's custom ingest pipeline names to avoid collisions + add descriptions to each pipeline (#175448) (#175547) # Backport This will backport the following commits from `main` to `8.12`: - [[Fleet] Update Fleet's custom ingest pipeline names to avoid collisions + add descriptions to each pipeline (#175448)](https://github.com/elastic/kibana/pull/175448) ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) Co-authored-by: Kyle Pollich --- .../elasticsearch/ingest_pipeline/helpers.test.ts | 7 +++++-- .../epm/elasticsearch/ingest_pipeline/helpers.ts | 8 +++++++- .../apis/epm/custom_ingest_pipeline.ts | 13 +++++++++---- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/helpers.test.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/helpers.test.ts index ebffc0064b989..d759dec042247 100644 --- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/helpers.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/helpers.test.ts @@ -188,7 +188,7 @@ processors: }); expect(pipelineInstall.contentForInstallation).toMatchInlineSnapshot( - `"{\\"processors\\":[{\\"set\\":{\\"field\\":\\"test\\",\\"value\\":\\"toto\\"}},{\\"pipeline\\":{\\"name\\":\\"global@custom\\",\\"ignore_missing_pipeline\\":true}},{\\"pipeline\\":{\\"name\\":\\"logs@custom\\",\\"ignore_missing_pipeline\\":true}},{\\"pipeline\\":{\\"name\\":\\"logs-test@custom\\",\\"ignore_missing_pipeline\\":true}}]}"` + `"{\\"processors\\":[{\\"set\\":{\\"field\\":\\"test\\",\\"value\\":\\"toto\\"}},{\\"pipeline\\":{\\"name\\":\\"global@custom\\",\\"ignore_missing_pipeline\\":true,\\"description\\":\\"[Fleet] Global pipeline for all data streams\\"}},{\\"pipeline\\":{\\"name\\":\\"logs@custom\\",\\"ignore_missing_pipeline\\":true,\\"description\\":\\"[Fleet] Pipeline for all data streams of type \`logs\`\\"}},{\\"pipeline\\":{\\"name\\":\\"logs-test@custom\\",\\"ignore_missing_pipeline\\":true,\\"description\\":\\"[Fleet] Pipeline for the \`test\` dataset\\"}}]}"` ); }); @@ -231,12 +231,15 @@ processors: - pipeline: name: global@custom ignore_missing_pipeline: true + description: '[Fleet] Global pipeline for all data streams' - pipeline: name: logs@custom ignore_missing_pipeline: true + description: '[Fleet] Pipeline for all data streams of type \`logs\`' - pipeline: name: logs-test.access@custom ignore_missing_pipeline: true + description: '[Fleet] Pipeline for the \`test.access\` dataset' - reroute: tag: test.access dataset: test.reroute @@ -280,7 +283,7 @@ processors: }); expect(pipelineInstall.contentForInstallation).toMatchInlineSnapshot( - `"{\\"processors\\":[{\\"set\\":{\\"field\\":\\"test\\",\\"value\\":\\"toto\\"}},{\\"pipeline\\":{\\"name\\":\\"global@custom\\",\\"ignore_missing_pipeline\\":true}},{\\"pipeline\\":{\\"name\\":\\"logs@custom\\",\\"ignore_missing_pipeline\\":true}},{\\"pipeline\\":{\\"name\\":\\"logs-test.access@custom\\",\\"ignore_missing_pipeline\\":true}},{\\"reroute\\":{\\"tag\\":\\"test.access\\",\\"dataset\\":\\"test.reroute\\",\\"namespace\\":\\"default\\",\\"if\\":\\"true == true\\"}}]}"` + `"{\\"processors\\":[{\\"set\\":{\\"field\\":\\"test\\",\\"value\\":\\"toto\\"}},{\\"pipeline\\":{\\"name\\":\\"global@custom\\",\\"ignore_missing_pipeline\\":true,\\"description\\":\\"[Fleet] Global pipeline for all data streams\\"}},{\\"pipeline\\":{\\"name\\":\\"logs@custom\\",\\"ignore_missing_pipeline\\":true,\\"description\\":\\"[Fleet] Pipeline for all data streams of type \`logs\`\\"}},{\\"pipeline\\":{\\"name\\":\\"logs-test.access@custom\\",\\"ignore_missing_pipeline\\":true,\\"description\\":\\"[Fleet] Pipeline for the \`test.access\` dataset\\"}},{\\"reroute\\":{\\"tag\\":\\"test.access\\",\\"dataset\\":\\"test.reroute\\",\\"namespace\\":\\"default\\",\\"if\\":\\"true == true\\"}}]}"` ); }); }); diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/helpers.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/helpers.ts index 9c244821fd013..5ab17d690616e 100644 --- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/helpers.ts +++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/helpers.ts @@ -80,25 +80,30 @@ export function addCustomPipelineAndLocalRoutingRulesProcessor( pipeline.dataStream?.routing_rules?.find( (rule) => rule.source_dataset === pipeline.dataStream?.dataset )?.rules ?? []; + const customPipelineProcessors = [ { pipeline: { name: 'global@custom', ignore_missing_pipeline: true, + description: '[Fleet] Global pipeline for all data streams', }, }, { pipeline: { name: `${pipeline.dataStream.type}@custom`, ignore_missing_pipeline: true, + description: `[Fleet] Pipeline for all data streams of type \`${pipeline.dataStream.type}\``, }, }, ...(pipeline.dataStream.package ? [ { pipeline: { - name: `${pipeline.dataStream.type}-${pipeline.dataStream.package}@custom`, + // This pipeline name gets the `.integration` suffix to avoid conflicts with the pipeline name for the dataset below + name: `${pipeline.dataStream.type}-${pipeline.dataStream.package}.integration@custom`, ignore_missing_pipeline: true, + description: `[Fleet] Pipeline for all data streams of type \`${pipeline.dataStream.type}\` defined by the \`${pipeline.dataStream.package}\` integration`, }, }, ] @@ -107,6 +112,7 @@ export function addCustomPipelineAndLocalRoutingRulesProcessor( pipeline: { name: `${pipeline.dataStream.type}-${pipeline.dataStream.dataset}@custom`, ignore_missing_pipeline: true, + description: `[Fleet] Pipeline for the \`${pipeline.dataStream.dataset}\` dataset`, }, }, ]; diff --git a/x-pack/test/fleet_api_integration/apis/epm/custom_ingest_pipeline.ts b/x-pack/test/fleet_api_integration/apis/epm/custom_ingest_pipeline.ts index 244bc0c9db6d7..6c93e3e6eb14d 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/custom_ingest_pipeline.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/custom_ingest_pipeline.ts @@ -105,12 +105,12 @@ export default function (providerContext: FtrProviderContext) { }); await es.ingest.putPipeline({ - id: `logs-log@custom`, + id: `logs-log.integration@custom`, processors: [ { append: { field: 'test', - value: ['logs-log'], + value: ['logs-log.integration'], }, }, ], @@ -138,7 +138,7 @@ export default function (providerContext: FtrProviderContext) { id: 'logs@custom', }), es.ingest.deletePipeline({ - id: 'logs-log@custom', + id: 'logs-log.integration@custom', }), es.ingest.deletePipeline({ id: CUSTOM_PIPELINE, @@ -158,7 +158,12 @@ export default function (providerContext: FtrProviderContext) { id: res._id, index: res._index, }); - expect(doc._source?.test).be.eql(['global', 'logs', 'logs-log', 'logs-log.log']); + expect(doc._source?.test).be.eql([ + 'global', + 'logs', + 'logs-log.integration', + 'logs-log.log', + ]); }); }); });