mirror of
https://github.com/elastic/kibana.git
synced 2025-06-27 18:51:07 -04:00
FTR - adjust auth for esSupertest in serverless (#166745)
## Summary This PR removes the `systemIndicesSuperuser` auth in the `esSupertest` service for serverless test runs, adds `certificateAuthorities` to the Elasticsearch server config in serverless and adds a tiny test to verify functionality of this fix. ### Details Issues before this PR when using the `esSupertest` service in serverless tests (can be reproduced by running the added `elasticsearch_api` test without the supertest and config changes): 1. Running against a local `functional_tests_server`, `esSupertest` produces an error: `Error: self-signed certificate in certificate chain` 2. Running against an MKI project produces an error: `unable to authenticate user [system_indices_superuser] for REST request [/]`, because the `system_indices_superuser` doesn't exist in MKI. How this PR addresses the issues: 1. Add `certificateAuthorities` to `servers.elasticsearch` in `x-pack/test_serverless/shared/config.base.ts` in the same way we already have it for `servers.kibana` 2. Modify the `esSUpertest` service to not override the default ES auth when running in serverless, instead go with the default auth (regular superuser), which is the best we can get. ### Additional information It has been considered to add a serverless specific version of `esSupertest` in order to avoid the `config.get('serverless') ?` code. The fact that a number of stateful services are planned to be re-used in serverless and rely on `esSupertest` in combination with the very small change in a central service made it seem worth to make an exception here. Note that service methods or tests that use `esSupertest` can still run into issues on serverless if they actually try to modify system indices. This should be avoided anyways and particularly for serverless tests.
This commit is contained in:
parent
f074853ccc
commit
d2feac06d4
4 changed files with 32 additions and 3 deletions
|
@ -22,10 +22,14 @@ export function KibanaSupertestProvider({ getService }: FtrProviderContext) {
|
|||
export function ElasticsearchSupertestProvider({ getService }: FtrProviderContext) {
|
||||
const config = getService('config');
|
||||
const esServerConfig = config.get('servers.elasticsearch');
|
||||
|
||||
// For stateful tests, use system indices user so tests can write to system indices
|
||||
// For serverless tests, we don't have a system indices user, so we're using the default superuser
|
||||
const elasticSearchServerUrl = formatUrl({
|
||||
...esServerConfig,
|
||||
// Use system indices user so tests can write to system indices
|
||||
auth: `${systemIndicesSuperuser.username}:${systemIndicesSuperuser.password}`,
|
||||
...(config.get('serverless')
|
||||
? []
|
||||
: { auth: `${systemIndicesSuperuser.username}:${systemIndicesSuperuser.password}` }),
|
||||
});
|
||||
|
||||
let agentOptions = {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue