[9.2] (backport #9751) Add Windows/arm64 support for Agent #10388
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
The goal of this PR is to get Elastic Agent building and packaging a Windows ARM artifact.
Both Beats and Endpoint are currently producing Windows/arm64 artifacts that can be packaged.
This is producing a valid Elastic Agent build that has Agentbeat, OsQuerybeat, and Endpoint components packaged with it: https://buildkite.com/elastic/elastic-agent/builds/27828#01999b48-3d7d-424d-b2b1-aa1c97d29b09
NOTE: There is currently no CI support for Windows/arm64, so testing in CI has not been added. Also, this support for Windows/arm64 is not fully supported for customer use, so there will be no changelog added since it won't be published on the download pages until it's fully vetted/tested/etc.
This PR does the following:
.buildkite/bk.integration.pipeline.ymlto reflect windows architecturepackaging-windows-arm64step to.buildkite/integration.pipeline.ymlwindows/arm64as aPLATFORMSlist item forbuild-dra-snapshot-armstep in.buildkite/pipeline.elastic-agent-binary-dra.ymlwindows/arm64as aPLATFORMSlist item topackage-elastic-agent-armstep in.buildkite/pipeline.elastic-agent-package.ymlwindows/arm64case for crossbuilding indev-tool/mage/crossbuild.gowindows/arm64entries to various structs indev-tools/mageanddev-tools/packagingwindows-arm64as validplatformsitem indev-tools/packaging/packages.ymlfleet-serverto support all the valid platforms, except the newwindows/arm64onepkg/to supportwindows/arm64and not error out when encountering itspecs/endpoint-security.spec.ymlto not error out ifwindows/arm64is the OS/archmagefile.goto supportwindows/arm64in building and packaging logicWhy is it important?
Getting lots of demand for the ability to run on Windows OS w/ arm64 architecture.
Checklist
./changelog/fragmentsusing the changelog toolDisruptive User Impact
How to test this PR locally
Related issues
Relates Support Windows ARM64 #692
Relates https://github.com/elastic/endpoint-dev/issues/17084
Relates https://github.com/elastic/endpoint-dev/issues/16812
Questions to ask yourself
This is an automatic backport of pull request #9751 done by [Mergify](https://mergify.com).