diff --git a/src/platform/packages/private/kbn-journeys/fixtures/package_registry_config.yml b/src/platform/packages/private/kbn-journeys/fixtures/package_registry_config.yml deleted file mode 100644 index 1885fa5c2ebe5..0000000000000 --- a/src/platform/packages/private/kbn-journeys/fixtures/package_registry_config.yml +++ /dev/null @@ -1,2 +0,0 @@ -package_paths: - - /packages/package-storage diff --git a/src/platform/packages/private/kbn-journeys/journey/journey_ftr_config.ts b/src/platform/packages/private/kbn-journeys/journey/journey_ftr_config.ts index 1a9645bb5defe..fd1d13af52879 100644 --- a/src/platform/packages/private/kbn-journeys/journey/journey_ftr_config.ts +++ b/src/platform/packages/private/kbn-journeys/journey/journey_ftr_config.ts @@ -7,22 +7,20 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import Path from 'path'; - -import { v4 as uuidV4 } from 'uuid'; import { REPO_ROOT } from '@kbn/repo-info'; import { - type FtrConfigProviderContext, type FtrConfigProvider, + type FtrConfigProviderContext, defineDockerServersConfig, - fleetPackageRegistryDockerImage, + packageRegistryDocker, } from '@kbn/test'; -import path from 'path'; import apm from 'elastic-apm-node'; +import path from 'path'; +import { v4 as uuidV4 } from 'uuid'; import { services } from '../services'; import type { AnyStep } from './journey'; -import type { JourneyConfig } from './journey_config'; import { JOURNEY_APM_CONFIG } from './journey_apm_config'; +import type { JourneyConfig } from './journey_config'; export function makeFtrConfigProvider( config: JourneyConfig, @@ -38,7 +36,7 @@ export function makeFtrConfigProvider( ? 'x-pack/platform/test/functional/config.base.ts' : 'src/platform/test/functional/config.base.js'; const ftrConfigPath = configPath ?? defaultConfigPath; - const baseConfig = (await readConfigFile(Path.resolve(REPO_ROOT, ftrConfigPath))).getAll(); + const baseConfig = (await readConfigFile(path.resolve(REPO_ROOT, ftrConfigPath))).getAll(); const testBuildId = process.env.BUILDKITE_BUILD_ID ?? `local-${uuidV4()}`; const testJobId = process.env.BUILDKITE_JOB_ID ?? `local-${uuidV4()}`; @@ -84,30 +82,11 @@ export function makeFtrConfigProvider( .flatMap(([key, value]) => (value === null || value === undefined ? [] : `${key}=${value}`)) .join(','); - /** - * This is used by CI to set the docker registry port - * you can also define this environment variable locally when running tests which - * will spin up a local docker package registry locally for you - * if this is defined it takes precedence over the `packageRegistryOverride` variable - */ - const dockerRegistryPort: string | undefined = process.env.FLEET_PACKAGE_REGISTRY_PORT; - - const packageRegistryConfig = path.join(__dirname, '../fixtures/package_registry_config.yml'); - const dockerArgs: string[] = ['-v', `${packageRegistryConfig}:/package-registry/config.yml`]; - return { ...baseConfig, dockerServers: defineDockerServersConfig({ - registry: { - enabled: !!dockerRegistryPort, - image: fleetPackageRegistryDockerImage, - portInContainer: 8080, - port: dockerRegistryPort, - args: dockerArgs, - waitForLogLine: 'package manifests loaded', - waitForLogLineTimeoutMs: 60 * 6 * 1000, // 6 minutes - }, + registry: packageRegistryDocker, }), mochaOpts: { diff --git a/src/platform/packages/shared/kbn-scout/src/config/serverless/resources/package_registry_config.yml b/src/platform/packages/shared/kbn-scout/src/config/serverless/resources/package_registry_config.yml deleted file mode 100644 index 1885fa5c2ebe5..0000000000000 --- a/src/platform/packages/shared/kbn-scout/src/config/serverless/resources/package_registry_config.yml +++ /dev/null @@ -1,2 +0,0 @@ -package_paths: - - /packages/package-storage diff --git a/src/platform/packages/shared/kbn-scout/src/config/serverless/serverless.base.config.ts b/src/platform/packages/shared/kbn-scout/src/config/serverless/serverless.base.config.ts index 53954bae76871..ad393f277c30d 100644 --- a/src/platform/packages/shared/kbn-scout/src/config/serverless/serverless.base.config.ts +++ b/src/platform/packages/shared/kbn-scout/src/config/serverless/serverless.base.config.ts @@ -7,31 +7,19 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { resolve, join } from 'path'; -import { format as formatUrl } from 'url'; -import Fs from 'fs'; - import { CA_CERT_PATH, kibanaDevServiceAccount } from '@kbn/dev-utils'; +import { MOCK_IDP_REALM_NAME } from '@kbn/mock-idp-utils'; +import { REPO_ROOT } from '@kbn/repo-info'; import { - fleetPackageRegistryDockerImage, defineDockerServersConfig, getDockerFileMountPath, + packageRegistryDocker, } from '@kbn/test'; -import { MOCK_IDP_REALM_NAME } from '@kbn/mock-idp-utils'; -import { REPO_ROOT } from '@kbn/repo-info'; +import Fs from 'fs'; +import { resolve } from 'path'; +import { format as formatUrl } from 'url'; import type { ScoutServerConfig } from '../../types'; -import { SAML_IDP_PLUGIN_PATH, SERVERLESS_IDP_METADATA_PATH, JWKS_PATH } from '../constants'; - -const packageRegistryConfig = join(__dirname, './package_registry_config.yml'); -const dockerArgs: string[] = ['-v', `${packageRegistryConfig}:/package-registry/config.yml`]; - -/** - * This is used by CI to set the docker registry port - * you can also define this environment variable locally when running tests which - * will spin up a local docker package registry locally for you - * if this is defined it takes precedence over the `packageRegistryOverride` variable - */ -const dockerRegistryPort: string | undefined = process.env.FLEET_PACKAGE_REGISTRY_PORT; +import { JWKS_PATH, SAML_IDP_PLUGIN_PATH, SERVERLESS_IDP_METADATA_PATH } from '../constants'; const servers = { elasticsearch: { @@ -55,15 +43,7 @@ export const defaultConfig: ScoutServerConfig = { serverless: true, servers, dockerServers: defineDockerServersConfig({ - registry: { - enabled: !!dockerRegistryPort, - image: fleetPackageRegistryDockerImage, - portInContainer: 8080, - port: dockerRegistryPort, - args: dockerArgs, - waitForLogLine: 'package manifests loaded', - waitForLogLineTimeoutMs: 60 * 6 * 1000, // 6 minutes - }, + registry: packageRegistryDocker, }), esTestCluster: { from: 'serverless', @@ -72,7 +52,6 @@ export const defaultConfig: ScoutServerConfig = { 'xpack.security.authc.realms.file.file1.order=-100', `xpack.security.authc.realms.native.native1.enabled=false`, `xpack.security.authc.realms.native.native1.order=-97`, - 'xpack.security.authc.realms.jwt.jwt1.allowed_audiences=elasticsearch', `xpack.security.authc.realms.jwt.jwt1.allowed_issuer=https://kibana.elastic.co/jwt/`, `xpack.security.authc.realms.jwt.jwt1.allowed_signature_algorithms=[RS256]`, diff --git a/src/platform/packages/shared/kbn-scout/src/config/stateful/base.config.ts b/src/platform/packages/shared/kbn-scout/src/config/stateful/base.config.ts index 50a0a92fe3f21..0bd7a22eae6e5 100644 --- a/src/platform/packages/shared/kbn-scout/src/config/stateful/base.config.ts +++ b/src/platform/packages/shared/kbn-scout/src/config/stateful/base.config.ts @@ -20,21 +20,10 @@ import { MOCK_IDP_REALM_NAME, } from '@kbn/mock-idp-utils'; import { REPO_ROOT } from '@kbn/repo-info'; -import { defineDockerServersConfig, fleetPackageRegistryDockerImage } from '@kbn/test'; +import { defineDockerServersConfig, packageRegistryDocker } from '@kbn/test'; import type { ScoutServerConfig } from '../../types'; import { SAML_IDP_PLUGIN_PATH, STATEFUL_IDP_METADATA_PATH } from '../constants'; -const packageRegistryConfig = join(__dirname, './package_registry_config.yml'); -const dockerArgs: string[] = ['-v', `${packageRegistryConfig}:/package-registry/config.yml`]; - -/** - * This is used by CI to set the docker registry port - * you can also define this environment variable locally when running tests which - * will spin up a local docker package registry locally for you - * if this is defined it takes precedence over the `packageRegistryOverride` variable - */ -const dockerRegistryPort: string | undefined = process.env.FLEET_PACKAGE_REGISTRY_PORT; - // if config is executed on CI or locally const isRunOnCI = process.env.CI; @@ -60,15 +49,7 @@ const kbnUrl = `${servers.kibana.protocol}://${servers.kibana.hostname}:${server export const defaultConfig: ScoutServerConfig = { servers, dockerServers: defineDockerServersConfig({ - registry: { - enabled: !!dockerRegistryPort, - image: fleetPackageRegistryDockerImage, - portInContainer: 8080, - port: dockerRegistryPort, - args: dockerArgs, - waitForLogLine: 'package manifests loaded', - waitForLogLineTimeoutMs: 60 * 6 * 1000, // 6 minutes - }, + registry: packageRegistryDocker, }), esTestCluster: { from: 'snapshot', diff --git a/src/platform/packages/shared/kbn-test/index.ts b/src/platform/packages/shared/kbn-test/index.ts index 4040e5ec574b9..3ef62175317ad 100644 --- a/src/platform/packages/shared/kbn-test/index.ts +++ b/src/platform/packages/shared/kbn-test/index.ts @@ -81,9 +81,8 @@ export * from './src/find_test_plugin_paths'; export { getDockerFileMountPath } from '@kbn/es'; -// Docker image to use for Fleet API integration tests. -// This image comes from the latest successful build of https://buildkite.com/elastic/kibana-package-registry-promote -// which is promoted after acceptance tests succeed against docker.elastic.co/package-registry/distribution:lite -export const fleetPackageRegistryDockerImage = - process.env.FLEET_PACKAGE_REGISTRY_DOCKER_IMAGE || - 'docker.elastic.co/kibana-ci/package-registry-distribution:lite'; +export { + fleetPackageRegistryDockerImage, + packageRegistryDocker, + dockerRegistryPort, +} from './src/functional_test_runner'; diff --git a/src/platform/packages/shared/kbn-test/src/functional_test_runner/lib/docker_servers/index.ts b/src/platform/packages/shared/kbn-test/src/functional_test_runner/lib/docker_servers/index.ts index 87469dea1fefc..43da3f1dc618c 100644 --- a/src/platform/packages/shared/kbn-test/src/functional_test_runner/lib/docker_servers/index.ts +++ b/src/platform/packages/shared/kbn-test/src/functional_test_runner/lib/docker_servers/index.ts @@ -9,3 +9,4 @@ export * from './docker_servers_service'; export * from './define_docker_servers_config'; +export * from './package_registry'; diff --git a/src/platform/packages/shared/kbn-test/src/functional_test_runner/lib/docker_servers/package_registry/index.ts b/src/platform/packages/shared/kbn-test/src/functional_test_runner/lib/docker_servers/package_registry/index.ts new file mode 100644 index 0000000000000..2672be7a51836 --- /dev/null +++ b/src/platform/packages/shared/kbn-test/src/functional_test_runner/lib/docker_servers/package_registry/index.ts @@ -0,0 +1,38 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { join } from 'path'; + +// Docker image to use for Fleet API integration tests. +// This image comes from the latest successful build of https://buildkite.com/elastic/kibana-package-registry-promote +// which is promoted after acceptance tests succeed against docker.elastic.co/package-registry/distribution:lite +export const fleetPackageRegistryDockerImage = + process.env.FLEET_PACKAGE_REGISTRY_DOCKER_IMAGE || + 'docker.elastic.co/kibana-ci/package-registry-distribution:lite'; + +const packageRegistryConfig = join(__dirname, './package_registry_config.yml'); +const dockerArgs: string[] = ['-v', `${packageRegistryConfig}:/package-registry/config.yml`]; + +/** + * This is used by CI to set the docker registry port + * you can also define this environment variable locally when running tests which + * will spin up a local docker package registry locally for you + * if this is defined it takes precedence over the `packageRegistryOverride` variable + */ +export const dockerRegistryPort: string | undefined = process.env.FLEET_PACKAGE_REGISTRY_PORT; + +export const packageRegistryDocker = { + enabled: !!dockerRegistryPort, + image: fleetPackageRegistryDockerImage, + portInContainer: 8080, + port: dockerRegistryPort, + args: dockerArgs, + waitForLogLine: 'package manifests loaded', + waitForLogLineTimeoutMs: 60 * 4 * 1000, // 4 minutes +}; diff --git a/x-pack/platform/plugins/shared/dataset_quality/README.md b/x-pack/platform/plugins/shared/dataset_quality/README.md index 18351597a3064..6b61fa64ae74c 100755 --- a/x-pack/platform/plugins/shared/dataset_quality/README.md +++ b/x-pack/platform/plugins/shared/dataset_quality/README.md @@ -78,7 +78,7 @@ node x-pack/platform/plugins/shared/dataset_quality/scripts/api --runner --grep- For tests using package registry we have enabled a configuration that uses a dockerized lite version to execute the tests in the CI, this will reduce the flakyness of them when calling the real endpoint. -To be able to run this version locally you must have a docker daemon running in your systema and set `FLEET_PACKAGE_REGISTRY_PORT` env var. In order to set this variable execute +To be able to run this version locally you must have a docker daemon running in your system and set `FLEET_PACKAGE_REGISTRY_PORT` env var. In order to set this variable execute ``` export set FLEET_PACKAGE_REGISTRY_PORT=12345 diff --git a/x-pack/platform/test/api_integration_deployment_agnostic/default_configs/feature_flag.serverless.config.base.ts b/x-pack/platform/test/api_integration_deployment_agnostic/default_configs/feature_flag.serverless.config.base.ts index 7913702464c64..f535e831215dc 100644 --- a/x-pack/platform/test/api_integration_deployment_agnostic/default_configs/feature_flag.serverless.config.base.ts +++ b/x-pack/platform/test/api_integration_deployment_agnostic/default_configs/feature_flag.serverless.config.base.ts @@ -4,12 +4,10 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import type { FtrConfigProviderContext, Config } from '@kbn/test'; -import { fleetPackageRegistryDockerImage, defineDockerServersConfig } from '@kbn/test'; - -import { ScoutTestRunConfigCategory } from '@kbn/scout-info'; +import type { Config, FtrConfigProviderContext } from '@kbn/test'; +import { defineDockerServersConfig, dockerRegistryPort, packageRegistryDocker } from '@kbn/test'; import type { ServerlessProjectType } from '@kbn/es'; -import path from 'path'; +import { ScoutTestRunConfigCategory } from '@kbn/scout-info'; import type { DeploymentAgnosticCommonServices } from '../services'; import { services } from '../services'; import { LOCAL_PRODUCT_DOC_PATH } from './common_paths'; @@ -58,22 +56,12 @@ export function createServerlessFeatureFlagTestConfig ) { return async ({ readConfigFile }: FtrConfigProviderContext): Promise => { - const packageRegistryConfig = path.join(__dirname, './fixtures/package_registry_config.yml'); - const dockerArgs: string[] = ['-v', `${packageRegistryConfig}:/package-registry/config.yml`]; let kbnServerArgs: string[] = []; if (options.kbnServerArgs) { kbnServerArgs = await updateKbnServerArguments(options.kbnServerArgs); } - /** - * This is used by CI to set the docker registry port - * you can also define this environment variable locally when running tests which - * will spin up a local docker package registry locally for you - * if this is defined it takes precedence over the `packageRegistryOverride` variable - */ - const dockerRegistryPort: string | undefined = process.env.FLEET_PACKAGE_REGISTRY_PORT; - const svlSharedConfig = await readConfigFile( require.resolve('../../serverless/shared/config.base.ts') ); @@ -87,15 +75,7 @@ export function createServerlessFeatureFlagTestConfig { const svlSharedConfig = await readConfigFile(require.resolve('../shared/config.base.ts')); + const enableFleetDockerRegistry = options.enableFleetDockerRegistry ?? true; return { ...svlSharedConfig.getAll(), @@ -22,6 +24,7 @@ export function createTestConfig(options: CreateTestConfigOptions) { ...services, ...options.services, }, + ...(!enableFleetDockerRegistry && { dockerServers: undefined }), esTestCluster: { ...svlSharedConfig.get('esTestCluster'), serverArgs: [ @@ -36,6 +39,9 @@ export function createTestConfig(options: CreateTestConfigOptions) { ...svlSharedConfig.get('kbnTestServer.serverArgs'), `--serverless=${options.serverlessProject}`, ...(options.kbnServerArgs || []), + ...(enableFleetDockerRegistry && dockerRegistryPort + ? [`--xpack.fleet.registryUrl=http://localhost:${dockerRegistryPort}`] + : []), ], }, testFiles: options.testFiles, diff --git a/x-pack/platform/test/serverless/api_integration/configs/security/config.group1.ts b/x-pack/platform/test/serverless/api_integration/configs/security/config.group1.ts index 5dafb8ab301ce..a0af31fef7d19 100644 --- a/x-pack/platform/test/serverless/api_integration/configs/security/config.group1.ts +++ b/x-pack/platform/test/serverless/api_integration/configs/security/config.group1.ts @@ -36,6 +36,7 @@ export default createTestConfig({ junit: { reportName: 'Serverless Security Platform API Integration Tests - Common Group 1', }, + enableFleetDockerRegistry: false, suiteTags: { exclude: ['skipSvlSec'] }, // include settings from project controller diff --git a/x-pack/platform/test/serverless/functional/config.base.ts b/x-pack/platform/test/serverless/functional/config.base.ts index 92ac471b978d8..84f54e45a8400 100644 --- a/x-pack/platform/test/serverless/functional/config.base.ts +++ b/x-pack/platform/test/serverless/functional/config.base.ts @@ -5,12 +5,13 @@ * 2.0. */ -import type { FtrConfigProviderContext } from '@kbn/test'; import { ScoutTestRunConfigCategory } from '@kbn/scout-info'; +import type { FtrConfigProviderContext } from '@kbn/test'; +import { dockerRegistryPort } from '@kbn/test'; import { resolve } from 'path'; +import type { CreateTestConfigOptions } from '../shared/types'; import { pageObjects } from './page_objects'; import { services } from './services'; -import type { CreateTestConfigOptions } from '../shared/types'; export function createTestConfig< TServices extends {} = typeof services, @@ -18,6 +19,7 @@ export function createTestConfig< >(options: CreateTestConfigOptions) { return async ({ readConfigFile }: FtrConfigProviderContext) => { const svlSharedConfig = await readConfigFile(require.resolve('../shared/config.base.ts')); + const enableFleetDockerRegistry = options.enableFleetDockerRegistry ?? true; return { ...svlSharedConfig.getAll(), @@ -25,6 +27,7 @@ export function createTestConfig< testConfigCategory: ScoutTestRunConfigCategory.UI_TEST, pageObjects: { ...pageObjects, ...options.pageObjects }, services: { ...services, ...options.services }, + ...(!enableFleetDockerRegistry && { dockerServers: undefined }), esTestCluster: { ...svlSharedConfig.get('esTestCluster'), serverArgs: [ @@ -39,6 +42,9 @@ export function createTestConfig< ...svlSharedConfig.get('kbnTestServer.serverArgs'), `--serverless=${options.serverlessProject}`, ...(options.kbnServerArgs ?? []), + ...(enableFleetDockerRegistry && dockerRegistryPort + ? [`--xpack.fleet.registryUrl=http://localhost:${dockerRegistryPort}`] + : []), ], }, testFiles: options.testFiles, diff --git a/x-pack/platform/test/serverless/shared/common/package_registry_config.yml b/x-pack/platform/test/serverless/shared/common/package_registry_config.yml deleted file mode 100644 index 1885fa5c2ebe5..0000000000000 --- a/x-pack/platform/test/serverless/shared/common/package_registry_config.yml +++ /dev/null @@ -1,2 +0,0 @@ -package_paths: - - /packages/package-storage diff --git a/x-pack/platform/test/serverless/shared/config.base.ts b/x-pack/platform/test/serverless/shared/config.base.ts index 11231dd65f0dd..f81d385869726 100644 --- a/x-pack/platform/test/serverless/shared/config.base.ts +++ b/x-pack/platform/test/serverless/shared/config.base.ts @@ -5,35 +5,25 @@ * 2.0. */ +import Fs from 'fs'; import { resolve } from 'path'; import { format as formatUrl } from 'url'; -import Fs from 'fs'; +import { CA_CERT_PATH, kibanaDevServiceAccount } from '@kbn/dev-utils'; +import { MOCK_IDP_REALM_NAME } from '@kbn/mock-idp-utils'; import { REPO_ROOT } from '@kbn/repo-info'; import { + defineDockerServersConfig, + dockerRegistryPort, esTestConfig, + getDockerFileMountPath, kbnTestConfig, kibanaTestSuperuserServerless, - getDockerFileMountPath, + packageRegistryDocker, } from '@kbn/test'; -import { CA_CERT_PATH, kibanaDevServiceAccount } from '@kbn/dev-utils'; -import { MOCK_IDP_REALM_NAME } from '@kbn/mock-idp-utils'; -import path from 'path'; -import { fleetPackageRegistryDockerImage, defineDockerServersConfig } from '@kbn/test'; import { services as svlServices } from './services'; export default async () => { - const packageRegistryConfig = path.join(__dirname, './common/package_registry_config.yml'); - const dockerArgs: string[] = ['-v', `${packageRegistryConfig}:/package-registry/config.yml`]; - - /** - * This is used by CI to set the docker registry port - * you can also define this environment variable locally when running tests which - * will spin up a local docker package registry locally for you - * if this is defined it takes precedence over the `packageRegistryOverride` variable - */ - const dockerRegistryPort: string | undefined = process.env.FLEET_PACKAGE_REGISTRY_PORT; - const servers = { kibana: { ...kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless), @@ -59,15 +49,7 @@ export default async () => { return { servers, dockerServers: defineDockerServersConfig({ - registry: { - enabled: !!dockerRegistryPort, - image: fleetPackageRegistryDockerImage, - portInContainer: 8080, - port: dockerRegistryPort, - args: dockerArgs, - waitForLogLine: 'package manifests loaded', - waitForLogLineTimeoutMs: 60 * 6 * 1000, // 6 minutes - }, + registry: packageRegistryDocker, }), browser: { acceptInsecureCerts: true, @@ -176,6 +158,9 @@ export default async () => { `--xpack.cloud.deployments_url=/deployments`, `--xpack.cloud.organization_url=/account/`, `--xpack.cloud.users_and_roles_url=/account/members/`, + ...(dockerRegistryPort + ? [`--xpack.fleet.registryUrl=http://localhost:${dockerRegistryPort}`] + : []), ], }, diff --git a/x-pack/platform/test/serverless/shared/types/index.ts b/x-pack/platform/test/serverless/shared/types/index.ts index 6f10fc0edc6df..58582bb0689a5 100644 --- a/x-pack/platform/test/serverless/shared/types/index.ts +++ b/x-pack/platform/test/serverless/shared/types/index.ts @@ -42,6 +42,7 @@ export interface CreateTestConfigOptions< services?: TServices; pageObjects?: TPageObjects; apps?: Record; + enableFleetDockerRegistry?: boolean; screenshots?: { directory: string }; indexRefreshInterval?: string | false; } diff --git a/x-pack/solutions/observability/plugins/apm/ftr_e2e/apis/fixtures/package_registry_config.yml b/x-pack/solutions/observability/plugins/apm/ftr_e2e/apis/fixtures/package_registry_config.yml deleted file mode 100644 index a6c51976af986..0000000000000 --- a/x-pack/solutions/observability/plugins/apm/ftr_e2e/apis/fixtures/package_registry_config.yml +++ /dev/null @@ -1,2 +0,0 @@ -package_paths: - - /packages/package-storage \ No newline at end of file diff --git a/x-pack/solutions/observability/test/apm_api_integration/common/config.ts b/x-pack/solutions/observability/test/apm_api_integration/common/config.ts index 0994ba7b59503..937a9b08caa6a 100644 --- a/x-pack/solutions/observability/test/apm_api_integration/common/config.ts +++ b/x-pack/solutions/observability/test/apm_api_integration/common/config.ts @@ -7,19 +7,19 @@ import { ApmUsername } from '@kbn/apm-plugin/server/test_helpers/create_apm_users/authentication'; import { createApmUsers } from '@kbn/apm-plugin/server/test_helpers/create_apm_users/create_apm_users'; +import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace'; +import { ScoutTestRunConfigCategory } from '@kbn/scout-info'; import type { FtrConfigProviderContext } from '@kbn/test'; import { defineDockerServersConfig, - fleetPackageRegistryDockerImage, + dockerRegistryPort, kbnTestConfig, + packageRegistryDocker, } from '@kbn/test'; -import path from 'path'; -import { ScoutTestRunConfigCategory } from '@kbn/scout-info'; +import { MachineLearningAPIProvider } from '@kbn/test-suites-xpack-platform/api_integration/services/ml/api'; import supertest from 'supertest'; import type { UrlObject } from 'url'; import { format } from 'url'; -import { MachineLearningAPIProvider } from '@kbn/test-suites-xpack-platform/api_integration/services/ml/api'; -import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace'; import type { APMFtrConfigName } from '../configs'; import { createApmApiClient } from './apm_api_supertest'; import type { @@ -105,23 +105,10 @@ export function createTestConfig( const kibanaServerUrl = format(kibanaServer); const esServer = servers.elasticsearch as UrlObject; - const dockerRegistryPort: string | undefined = process.env.FLEET_PACKAGE_REGISTRY_PORT; - - const packageRegistryConfig = path.join(__dirname, './fixtures/package_registry_config.yml'); - const dockerArgs: string[] = ['-v', `${packageRegistryConfig}:/package-registry/config.yml`]; - return { testConfigCategory: ScoutTestRunConfigCategory.API_TEST, dockerServers: defineDockerServersConfig({ - registry: { - enabled: !!dockerRegistryPort, - image: fleetPackageRegistryDockerImage, - portInContainer: 8080, - port: dockerRegistryPort, - args: dockerArgs, - waitForLogLine: 'package manifests loaded', - waitForLogLineTimeoutMs: 60 * 6 * 1000, // 6 minutes - }, + registry: packageRegistryDocker, }), testFiles: [require.resolve('../tests')], servers, @@ -221,6 +208,9 @@ export function createTestConfig( Array.isArray(value) ? `--${key}=${JSON.stringify(value)}` : `--${key}=${value}` ) : []), + ...(dockerRegistryPort + ? [`--xpack.fleet.registryUrl=http://localhost:${dockerRegistryPort}`] + : []), ], }, }; diff --git a/x-pack/solutions/observability/test/apm_api_integration/common/fixtures/package_registry_config.yml b/x-pack/solutions/observability/test/apm_api_integration/common/fixtures/package_registry_config.yml deleted file mode 100644 index 1885fa5c2ebe5..0000000000000 --- a/x-pack/solutions/observability/test/apm_api_integration/common/fixtures/package_registry_config.yml +++ /dev/null @@ -1,2 +0,0 @@ -package_paths: - - /packages/package-storage diff --git a/x-pack/solutions/observability/test/functional/apps/dataset_quality/dataset_quality_details.ts b/x-pack/solutions/observability/test/functional/apps/dataset_quality/dataset_quality_details.ts index a94ac3c4b6e5c..b42070a32c7f1 100644 --- a/x-pack/solutions/observability/test/functional/apps/dataset_quality/dataset_quality_details.ts +++ b/x-pack/solutions/observability/test/functional/apps/dataset_quality/dataset_quality_details.ts @@ -49,11 +49,11 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid version: '1.14.0', }; - const bitbucketDatasetName = 'atlassian_bitbucket.audit'; - const bitbucketAuditDataStreamName = `logs-${bitbucketDatasetName}-${defaultNamespace}`; - const bitbucketPkg = { - name: 'atlassian_bitbucket', - version: '1.14.0', + const fleetServerDatasetName = 'fleet_server.output_health'; + const fleetServerOutputHealthDataStreamName = `logs-${fleetServerDatasetName}-${defaultNamespace}`; + const fleetServerPkg = { + name: 'fleet_server', + version: '1.6.0', }; const regularDatasetName = datasetNames[0]; @@ -71,8 +71,8 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid // Install Apache Integration and ingest logs for it await PageObjects.observabilityLogsExplorer.installPackage(apachePkg); - // Install Bitbucket Integration (package which does not has Dashboards) and ingest logs for it - await PageObjects.observabilityLogsExplorer.installPackage(bitbucketPkg); + // Install fleet server Integration (package which does not has Dashboards) and ingest logs for it + await PageObjects.observabilityLogsExplorer.installPackage(fleetServerPkg); await synthtrace.createCustomPipeline(processors, 'synth.2@pipeline'); await synthtrace.createComponentTemplate({ @@ -110,7 +110,7 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid isMalformed: true, }), // Index logs for Bitbucket integration - getLogsForDataset({ to, count: 10, dataset: bitbucketDatasetName }), + getLogsForDataset({ to, count: 10, dataset: fleetServerDatasetName }), createFailedLogRecord({ to: new Date().toISOString(), count: 2, @@ -131,7 +131,7 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid after(async () => { await PageObjects.observabilityLogsExplorer.uninstallPackage(apachePkg); - await PageObjects.observabilityLogsExplorer.uninstallPackage(bitbucketPkg); + await PageObjects.observabilityLogsExplorer.uninstallPackage(fleetServerPkg); await synthtrace.clean(); await synthtrace.deleteIndexTemplate(IndexTemplateName.Synht2); await synthtrace.deleteComponentTemplate('synth.2@custom'); @@ -370,7 +370,7 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid it('should hide integration dashboard for integrations without dashboards', async () => { await PageObjects.datasetQuality.navigateToDetails({ - dataStream: bitbucketAuditDataStreamName, + dataStream: fleetServerOutputHealthDataStreamName, }); await PageObjects.datasetQuality.openIntegrationActionsMenu(); @@ -384,7 +384,7 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid it('should navigate to integration overview page on clicking integration overview action', async () => { await PageObjects.datasetQuality.navigateToDetails({ - dataStream: bitbucketAuditDataStreamName, + dataStream: fleetServerOutputHealthDataStreamName, }); await PageObjects.datasetQuality.openIntegrationActionsMenu(); @@ -398,7 +398,7 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid const currentUrl = await browser.getCurrentUrl(); const parsedUrl = new URL(currentUrl); - expect(parsedUrl.pathname).to.contain('/app/integrations/detail/atlassian_bitbucket'); + expect(parsedUrl.pathname).to.contain('/app/integrations/detail/fleet_server'); }); }); diff --git a/x-pack/solutions/observability/test/functional/config.base.ts b/x-pack/solutions/observability/test/functional/config.base.ts index b7b0615acd4ef..262d4725a7c30 100644 --- a/x-pack/solutions/observability/test/functional/config.base.ts +++ b/x-pack/solutions/observability/test/functional/config.base.ts @@ -7,8 +7,9 @@ import { ScoutTestRunConfigCategory } from '@kbn/scout-info'; import type { FtrConfigProviderContext } from '@kbn/test'; -import { services } from './services'; +import { defineDockerServersConfig, dockerRegistryPort, packageRegistryDocker } from '@kbn/test'; import { pageObjects } from './page_objects'; +import { services } from './services'; export async function getFunctionalConfig({ readConfigFile }: FtrConfigProviderContext) { const xPackPlatformFunctionalTestsConfig = await readConfigFile( @@ -21,13 +22,21 @@ export async function getFunctionalConfig({ readConfigFile }: FtrConfigProviderC pageObjects, testConfigCategory: ScoutTestRunConfigCategory.UI_TEST, servers: xPackPlatformFunctionalTestsConfig.get('servers'), + dockerServers: defineDockerServersConfig({ + registry: packageRegistryDocker, + }), security: xPackPlatformFunctionalTestsConfig.get('security'), junit: { reportName: 'X-Pack Observability Functional UI Tests', }, kbnTestServer: { ...xPackPlatformFunctionalTestsConfig.get('kbnTestServer'), - serverArgs: [...xPackPlatformFunctionalTestsConfig.get('kbnTestServer.serverArgs')], + serverArgs: [ + ...xPackPlatformFunctionalTestsConfig.get('kbnTestServer.serverArgs'), + ...(dockerRegistryPort + ? [`--xpack.fleet.registryUrl=http://localhost:${dockerRegistryPort}`] + : []), + ], }, esTestCluster: { ...xPackPlatformFunctionalTestsConfig.get('esTestCluster'), diff --git a/x-pack/solutions/observability/test/serverless/functional/test_suites/dataset_quality/dataset_quality_details.ts b/x-pack/solutions/observability/test/serverless/functional/test_suites/dataset_quality/dataset_quality_details.ts index 7068d2bb08ad0..d3005f764cfbd 100644 --- a/x-pack/solutions/observability/test/serverless/functional/test_suites/dataset_quality/dataset_quality_details.ts +++ b/x-pack/solutions/observability/test/serverless/functional/test_suites/dataset_quality/dataset_quality_details.ts @@ -46,11 +46,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { version: '1.14.0', }; - const bitbucketDatasetName = 'atlassian_bitbucket.audit'; - const bitbucketAuditDataStreamName = `logs-${bitbucketDatasetName}-${defaultNamespace}`; - const bitbucketPkg = { - name: 'atlassian_bitbucket', - version: '1.14.0', + const fleetServerDatasetName = 'fleet_server.output_health'; + const fleetServerOutputHealthDataStreamName = `logs-${fleetServerDatasetName}-${defaultNamespace}`; + const fleetServerPkg = { + name: 'fleet_server', + version: '1.6.0', }; const regularDatasetName = datasetNames[0]; @@ -63,8 +63,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { // Install Apache Integration and ingest logs for it await PageObjects.observabilityLogsExplorer.installPackage(apachePkg); - // Install Bitbucket Integration (package which does not has Dashboards) and ingest logs for it - await PageObjects.observabilityLogsExplorer.installPackage(bitbucketPkg); + // Install fleet server Integration (package which does not has Dashboards) and ingest logs for it + await PageObjects.observabilityLogsExplorer.installPackage(fleetServerPkg); await synthtrace.index([ // Ingest basic logs @@ -91,7 +91,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { isMalformed: true, }), // Index logs for Bitbucket integration - getLogsForDataset({ to, count: 10, dataset: bitbucketDatasetName }), + getLogsForDataset({ to, count: 10, dataset: fleetServerDatasetName }), ]); await PageObjects.svlCommonPage.loginAsViewer(); @@ -99,7 +99,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { after(async () => { await PageObjects.observabilityLogsExplorer.uninstallPackage(apachePkg); - await PageObjects.observabilityLogsExplorer.uninstallPackage(bitbucketPkg); + await PageObjects.observabilityLogsExplorer.uninstallPackage(fleetServerPkg); await synthtrace.clean(); }); @@ -227,7 +227,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should hide integration dashboard for integrations without dashboards', async () => { await PageObjects.datasetQuality.navigateToDetails({ - dataStream: bitbucketAuditDataStreamName, + dataStream: fleetServerOutputHealthDataStreamName, }); await PageObjects.datasetQuality.openIntegrationActionsMenu(); @@ -241,7 +241,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('Should navigate to integration overview page on clicking integration overview action', async () => { await PageObjects.datasetQuality.navigateToDetails({ - dataStream: bitbucketAuditDataStreamName, + dataStream: fleetServerOutputHealthDataStreamName, }); await PageObjects.datasetQuality.openIntegrationActionsMenu(); @@ -255,7 +255,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const currentUrl = await browser.getCurrentUrl(); const parsedUrl = new URL(currentUrl); - expect(parsedUrl.pathname).to.contain('/app/integrations/detail/atlassian_bitbucket'); + expect(parsedUrl.pathname).to.contain('/app/integrations/detail/fleet_server'); }); }); diff --git a/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.agentless.ts b/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.agentless.ts index f6e940fed2f56..696c929f1ca41 100644 --- a/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.agentless.ts +++ b/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.agentless.ts @@ -16,6 +16,7 @@ export default createTestConfig({ serverlessProject: 'security', pageObjects, services, + enableFleetDockerRegistry: false, junit: { reportName: 'Serverless Security Cloud Security Agentless Onboarding Functional Tests', }, diff --git a/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.basic.ts b/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.basic.ts index 28311f34b084a..25cab1d202686 100644 --- a/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.basic.ts +++ b/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.basic.ts @@ -14,6 +14,7 @@ export default createTestConfig({ serverlessProject: 'security', pageObjects, services, + enableFleetDockerRegistry: false, junit: { reportName: 'Serverless Security Cloud Security Functional Tests', }, diff --git a/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.cloud.ts b/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.cloud.ts index ea9d1942c028e..70eca6f1b32a3 100644 --- a/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.cloud.ts +++ b/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.cloud.ts @@ -13,6 +13,7 @@ export default createTestConfig({ serverlessProject: 'security', pageObjects, services, + enableFleetDockerRegistry: false, junit: { reportName: 'Serverless Security Cloud Security Functional Tests', }, diff --git a/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.essentials.ts b/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.essentials.ts index 0f6eda1c54d34..de8022ac70262 100644 --- a/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.essentials.ts +++ b/x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.essentials.ts @@ -14,6 +14,7 @@ export default createTestConfig({ serverlessProject: 'security', pageObjects, services, + enableFleetDockerRegistry: false, junit: { reportName: 'Serverless Security Cloud Security Functional Tests', },