Skip to content

Commit

Permalink
Added default index pattern creation to stream-based installation
Browse files Browse the repository at this point in the history
  • Loading branch information
xcrzx committed Nov 6, 2024
1 parent be3c159 commit 759c3d6
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 22 deletions.
23 changes: 14 additions & 9 deletions x-pack/plugins/fleet/server/services/epm/kibana/assets/install.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,20 @@ export async function installKibanaAssets(options: {
return [];
}

await createDefaultIndexPatterns(savedObjectsImporter);
await makeManagedIndexPatternsGlobal(savedObjectsClient);

return await installKibanaSavedObjects({
logger,
savedObjectsImporter,
kibanaAssets: assetsToInstall,
assetsChunkSize: MAX_ASSETS_TO_INSTALL_IN_PARALLEL,
});
}

export async function createDefaultIndexPatterns(
savedObjectsImporter: SavedObjectsImporterContract
) {
// Create index patterns separately with `overwrite: false` to prevent blowing away users' runtime fields.
// These don't get retried on conflict, because we expect that they exist once an integration has been installed.
const indexPatternSavedObjects = getIndexPatternSavedObjects() as ArchiveAsset[];
Expand All @@ -143,15 +157,6 @@ export async function installKibanaAssets(options: {
refresh: false,
managed: true,
});

await makeManagedIndexPatternsGlobal(savedObjectsClient);

return await installKibanaSavedObjects({
logger,
savedObjectsImporter,
kibanaAssets: assetsToInstall,
assetsChunkSize: MAX_ASSETS_TO_INSTALL_IN_PARALLEL,
});
}

export async function installKibanaAssetsAndReferencesMultispace({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,20 @@
* 2.0.
*/

import type { SavedObject, SavedObjectsClientContract } from '@kbn/core/server';
import type { SavedObjectsClientContract } from '@kbn/core/server';

import type { Installation, PackageInstallContext } from '../../../../../common/types';
import type { PackageInstallContext } from '../../../../../common/types';
import type { KibanaAssetReference, KibanaAssetType } from '../../../../types';
import { getPathParts } from '../../archive';

import { saveKibanaAssetsRefs } from '../../packages/install';

import { makeManagedIndexPatternsGlobal } from '../index_pattern/install';

import type { ArchiveAsset } from './install';
import {
KibanaSavedObjectTypeMapping,
createDefaultIndexPatterns,
createSavedObjectKibanaAsset,
isKibanaAssetType,
toAssetReference,
Expand All @@ -27,7 +30,6 @@ interface InstallKibanaAssetsWithStreamingArgs {
packageInstallContext: PackageInstallContext;
spaceId: string;
savedObjectsClient: SavedObjectsClientContract;
installedPkg?: SavedObject<Installation> | undefined;
}

const MAX_ASSETS_TO_INSTALL_IN_PARALLEL = 100;
Expand All @@ -37,11 +39,14 @@ export async function installKibanaAssetsWithStreaming({
packageInstallContext,
savedObjectsClient,
pkgName,
installedPkg,
}: InstallKibanaAssetsWithStreamingArgs): Promise<KibanaAssetReference[]> {
const { archiveIterator } = packageInstallContext;

const { savedObjectClientWithSpace } = getSpaceAwareSaveobjectsClients(spaceId);
const { savedObjectClientWithSpace, savedObjectsImporter } =
getSpaceAwareSaveobjectsClients(spaceId);

await createDefaultIndexPatterns(savedObjectsImporter);
await makeManagedIndexPatternsGlobal(savedObjectsClient);

const assetRefs: KibanaAssetReference[] = [];
let batch: ArchiveAsset[] = [];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export async function stepInstallKibanaAssets(context: InstallContext) {
}

export async function stepInstallKibanaAssetsWithStreaming(context: InstallContext) {
const { savedObjectsClient, installedPkg, packageInstallContext, spaceId } = context;
const { savedObjectsClient, packageInstallContext, spaceId } = context;
const { packageInfo } = packageInstallContext;
const { name: pkgName } = packageInfo;

Expand All @@ -51,7 +51,6 @@ export async function stepInstallKibanaAssetsWithStreaming(context: InstallConte
savedObjectsClient,
pkgName,
packageInstallContext,
installedPkg,
spaceId,
})
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ import { closeTimeline, openTimelineById } from '../../../tasks/timeline';
const siemDataViewTitle = 'Security Default Data View';
const dataViews = ['logs-*', 'metrics-*', '.kibana-event-log-*'];

// Failing: See https://github.com/elastic/kibana/issues/198943
describe.skip('Timeline scope', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => {
describe('Timeline scope', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => {
before(() => {
waitForRulesBootstrap();
});
Expand All @@ -64,8 +63,7 @@ describe.skip('Timeline scope', { tags: ['@ess', '@serverless', '@skipInServerle
});

describe('Modified badge', () => {
// failing on main multiple times https://github.com/elastic/kibana/issues/198944#issuecomment-2457665138 and https://github.com/elastic/kibana/issues/198943#issuecomment-2457665072
it.skip('Selecting new data view does not add a modified badge', () => {
it('Selecting new data view does not add a modified badge', () => {
openTimelineUsingToggle();
cy.get(SOURCERER.badgeModified).should(`not.exist`);
openSourcerer('timeline');
Expand Down Expand Up @@ -135,8 +133,7 @@ describe.skip('Timeline scope', { tags: ['@ess', '@serverless', '@skipInServerle
});

const defaultPatterns = [`auditbeat-*`, `${DEFAULT_ALERTS_INDEX}-default`];
// failing on main multiple times https://github.com/elastic/kibana/issues/198944#issuecomment-2457665138 and https://github.com/elastic/kibana/issues/198943#issuecomment-2457665072
it.skip('alerts checkbox behaves as expected', () => {
it('alerts checkbox behaves as expected', () => {
isDataViewSelection(siemDataViewTitle);
defaultPatterns.forEach((pattern) => isSourcererSelection(pattern));
openDataViewSelection();
Expand Down

0 comments on commit 759c3d6

Please sign in to comment.