Pin ESS component version for integration testing #6639
Labels
enhancement
New feature or request
Team:Elastic-Agent-Control-Plane
Label for the Agent Control Plane team
Describe the enhancement:
Our integration tests interact with the most recent images in the ESS canary region. These are occasionally broken and this blocks our CI until they are fixed again. Which takes at least one day to produce a new snapshot.
To avoid that, we need to pin the ESS stack version using a file (e.g.
.ess-stateful-version
). Then we read this file before calling the ESS provisioner, extract the version and set it as a part of the "create deployment" request.After we have the file, we need to setup an automation that create a PR to update it according to the latest snapshot. This way the CI failures would be limited only to this PR and would not block the entire team.
Our ESS provisioner for stateful deployment supports setting component versions. See:
https://github.com/elastic/elastic-agent/blob/main/pkg/testing/ess/create_deployment_request.tmpl.json
Here we call the provisioner:
https://github.com/elastic/elastic-agent/blob/main/magefile.go#L2805-L2826
See the existing
update-versions
automation here:https://github.com/elastic/elastic-agent/blob/main/.github/workflows/bump-agent-versions.sh
This is where we get the snapshot versions:
https://github.com/elastic/elastic-agent/blob/main/pkg/testing/tools/snapshots/snapshots.go#L72-L86
This automation is called through here:
https://github.com/elastic/elastic-agent/blob/main/magefile.go#L2027-L2086
What is the definition of done?
The text was updated successfully, but these errors were encountered: