kibana/x-pack/test/fleet_api_integration/config.ts
Alejandro Fernández Gómez cd5cd65fb2
[Fleet] Improve performance of Fleet setup (#102219)
* Remove endpoint from the default packages

* Change the default spinner for the initial load

* Export fleet endpoint package as a constant

* Use constants for special packages

* Simplify type signature of `isRequiredPackage`

* Remove unused types

* Simplify required and default package definitions

* Treat REQUIRED_PACKAGES as independent from DEFAULT_PACKAGES

We want to keep the assumption that the lists contain the same packages
only in `epm/constants.ts`

* Install all default packages, not only the required ones

* Document the purpose of each package list

* Handle auto-update for non-default packages

* Make `endpoint` non-removable

* Make endpoint package be installed by default in tests

* Rename requiredPackages to unremovablePackages

* Fix type check

* Add Endpoint to be installed by default on Fleet tests too

Co-authored-by: Jen Huang <its.jenetic@gmail.com>
2021-06-17 11:58:41 -07:00

76 lines
2.7 KiB
TypeScript

/*
* 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; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import path from 'path';
import { FtrConfigProviderContext } from '@kbn/test';
import { defineDockerServersConfig } from '@kbn/test';
// Docker image to use for Fleet API integration tests.
// This hash comes from the latest successful build of the Snapshot Distribution of the Package Registry, for
// example: https://beats-ci.elastic.co/blue/organizations/jenkins/Ingest-manager%2Fpackage-storage/detail/snapshot/74/pipeline/257#step-302-log-1.
// It should be updated any time there is a new Docker image published for the Snapshot Distribution of the Package Registry.
export const dockerImage =
process.env.FLEET_PACKAGE_REGISTRY_DOCKER_IMAGE ||
'docker.elastic.co/package-registry/distribution:fc104ac437370d80518e24da6d0b84370edf0c0c';
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const xPackAPITestsConfig = await readConfigFile(require.resolve('../api_integration/config.ts'));
const registryPort: string | undefined = process.env.FLEET_PACKAGE_REGISTRY_PORT;
// mount the config file for the package registry as well as
// the directory containing additional packages into the container
const dockerArgs: string[] = [
'-v',
`${path.join(
path.dirname(__filename),
'./apis/fixtures/package_registry_config.yml'
)}:/package-registry/config.yml`,
'-v',
`${path.join(
path.dirname(__filename),
'./apis/fixtures/test_packages'
)}:/packages/test-packages`,
];
return {
testFiles: [require.resolve('./apis')],
servers: xPackAPITestsConfig.get('servers'),
dockerServers: defineDockerServersConfig({
registry: {
enabled: !!registryPort,
image: dockerImage,
portInContainer: 8080,
port: registryPort,
args: dockerArgs,
waitForLogLine: 'package manifests loaded',
},
}),
services: {
...xPackAPITestsConfig.get('services'),
},
junit: {
reportName: 'X-Pack EPM API Integration Tests',
},
esTestCluster: {
...xPackAPITestsConfig.get('esTestCluster'),
},
kbnTestServer: {
...xPackAPITestsConfig.get('kbnTestServer'),
serverArgs: [
...xPackAPITestsConfig.get('kbnTestServer.serverArgs'),
// always install Endpoint package by default when Fleet sets up
`--xpack.fleet.packages.0.name=endpoint`,
`--xpack.fleet.packages.0.version=latest`,
...(registryPort ? [`--xpack.fleet.registryUrl=http://localhost:${registryPort}`] : []),
],
},
};
}