Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enabling Full FTR, Integration, and Unit tests to the FIPS Test Pipeline #192632

Merged
merged 59 commits into from
Nov 19, 2024

Conversation

kc13greiner
Copy link
Contributor

@kc13greiner kc13greiner commented Sep 11, 2024

Summary

Closes #192233

Just in time for Thanksgiving - a full buffet of FIPS testing fixes

Usage of non-compliant algorithms manifest as runtime errors, so it is imperative that we attempt to run all tests possible with Kibana in FIPS mode. However, several overrides are needed to run Kibana in FIPS mode, resulting in setup that make it impossible to run.

In this PR

  • Enable Unit tests for FIPS pipeline
  • Enable Integration Tests for FIPS pipeline
  • Enable Full FTR suite for FIPS pipeline (smoke test had originally run a subset)
  • Skip tests that break with overrides
  • Fix/change tests to work in FIPS mode to maximize coverage
  • Examine necessity of MD5 when installing from source (TBD based Ops PR feed back, see self review below)
  • Remove md5 from es_file_client options

Latest Successful FIPS Test Run

https://buildkite.com/elastic/kibana-fips/builds/268

@kc13greiner kc13greiner added Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! release_note:skip Skip the PR/issue when compiling release notes backport:skip This commit does not require backporting v8.16.0 labels Sep 11, 2024
Co-authored-by: Brad White <Ikuni17@users.noreply.github.com>
@kc13greiner kc13greiner self-assigned this Sep 11, 2024
@kc13greiner kc13greiner removed the Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! label Oct 2, 2024
@kc13greiner
Copy link
Contributor Author

@kc13greiner kc13greiner marked this pull request as ready for review October 2, 2024 12:02
@kc13greiner kc13greiner requested review from a team as code owners October 2, 2024 12:02
depends_on: build
timeout_in_minutes: 10
env:
FTR_CONFIGS_SCRIPT: '.buildkite/scripts/steps/test/ftr_configs.sh'
FTR_EXTRA_ARGS: '$FTR_EXTRA_ARGS'
LIMIT_CONFIG_TYPE: 'functional'
JEST_UNIT_SCRIPT: '.buildkite/scripts/steps/test/jest.sh'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't look like these will run with FIPS enabled.

if [[ -f "$KIBANA_DIR/config/node.options" ]]; then
echo -e '\n--enable-fips' >>"$KIBANA_DIR/config/node.options"
echo "--openssl-config=$HOME/nodejs.cnf" >>"$KIBANA_DIR/config/node.options"
fi
is configuring distributions

NODE_OPTIONS for jest at

cmd="NODE_OPTIONS=\"--max-old-space-size=12288 --trace-warnings\" node ./scripts/jest --config=\"$config\" $parallelism --coverage=false --passWithNoTests"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I think I have it setup properly now!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@nreese nreese left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kibana-presentation changes LGTM
code review only

@kc13greiner kc13greiner requested a review from a team as a code owner October 3, 2024 14:48
@botelastic botelastic bot added the Team:Fleet Team label for Observability Data Collection Fleet team label Oct 3, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/fleet (Team:Fleet)

@kc13greiner kc13greiner changed the title Changing FIPS Smoke Test Pipeline to be Full FTR [Work in Progress] Changing FIPS Smoke Test Pipeline to be Full FTR Oct 3, 2024
Copy link
Member

@azasypkin azasypkin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM from the security perspecitive, just a few notes and suggestions!

.buildkite/scripts/steps/test/jest_parallel.sh Outdated Show resolved Hide resolved
let coreContext: ReturnType<typeof mockCoreContext.create>;
let service: SecurityService;
describe('SecurityService', function () {
if (getFips() !== 1) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: can we add a code comment here explaining why we're doing this? Do all these tests fail in FIPS? Even #registerSecurityDelegate?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah you are correct, I meant to modify this test and I will add the config for both cases, these should pass regardless of FIPS (except the FIPS check itself)

@@ -75,6 +77,13 @@ export function createRootWithSettings(
pkg.version = customKibanaVersion;
}

let oss = true;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Also a comment here would be helpful.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

++ will do

Comment on lines +269 to +272
if (getFips() === 1) {
// Set license to 'trial' if Node is running in FIPS mode
license = 'trial';
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

I think it’s fine to default to trial instead of basic when we’re in FIPS mode and the license isn’t explicitly specified in settings. However, I’m a bit concerned about cases where some test suites request a specific license to verify behavior unique to that license, but we override it with trial.

Do we have many test suites that specify a license different from trial? Would it be an option to toggle the correct license at the point where it’s specified? That way, if certain tests don’t make sense to run with trial, we can explicitly skip them there.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to other responses, I think it is important to run as many tests as possible for maximum lines run in FIPS. I only skip if the overrides would break the tests. If a basic license test "runs" successfully with a trial license, I believe we should run it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree with Oleg's concern that with FIPs mode on there is a possibility that we may subtly change test coverage by overriding explicit settings that could potentially surprise test authors:

Test authors may specify basic but actually it is gonna run both basic and trial. Given it's both today I tend to think this is OK (we are not losing coverage), but it could be surprising.

One alternative, instead of implicitly overriding settings in FIPs we can overtly error out with something like:

// If explicitly set, we throw something like this:
if (getFips() === 1 && (cliArgs.oss === true || settings.es?.license !== 'trial')) {
  throw new Error(`
explicitly setting "cliArgs.oss: true" or "settings.es.license" to something other than "trial" is not compatible in FIPs mode.

Ensure that this test is skipped in FIPs mode in the following way...
`)
} 

Doing a search for license: 'basic' or oss: true in integration_tests does not turn up many results so perhaps skipping this set of tests in FIPs for now is an OK trade-off?

Weakly held opinion, WDY both T?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is important to run as many tests as possible for maximum lines run in FIPS

I agree!

If a basic license test "runs" successfully with a trial license, I believe we should run it.

The use case I had in mind was something like this: "test that this functionality is available and works correctly when the license is basic, potentially deviating from behavior in trial, so that if I mess up the license checks in my code, breaking my feature for basic, this test will catch it". If we silently switch the license to trial, it won’t test what the test author intended. Admittedly and as JL mentioned, it’s not a huge concern since, even though the FIPS test might mistakenly pass, the original non-FIPS test would still fail.

Doing a search for license: 'basic' or oss: true in integration_tests does not turn up many results so perhaps skipping this set of tests in FIPs for now is an OK trade-off?

If it doesn’t involve a lot of changes, I think it’s a reasonable trade-off 👍 Otherwise, feel free to ignore my concern, as I’m more in favor of running potentially misleading FIPS-related tests than not running them.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

++ Ok I can get on board with something like theat. There will be many more FIPS related PRs (not for this initial release, but for FRH and when we have to target 140-3). I will definitely take these recommendations into consideration as well as trying to expand the configuration options for Integration Tests to make allow for just single plugins to be enabled (vs. OSS=false)

@@ -292,6 +307,7 @@ export function createTestServers({
hosts: es.getHostUrls(),
username: kibanaServerTestUser.username,
password: kibanaServerTestUser.password,
...(getFips() ? kbnSettings.elasticsearch : {}),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: why do we need this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in is_scripting_enabled.test.ts the es settings were not being copied over since I had overridden the license to be trial, so I added this just for FIPS mode so we could have the es settings propagated and the trial license

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, thanks for clarifying, I think it'd worth having a comment then (my favorite comment is about comments 😆)

},
import { getFips } from 'crypto';

if (getFips() === 0) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Here and in all similar places: is this a temporary measure? If so, are we tracking all the tests that were disabled somewhere to ensure we remember to re-enable them at some point? If it’s not temporary, could we add a comment explaining why we’re doing this and what areas are affected?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cant say it is temporary; I had to disable oss so xpack plugins would register and allow xpack.security.... configs to be allowed.

I think we would have to change the jest integration tests to allow me to add less broad-sweeping overrides.

I am not keeping track per se, but the search to find them is pretty straightforward.

the test in the else (FIPS portion) has the explanation (below), but Im happy to add a comment if you think that is clearer:
'is running in FIPS mode, skipping tests since they fail due to FIPS overrides'

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, I was just wondering if there was a clear, describable reason why certain tests fail in FIPS, like, for example, “dynamic config relies on MD5 for … and is hence not compatible with FIPS”. But if that’s not the case, or if it’s too much work to pinpoint and describe the reason for every such exception, feel free to keep things as they are, it's not worth it.

@@ -42,7 +44,7 @@ describe('migrator-only node', () => {
'--no-optimizer',
'--no-base-path',
'--no-watch',
'--oss',
isFipsEnabled ? '--xpack.security.experimental.fipsMode.enabled=true' : '--oss',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m surprised we’re still testing OSS stuff (maybe we could save some CI costs… just saying) 🙈

Copy link
Contributor Author

@kc13greiner kc13greiner Nov 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤷‍♂️ They were running OSS when I found them!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it was more of a question for the Core Team 🙂

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I understand it, the --oss flag actually helps these integration tests start up a bit faster since we are excluding loading any xpack plug-ins.

manageES = await startES();
manageKbn = await startKibana();
esClient = manageKbn.coreStart.elasticsearch.client.asInternalUser;
esClient = manageKbn.coreStart.elasticsearch.createClient('es.test').asInternalUser;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: I'm curious what this change does?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is changing the test to use a dedicated ES Client, instead of a shared one. I added it to squash some flakiness I was experiencing

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That’s weird, as I can’t think of any plausible reason why there would be an issue with the shared ES client, but I’ll defer to the code owners. Maybe they have some idea.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@azasypkin this test was built to run without xpack plugins, and it just so happened that the shared ES client wasn't used by any other non-xpack plugin during the lifespan of the test.

When running this in FIPS mode, we have to include x-pack, and there are a number of x-pack plugins which use the shared client during their initialization phase. For example, the spaces plugin asserts that the default space exists. These additional usages of the shared client were causing some assertions in these tests to fail. By using a dedicated ES client, it removes the noise generated by other running plugins.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I see that we set up spies for the ES client methods. Got it, thanks for adding more context @legrego, makes sense now.

const fileHash = createFileHashTransform(algorithm);
await file.uploadContent(fileContent, undefined, {
transforms: [fileHash],
if (getFips() !== 1) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: can we have something like this to not duplicate the test body?

    it.each([
      ['sha1', 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'],
      ['sha256', '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'],
      [
        'sha512',
        'ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff',
      ],
      ...(getFips() !== 1 ? [['md5', '098f6bcd4621d373cade4e832627b4f6']] : []),
    ] as Array<[SupportedFileHashAlgorithm, string]>)(

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ahh that is much cleaner - fixing it!

@@ -17,7 +17,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const kibanaServer = getService('kibanaServer');
const dashboardAddPanel = getService('dashboardAddPanel');

describe('dashboard panel listing', () => {
describe('dashboard panel listing', function () {
this.tags('skipFIPS');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Here and for other skips - it would be helpful to have a comment with a justification, and to track this somewhere if we intend to unskip them eventually.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a follow up PR to 1) add comments to all skipped tests 2) try to fix the FTR FIPS Role overrides would be worthwhile.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good to me. As I mentioned in #192632 (comment), it would only be worth adding comments if we can clearly articulate the problem to help future readers. Otherwise, it’s fine to keep it as is.

Copy link
Contributor

@juliaElastic juliaElastic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Ikuni17 Ikuni17 self-requested a review November 15, 2024 00:22
Copy link
Contributor

@Dosant Dosant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sharedux lgtm, sorry for the delay

@elasticmachine
Copy link
Contributor

elasticmachine commented Nov 19, 2024

💚 Build Succeeded

Metrics [docs]

Unknown metric groups

ESLint disabled line counts

id before after diff
@kbn/es 4 2 -2

Total ESLint disabled count

id before after diff
@kbn/es 4 2 -2

History

cc @kc13greiner

Copy link
Contributor

@jloleysens jloleysens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for explaining and addressing my feedback. Great work man!

@kc13greiner kc13greiner merged commit ac0b0b4 into elastic:main Nov 19, 2024
31 checks passed
@kc13greiner kc13greiner added backport:version Backport to applied version labels and removed backport:skip This commit does not require backporting labels Nov 19, 2024
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/11917488539

@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/11917488475

@kibanamachine
Copy link
Contributor

💔 All backports failed

Status Branch Result
8.x Backport failed because of merge conflicts

Manual backport

To create the backport manually run:

node scripts/backport --pr 192632

Questions ?

Please refer to the Backport tool documentation

1 similar comment
@kibanamachine
Copy link
Contributor

💔 All backports failed

Status Branch Result
8.x Backport failed because of merge conflicts

Manual backport

To create the backport manually run:

node scripts/backport --pr 192632

Questions ?

Please refer to the Backport tool documentation

@kc13greiner
Copy link
Contributor Author

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kc13greiner added a commit to kc13greiner/kibana that referenced this pull request Nov 19, 2024
…ine (elastic#192632)

## Summary

Closes elastic#192233

Just in time for Thanksgiving - a full buffet of FIPS testing fixes

Usage of non-compliant algorithms manifest as runtime errors, so it is
imperative that we attempt to run all tests possible with Kibana in FIPS
mode. However, several overrides are needed to run Kibana in FIPS mode,
resulting in setup that make it impossible to run.

## In this PR

- Enable Unit tests for FIPS pipeline
- Enable Integration Tests for FIPS pipeline
- Enable Full FTR suite for FIPS pipeline (smoke test had originally run
a subset)
- Skip tests that break with overrides
- Fix/change tests to work in FIPS mode to maximize coverage
- Examine necessity of MD5 when installing from source (TBD based Ops PR
feed back, see self review below)
- Remove md5 from es_file_client options

## Latest Successful FIPS Test Run

https://buildkite.com/elastic/kibana-fips/builds/268

---------

Co-authored-by: Brad White <Ikuni17@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>
Co-authored-by: Larry Gregory <larry.gregory@elastic.co>
(cherry picked from commit ac0b0b4)

# Conflicts:
#	packages/kbn-es/src/install/install_source.ts
#	src/core/server/integration_tests/config/check_dynamic_config.test.ts
#	src/core/server/integration_tests/core_app/default_route_provider_config.test.ts
kc13greiner added a commit that referenced this pull request Nov 19, 2024
… Pipeline (#192632) (#200780)

# Backport

This will backport the following commits from `main` to `8.x`:
- [Enabling Full FTR, Integration, and Unit tests to the FIPS Test
Pipeline (#192632)](#192632)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT
[{"author":{"name":"Kurt","email":"kc13greiner@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-11-19T13:31:47Z","message":"Enabling
Full FTR, Integration, and Unit tests to the FIPS Test Pipeline
(#192632)\n\n## Summary\r\n\r\nCloses #192233 \r\n\r\nJust in time for
Thanksgiving - a full buffet of FIPS testing fixes\r\n\r\nUsage of
non-compliant algorithms manifest as runtime errors, so it
is\r\nimperative that we attempt to run all tests possible with Kibana
in FIPS\r\nmode. However, several overrides are needed to run Kibana in
FIPS mode,\r\nresulting in setup that make it impossible to
run.\r\n\r\n## In this PR\r\n\r\n- Enable Unit tests for FIPS
pipeline\r\n- Enable Integration Tests for FIPS pipeline\r\n- Enable
Full FTR suite for FIPS pipeline (smoke test had originally run\r\na
subset)\r\n- Skip tests that break with overrides\r\n- Fix/change tests
to work in FIPS mode to maximize coverage\r\n- Examine necessity of MD5
when installing from source (TBD based Ops PR\r\nfeed back, see self
review below)\r\n- Remove md5 from es_file_client options\r\n\r\n##
Latest Successful FIPS Test
Run\r\n\r\nhttps://buildkite.com/elastic/kibana-fips/builds/268\r\n\r\n---------\r\n\r\nCo-authored-by:
Brad White <Ikuni17@users.noreply.github.com>\r\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by:
Aleh Zasypkin <aleh.zasypkin@gmail.com>\r\nCo-authored-by: Larry Gregory
<larry.gregory@elastic.co>","sha":"ac0b0b4f05876f1c66f5b4fde7965a1955b90ec0","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Fleet","v9.0.0","ci:build-docker-fips","backport:version","v8.17.0"],"number":192632,"url":"https://github.com/elastic/kibana/pull/192632","mergeCommit":{"message":"Enabling
Full FTR, Integration, and Unit tests to the FIPS Test Pipeline
(#192632)\n\n## Summary\r\n\r\nCloses #192233 \r\n\r\nJust in time for
Thanksgiving - a full buffet of FIPS testing fixes\r\n\r\nUsage of
non-compliant algorithms manifest as runtime errors, so it
is\r\nimperative that we attempt to run all tests possible with Kibana
in FIPS\r\nmode. However, several overrides are needed to run Kibana in
FIPS mode,\r\nresulting in setup that make it impossible to
run.\r\n\r\n## In this PR\r\n\r\n- Enable Unit tests for FIPS
pipeline\r\n- Enable Integration Tests for FIPS pipeline\r\n- Enable
Full FTR suite for FIPS pipeline (smoke test had originally run\r\na
subset)\r\n- Skip tests that break with overrides\r\n- Fix/change tests
to work in FIPS mode to maximize coverage\r\n- Examine necessity of MD5
when installing from source (TBD based Ops PR\r\nfeed back, see self
review below)\r\n- Remove md5 from es_file_client options\r\n\r\n##
Latest Successful FIPS Test
Run\r\n\r\nhttps://buildkite.com/elastic/kibana-fips/builds/268\r\n\r\n---------\r\n\r\nCo-authored-by:
Brad White <Ikuni17@users.noreply.github.com>\r\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by:
Aleh Zasypkin <aleh.zasypkin@gmail.com>\r\nCo-authored-by: Larry Gregory
<larry.gregory@elastic.co>","sha":"ac0b0b4f05876f1c66f5b4fde7965a1955b90ec0"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/192632","number":192632,"mergeCommit":{"message":"Enabling
Full FTR, Integration, and Unit tests to the FIPS Test Pipeline
(#192632)\n\n## Summary\r\n\r\nCloses #192233 \r\n\r\nJust in time for
Thanksgiving - a full buffet of FIPS testing fixes\r\n\r\nUsage of
non-compliant algorithms manifest as runtime errors, so it
is\r\nimperative that we attempt to run all tests possible with Kibana
in FIPS\r\nmode. However, several overrides are needed to run Kibana in
FIPS mode,\r\nresulting in setup that make it impossible to
run.\r\n\r\n## In this PR\r\n\r\n- Enable Unit tests for FIPS
pipeline\r\n- Enable Integration Tests for FIPS pipeline\r\n- Enable
Full FTR suite for FIPS pipeline (smoke test had originally run\r\na
subset)\r\n- Skip tests that break with overrides\r\n- Fix/change tests
to work in FIPS mode to maximize coverage\r\n- Examine necessity of MD5
when installing from source (TBD based Ops PR\r\nfeed back, see self
review below)\r\n- Remove md5 from es_file_client options\r\n\r\n##
Latest Successful FIPS Test
Run\r\n\r\nhttps://buildkite.com/elastic/kibana-fips/builds/268\r\n\r\n---------\r\n\r\nCo-authored-by:
Brad White <Ikuni17@users.noreply.github.com>\r\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by:
Aleh Zasypkin <aleh.zasypkin@gmail.com>\r\nCo-authored-by: Larry Gregory
<larry.gregory@elastic.co>","sha":"ac0b0b4f05876f1c66f5b4fde7965a1955b90ec0"}},{"branch":"8.x","label":"v8.17.0","labelRegex":"^v8.17.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->
paulinashakirova pushed a commit to paulinashakirova/kibana that referenced this pull request Nov 26, 2024
…ine (elastic#192632)

## Summary

Closes elastic#192233 

Just in time for Thanksgiving - a full buffet of FIPS testing fixes

Usage of non-compliant algorithms manifest as runtime errors, so it is
imperative that we attempt to run all tests possible with Kibana in FIPS
mode. However, several overrides are needed to run Kibana in FIPS mode,
resulting in setup that make it impossible to run.

## In this PR

- Enable Unit tests for FIPS pipeline
- Enable Integration Tests for FIPS pipeline
- Enable Full FTR suite for FIPS pipeline (smoke test had originally run
a subset)
- Skip tests that break with overrides
- Fix/change tests to work in FIPS mode to maximize coverage
- Examine necessity of MD5 when installing from source (TBD based Ops PR
feed back, see self review below)
- Remove md5 from es_file_client options

## Latest Successful FIPS Test Run

https://buildkite.com/elastic/kibana-fips/builds/268

---------

Co-authored-by: Brad White <Ikuni17@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>
Co-authored-by: Larry Gregory <larry.gregory@elastic.co>
CAWilson94 pushed a commit to CAWilson94/kibana that referenced this pull request Dec 12, 2024
…ine (elastic#192632)

## Summary

Closes elastic#192233 

Just in time for Thanksgiving - a full buffet of FIPS testing fixes

Usage of non-compliant algorithms manifest as runtime errors, so it is
imperative that we attempt to run all tests possible with Kibana in FIPS
mode. However, several overrides are needed to run Kibana in FIPS mode,
resulting in setup that make it impossible to run.

## In this PR

- Enable Unit tests for FIPS pipeline
- Enable Integration Tests for FIPS pipeline
- Enable Full FTR suite for FIPS pipeline (smoke test had originally run
a subset)
- Skip tests that break with overrides
- Fix/change tests to work in FIPS mode to maximize coverage
- Examine necessity of MD5 when installing from source (TBD based Ops PR
feed back, see self review below)
- Remove md5 from es_file_client options

## Latest Successful FIPS Test Run

https://buildkite.com/elastic/kibana-fips/builds/268

---------

Co-authored-by: Brad White <Ikuni17@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>
Co-authored-by: Larry Gregory <larry.gregory@elastic.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:version Backport to applied version labels ci:build-docker-fips Build Docker FIPS image release_note:skip Skip the PR/issue when compiling release notes Team:Fleet Team label for Observability Data Collection Fleet team v8.17.0 v9.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Run the full FTR suite in in the FIPS smoke test pipeline