You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CLOUDP-311484 - add support for arm and ibm machines (#330)
# Summary
Related TD:
[Link](https://docs.google.com/document/d/1wzwtRTaivKCnCpOobeZRMccC2u8ygO2DNE3DQghTvuU/edit?tab=t.0#bookmark=id.5jh2f6g25k1x)
This pull request adds support for running end-to-end (E2E) tests and
building images on IBM Power (ppc64le), IBM Z (s390x), and ARM (arm64)
architectures. It introduces new Evergreen build variants, tasks, and
setup logic to enable cross-platform testing and image creation.
Additionally, it removes the legacy agent image build dependencies and
updates scripts to use more generic container authentication. There are
also improvements to how multi-architecture images are defined in the
build info.
**Multi-architecture E2E test and build support:**
* Added new Evergreen build variants, task groups, and setup logic for
IBM Power (`ppc64le`), IBM Z (`s390x`), and ARM (`arm64`) to enable E2E
smoke tests and image builds on these platforms. This includes new setup
groups, test image build tasks, and test group definitions for each
architecture.
[[1]](diffhunk://#diff-9a7744843f307953832ec106e8d49be546037475db24ec6873e5fec6249c236dR74-R80)
[[2]](diffhunk://#diff-9a7744843f307953832ec106e8d49be546037475db24ec6873e5fec6249c236dR1183-R1198)
[[3]](diffhunk://#diff-9a7744843f307953832ec106e8d49be546037475db24ec6873e5fec6249c236dR1462-R1573)
[[4]](diffhunk://#diff-9a7744843f307953832ec106e8d49be546037475db24ec6873e5fec6249c236dR1787-R1804)
[[5]](diffhunk://#diff-9a7744843f307953832ec106e8d49be546037475db24ec6873e5fec6249c236dR409-R423)
[[6]](diffhunk://#diff-ad8722e626fc7bc08be6765b8268550446b1fb934c1a7eb6a5766d6446f92ad1R532-R543)
* Updated `build_info.json` to specify that images for
`mongodb-kubernetes` and `mongodb-kubernetes-init-database` are built
for `linux/amd64`, `linux/arm64`, `linux/s390x`, and `linux/ppc64le`
across all release channels.
[[1]](diffhunk://#diff-ac3b10589f332066db566cb08c01afea746d5f16e704beef946107a0c5de5225L8-R31)
[[2]](diffhunk://#diff-ac3b10589f332066db566cb08c01afea746d5f16e704beef946107a0c5de5225L50-R80)
**Evergreen pipeline and function improvements:**
* Added new setup functions for installing required tools (`jq`,
minikube, etc.) and improved host setup logic for IBM architectures,
including conditional logic for Docker/Podman and AWS CLI installation.
[[1]](diffhunk://#diff-ad8722e626fc7bc08be6765b8268550446b1fb934c1a7eb6a5766d6446f92ad1R54-R69)
[[2]](diffhunk://#diff-ad8722e626fc7bc08be6765b8268550446b1fb934c1a7eb6a5766d6446f92ad1R118)
[[3]](diffhunk://#diff-ad8722e626fc7bc08be6765b8268550446b1fb934c1a7eb6a5766d6446f92ad1L115-L121)
[[4]](diffhunk://#diff-ad8722e626fc7bc08be6765b8268550446b1fb934c1a7eb6a5766d6446f92ad1R265-R293)
* Refactored E2E setup and teardown calls to use a wrapper script
(`run_python.sh`) for better environment handling.
[[1]](diffhunk://#diff-ad8722e626fc7bc08be6765b8268550446b1fb934c1a7eb6a5766d6446f92ad1L330-R355)
[[2]](diffhunk://#diff-ad8722e626fc7bc08be6765b8268550446b1fb934c1a7eb6a5766d6446f92ad1L343-R367)
* Added a manual Evergreen task and build variant to allow manual ECR
agent image releases for testing.
[[1]](diffhunk://#diff-9a7744843f307953832ec106e8d49be546037475db24ec6873e5fec6249c236dR388-R399)
[[2]](diffhunk://#diff-9a7744843f307953832ec106e8d49be546037475db24ec6873e5fec6249c236dR1977-R1986)
**Cleanup and modernization:**
* Updated references from `configure_docker_auth.sh` to a more generic
`configure_container_auth.sh` in both Evergreen and Makefile to support
Podman as well as Docker.
[[1]](diffhunk://#diff-ad8722e626fc7bc08be6765b8268550446b1fb934c1a7eb6a5766d6446f92ad1L228-R234)
[[2]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L150-R150)
These changes collectively enable robust multi-architecture support in
both CI and release pipelines, modernize setup scripts, and remove
obsolete dependencies.
## Proof of Work
- green ci (no changes to currently running e2e patches)
- green ci on master merges (simulated
[here](https://spruce.mongodb.com/version/68a4bd9f74629000078b930e/tasks?sorts=STATUS%3AASC%3BBASE_STATUS%3ADESC)
which runs multi arch tests on master merges)
- manually released the agents to ecr as multi-arch
```
❯ docker buildx imagetools inspect 268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi:108.0.4.8770-1
Name: 268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi:108.0.4.8770-1
MediaType: application/vnd.docker.distribution.manifest.list.v2+json
Digest: sha256:6c30ad0325aeac074538976094e0a5b8a69bdb819fc95496c6f52acefd028188
Manifests:
Name: 268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi:108.0.4.8770-1@sha256:38494a7b753ce8b9965332e12c195d56f143aa2b4505352237c6cdf757916475
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/arm64
Name: 268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi:108.0.4.8770-1@sha256:bb28cdbd9b9cc97cb2a8168c7c00897a93b96c02e51a8611361829a1349da2f5
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/amd64
Name: 268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi:108.0.4.8770-1@sha256:0ca9e958a6ac0a86541861bdfb39ae930f5b4dd588f9a8df1c9289579b020aa8
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/s390x
Name: 268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi:108.0.4.8770-1@sha256:bdeb9b00a666500b336a4dc33a34f40992ee5ff1d57fbff62a6511bcd4cacad3
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/ppc64le
```
## Checklist
- [x] Have you linked a jira ticket and/or is the ticket in the title?
- [x] Have you checked whether your jira ticket required DOCSP changes?
- [x] Have you added changelog file?
- use `skip-changelog` label if not needed
- refer to [Changelog files and Release
Notes](https://github.com/mongodb/mongodb-kubernetes/blob/master/CONTRIBUTING.md#changelog-files-and-release-notes)
section in CONTRIBUTING.md for more details
---------
Co-authored-by: Lucian Tosa <[email protected]>
Co-authored-by: Julien Benhaim <[email protected]>
Co-authored-by: Maciej Karaś <[email protected]>
Co-authored-by: Maciej Karaś <[email protected]>
Co-authored-by: mms-build-account <[email protected]>
Co-authored-by: Evergreen <[email protected]>
Co-authored-by: Vivek Singh <[email protected]>
0 commit comments