elastic / elastic-agent

Elastic Agent - single, unified way to add monitoring for logs, metrics, and other types of data to a host.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use multiple GCP zones for integration tests

rdner opened this issue · comments

commented

Describe the enhancement:

When running integration tests, we're currently creating VMs only in the us-central1-1a zone.

According to this comment:

elastic-agent/magefile.go

Lines 2570 to 2572 in 52be253

// us-central1-a is used because T2A instances required for ARM64 testing are only
// available in the central regions
datacenter = "us-central1-a"

This was done to ensure that we can create ARM-based VMs for testing. The zone is configurable by TEST_INTEG_AUTH_GCP_DATACENTER environment variable.

The limitations on ARM CPUs have changed and it's no longer just the us-central1-1a zone.

According to this https://cloud.google.com/compute/docs/regions-zones/

We can choose among:

  • asia-southeast1-b
  • asia-southeast1-c
  • europe-west4-a
  • europe-west4-b
  • europe-west4-c
  • us-central1-a
  • us-central1-b
  • us-central1-f

However, only bottom 3 are relevant for us because of the buildkite region (to avoid multi-region networking).

We should change our test framework and/or our CI setup to use the list of zones for each architecture:

x86:

  • us-central1-a
  • us-central1-b
  • us-central1-c
  • us-central1-f

ARM:

  • us-central1-a
  • us-central1-b
  • us-central1-f

We should rotate the list and run our test runners in all zones instead of concentrating resources in one zone.

Describe a specific use case for the enhancement or feature:

We've exceeded available resources in us-central1-1a on multiple occasions, this will significantly increase our integration test stability.

What is the definition of done?

Our integration tests utilize all the GCP zones listed above (according to the CPU architecture).

Pinging @elastic/elastic-agent-control-plane (Team:Elastic-Agent-Control-Plane)

Pinging @elastic/elastic-agent (Team:Elastic-Agent)