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

[Ops] Run kibana quality gate suites #165346

Merged
merged 23 commits into from
Sep 6, 2023
Merged

Conversation

delanni
Copy link
Contributor

@delanni delanni commented Aug 31, 2023

Summary

Sets up quality gate triggering in Kibana. The tests are mostly triggering external pipelines and relying on their results. Here's an example run: https://buildkite.com/elastic/kibana-tests/builds/28#job-018a69a6-c860-405e-ab2b-bce2aed07df3

According to this doc many of the quality gates are really required for the QA->Staging promotion step.

Most of the tests are in the QA stage:

Staging has:

Production has:

Quirks

  • SKIP_KIBANA_HOOKS=1 needs to be set from the triggering job Split into [Ops] Skip buildkite hooks for non kibana jobs #165597
  • The pipeline can only be tested from the non-fork, elastic/kibana repo's branches (because buildkite doesn't see forks' branches)
  • Soft fails added, to not block the release pipeline in case we still need to adjust/work on some unstable tests

Reference: https://docs.google.com/document/d/15rx2Z-soL20An0nBUcXX0o_HHf1OU_IgrHXgz20NndI/edit
Depends on: #165009
Closes: https://github.com/elastic/kibana-operations/issues/10

@delanni delanni changed the title Run kibana quality gate suites [Ops] Run kibana quality gate suites Aug 31, 2023
@delanni delanni force-pushed the run-kibana-quality-gate-suites branch from 231228e to 695ae9d Compare September 4, 2023 07:37
delanni added a commit that referenced this pull request Sep 4, 2023
## Summary

Kibana's build jobs work on a different subset of executors than the
buildkite pipelines defined in `catalog-info.yaml`.

The former jobs require a set of `pre_command` / `post_command` steps to
prepare the jobs for building/testing kibana.
The latter don't have access rights to certain vault secrets (and
possibly other missing config from the Kibana world), but for now,
they're also not building Kibana, they just trigger other jobs, so we
can just skip the problematic hooks.

~~A probably good indicator I found for deciding whether we need the
kibana-related `pre_command` is the
`BUILDKITE_AGENT_META_DATA_AGENT_MANAGER` flag, that's set to `"kibana"`
in the case of the kibana executors.~~

We can try to match on the agent names for the CI-systems agents. They
seem to be starting with `bk-agent`.

This should allow for the
[kibana-tests](https://buildkite.com/elastic/kibana-tests) job to run.

Split from: #165346

---------

Co-authored-by: Tiago Costa <[email protected]>
@delanni delanni marked this pull request as ready for review September 5, 2023 14:58
@delanni delanni requested a review from a team as a code owner September 5, 2023 14:58
@delanni delanni added test chore Team:Operations Team label for Operations Team release_note:skip Skip the PR/issue when compiling release notes backport:skip This commit does not require backporting labels Sep 5, 2023
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-operations (Team:Operations)

key: "security"
steps:
- label: ":pipeline::female-detective::seedling: Trigger Security Solution quality gate script"
command: .buildkite/scripts/pipelines/security_solution_quality_gate/pipeline.sh
Copy link
Member

Choose a reason for hiding this comment

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

This looks like a placeholder file for now, but we may have to follow the trigger pattern in the future based on the pre-command/post-command skips.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I agree, having external pipelines are probably a lot better for us, especially because that can run in a Kibana-managed agent. Once the team finds time to work on these tests, we could move it to a separate pipeline.

agents:
image: "docker.elastic.co/ci-agent-images/basic-buildkite-agent:1688566364"
- label: ":pipeline::kibana::seedling: Trigger Kibana Serverless Tests for ${ENVIRONMENT}"
trigger: appex-qa-kibana-serverless-ftr-tests # https://buildkite.com/elastic/appex-qa-kibana-serverless-ftr-tests
Copy link
Contributor

Choose a reason for hiding this comment

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

I really appreciate the URL to the Buildkite pipeline - very user friendly 💯

Copy link
Member

Choose a reason for hiding this comment

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

By the way, I just noticed that all files and folders in the .buildkite/pipelines directory use underscore as word separators, except for quality-gates and its files 🙂

Copy link
Contributor Author

Choose a reason for hiding this comment

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

it was a guest appearance from a non-kibana team, I guess they brought practise that they had everywhere else.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, not a big deal. Dashes vs. underscores is something that has always caught my eye for some unknown reason...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

high pattern recognition, I'm also bothered by it :D I'll change this once serverless releases are smooth

.buildkite/pipelines/quality-gates/pipeline.tests-qa.yaml Outdated Show resolved Hide resolved
…n't have the downstream pipelines working well, but we might want to push releases through the whole env chain
@kibana-ci
Copy link
Collaborator

kibana-ci commented Sep 6, 2023

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] Serverless Observability Examples Tests / serverless examples UI search examples Partial results example "before all" hook for "should update a progress bar"

Metrics [docs]

✅ unchanged

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@delanni delanni merged commit 015b910 into main Sep 6, 2023
@delanni delanni deleted the run-kibana-quality-gate-suites branch September 6, 2023 11:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting chore release_note:skip Skip the PR/issue when compiling release notes Team:Operations Team label for Operations Team test v8.11.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants