Skip to content

Multi arch pipeline combined #330

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

Draft
wants to merge 149 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
b341dc3
Dockerfiles
lucian-tosa Jul 29, 2025
a2479b8
Optimize init database
lucian-tosa Jul 29, 2025
abe4a2c
Optimize operator
lucian-tosa Jul 29, 2025
fd701b2
add minikube scripts
nammn Jul 29, 2025
05cbe23
smoke test replicacset
nammn Jul 29, 2025
a1f3d90
smoke test replicacset
nammn Jul 29, 2025
2d335f3
add minikube and make aws multiarch
nammn Jul 29, 2025
b9ceed6
Agent dockerfiles
lucian-tosa Jul 29, 2025
389b2b1
Optimize readiness and upgrade hook
lucian-tosa Jul 29, 2025
6649987
Re-design pipeline
Julien-Ben Jun 12, 2025
675bee4
Remove file
Julien-Ben Jul 29, 2025
833e25f
Put lib back in dependencies
Julien-Ben Jul 29, 2025
15e7f51
add todo
Julien-Ben Jul 29, 2025
120c1af
Fix
Julien-Ben Jul 29, 2025
c9ceabf
Remove multi arch call, fix test image path
Julien-Ben Jul 29, 2025
46f0998
make jq multiarch and all other scriupts as well
nammn Jul 30, 2025
433cdc1
fix jq
nammn Jul 30, 2025
1612525
fix docker, minikube etc
nammn Jul 30, 2025
bf8e64a
remove docker group management
nammn Jul 30, 2025
fb87f4d
Fix agent version for default case
Julien-Ben Jul 30, 2025
c05e180
Lindt
Julien-Ben Jul 30, 2025
747c4ba
isort
Julien-Ben Jul 30, 2025
03fd9b8
Cleanup TODOs
Julien-Ben Jul 30, 2025
540b420
installation works, minikube starts but docker doesn't start
nammn Jul 30, 2025
fd8db45
podman support
nammn Jul 31, 2025
284c7e1
z series support
nammn Jul 31, 2025
00439c0
custom container with working power critcl
nammn Jul 31, 2025
c675c83
custom container with working power critcl
nammn Jul 31, 2025
37c31de
add insecure
nammn Jul 31, 2025
148779d
add empty config handling and broken podman making
nammn Jul 31, 2025
10811d7
handle edge cases
nammn Jul 31, 2025
8d72a1c
Build cli
lucian-tosa Aug 1, 2025
6b96e7f
E2E dockerfile
lucian-tosa Aug 1, 2025
213887b
Operator dockerfile
lucian-tosa Aug 1, 2025
fd4367d
Prepare script
lucian-tosa Aug 1, 2025
49ddbe2
Readmes
lucian-tosa Aug 1, 2025
449152f
Fix e2e dockerfile
lucian-tosa Aug 1, 2025
a4cc24f
use python wheel locacl build, unify teardown for minikube, use run f…
nammn Aug 1, 2025
d72017a
handle kube secret for podman
nammn Aug 1, 2025
0207326
handle path
nammn Aug 1, 2025
0bd74d8
handle auth issue for secret
nammn Aug 1, 2025
5cfdd82
use lucian evg and remove debug mode
nammn Aug 1, 2025
0b6d7d3
Merge branch 'master' into multi-arch-dockerfiles
lucian-tosa Aug 4, 2025
3755fdd
Fix conflicts
lucian-tosa Aug 4, 2025
65e9382
Merge branch 'e2e-ibm' into multi-arch-dockerfiles
lucian-tosa Aug 4, 2025
1fbb8d5
Rename arch -> platform
Julien-Ben Aug 4, 2025
7c0cfbd
fix z and workdir setup
nammn Aug 4, 2025
718d3cc
fix z and workdir setup
nammn Aug 4, 2025
e9a524f
Don't rely on exception to check for builder existence
Julien-Ben Aug 4, 2025
fa6b899
Remove unused variables
Julien-Ben Aug 4, 2025
426e522
Pre commit
Julien-Ben Aug 4, 2025
2c16902
Merge branch 'e2e-ibm' into multi-arch-dockerfiles
lucian-tosa Aug 4, 2025
6961175
include e2e
nammn Aug 4, 2025
b3d36a7
Merge branch 'e2e-ibm' into multi-arch-dockerfiles
nammn Aug 4, 2025
6890858
Cleanup
Julien-Ben Aug 4, 2025
aab9592
Correct build envs
Julien-Ben Aug 4, 2025
33173bb
Lindt
Julien-Ben Aug 4, 2025
f48c19e
skip pip iunstall
nammn Aug 4, 2025
74e867c
Update Makefile
Julien-Ben Aug 4, 2025
b13b054
Add TODO
Julien-Ben Aug 4, 2025
832ce61
Revert "Pre commit"
Julien-Ben Aug 4, 2025
ff1a5bc
fix pythyin installation and wrong busybox
nammn Aug 4, 2025
4aa33d9
Fix contexts for smoke tests
lucian-tosa Aug 4, 2025
cc1f99d
fix contexts
nammn Aug 4, 2025
91efed9
Merge branch 'multi-arch-dockerfiles' of github.com:mongodb/mongodb-k…
nammn Aug 4, 2025
dfdad75
don't target one container
nammn Aug 4, 2025
e9685a8
arm support
nammn Aug 5, 2025
df618e5
fix kubectl commands
nammn Aug 5, 2025
6c9bff6
add python auth, fix myreport copy, force docker auth
nammn Aug 5, 2025
e949a1c
handle pyenv exists
nammn Aug 5, 2025
fbb1432
fix for containerruntime
nammn Aug 5, 2025
aa9c64a
fix for containerruntime
nammn Aug 5, 2025
bc23827
Remove agent unused functions
Julien-Ben Aug 6, 2025
03062c3
Remove debug
Julien-Ben Aug 6, 2025
4d4e4e9
Remove args iteration for multi platform
Julien-Ben Aug 6, 2025
7c9967a
Cleanup unused stuff
Julien-Ben Aug 6, 2025
a7c63c9
Cleanup
Julien-Ben Aug 6, 2025
742e784
Rename file
Julien-Ben Aug 6, 2025
1f0a21b
Remove cli sbom
Julien-Ben Aug 6, 2025
813d539
Renamed image building file
Julien-Ben Aug 6, 2025
c06061b
Freeze python on whales
Julien-Ben Aug 6, 2025
5f9d49a
Lint
Julien-Ben Aug 6, 2025
f390dc9
Remove everything SBOM related
Julien-Ben Aug 6, 2025
a47341d
Lint
Julien-Ben Aug 6, 2025
972b23c
Add TODO
Julien-Ben Aug 6, 2025
4ae4034
Remove --all-agents
Julien-Ben Aug 6, 2025
291f043
Merge branch 'master' into julienben/redesign-pipeline
MaciejKaras Aug 7, 2025
af28807
refactoring and cleanups on architecture and minikube handling
nammn Aug 7, 2025
88c76bc
Rename trace
Julien-Ben Aug 7, 2025
0fd4db8
Remove operator build
Julien-Ben Aug 7, 2025
ee86ebf
Doc and logs
Julien-Ben Aug 7, 2025
5f5940f
Use build_image_generic for test images too
Julien-Ben Aug 7, 2025
6dd208f
Remove unused sign images in repositories
Julien-Ben Aug 7, 2025
493d4d6
Remove pipeline_process_image
Julien-Ben Aug 7, 2025
a21b254
Remove process_image
Julien-Ben Aug 7, 2025
a7db180
Rename function
Julien-Ben Aug 7, 2025
52b8662
Lint
Julien-Ben Aug 7, 2025
e465582
wip: Initial changes
MaciejKaras Aug 1, 2025
8a4e4b7
merge redesign-pipeline branch
MaciejKaras Aug 6, 2025
5bfacf6
Fixes after merging remote branch
MaciejKaras Aug 6, 2025
9733b45
Add sign option + change staging registries
MaciejKaras Aug 6, 2025
5ab9c08
Add agent and ops-manager to build_info.json
MaciejKaras Aug 6, 2025
e6d67ca
Fix issue with scenario
MaciejKaras Aug 6, 2025
7a34092
Fix for `build_info` computation
MaciejKaras Aug 7, 2025
a71ccf6
Pipeline fixes
MaciejKaras Aug 7, 2025
3be7731
Remove `all-agents` option
MaciejKaras Aug 7, 2025
1aae28b
Add missing `--sign` option
MaciejKaras Aug 7, 2025
e00b0e3
Fix agent matrix build
MaciejKaras Aug 7, 2025
f894e5b
Disable concurrent builds
MaciejKaras Aug 7, 2025
b140220
Move all env vars to constants.py
MaciejKaras Aug 7, 2025
7b5a064
Remove `operator-quick` image build process
MaciejKaras Aug 7, 2025
8df2ce4
Rebase fix
MaciejKaras Aug 7, 2025
b6b05aa
Add release scenarios for agent and ops-manager
MaciejKaras Aug 7, 2025
c5ad3c5
merge from Julien branch
MaciejKaras Aug 8, 2025
031dd5b
Merge branch 'master' into julienben/redesign-pipeline
Julien-Ben Aug 8, 2025
8183ec5
Fix release_info.py structure
MaciejKaras Aug 8, 2025
e7ab93b
Merge branch 'julienben/redesign-pipeline' into maciejk/use-ar-relate…
MaciejKaras Aug 8, 2025
2ec7587
Explicitly push to ECR with latest tag. Staging as a followup
Julien-Ben Aug 8, 2025
1badff0
Ensure builder in main to fix race conditions
Julien-Ben Aug 8, 2025
9e2815a
Log line
Julien-Ben Aug 8, 2025
e17b323
Remove unused is_running_in_evg_pipeline
Julien-Ben Aug 8, 2025
075fcae
Typo from merge conflict
Julien-Ben Aug 8, 2025
afc9b79
Follow up TODO
Julien-Ben Aug 8, 2025
3ef9e2c
Login for garasign image
Julien-Ben Aug 8, 2025
d2a6153
Handle builder creation race condition with an exception
Julien-Ben Aug 8, 2025
c6fc163
Cleanup ensure
Julien-Ben Aug 8, 2025
5b42663
Add test image building
lucian-tosa Aug 8, 2025
abd6180
Fix dockerfile
lucian-tosa Aug 8, 2025
c361d10
Merge remote-tracking branch 'refs/remotes/origin/julienben/redesign-…
lucian-tosa Aug 8, 2025
347b44b
Revert "Handle builder creation race condition with an exception"
Julien-Ben Aug 8, 2025
e2a4126
Revert "Cleanup ensure"
Julien-Ben Aug 8, 2025
715c4ad
Rename trace
Julien-Ben Aug 8, 2025
e117f79
Merge branch 'julienben/redesign-pipeline' into maciejk/use-ar-relate…
MaciejKaras Aug 8, 2025
2125cb7
Remove comment
Julien-Ben Aug 8, 2025
d047de5
Merge branch 'julienben/redesign-pipeline' into maciejk/use-ar-relate…
MaciejKaras Aug 8, 2025
c8b66fe
Merge branch 'master' into maciejk/use-ar-related-versions
MaciejKaras Aug 8, 2025
62c82f1
Merge branch 'master' of github.com:mongodb/mongodb-kubernetes into m…
nammn Aug 11, 2025
fa9c7ee
Review fixes
MaciejKaras Aug 11, 2025
e56591c
Merge branch 'master' into maciejk/use-ar-related-versions
MaciejKaras Aug 11, 2025
597edf2
Added comment to get_version_id() method
MaciejKaras Aug 11, 2025
857f705
Revert parallel `max_workers = 1`
MaciejKaras Aug 11, 2025
59e4420
Agent image fix
MaciejKaras Aug 11, 2025
2eebf0f
Merge branch 'master' into maciejk/use-ar-related-versions
MaciejKaras Aug 11, 2025
d6d5b81
merge maciejk/use-ar-related-versions
nammn Aug 11, 2025
1385fa5
add agent multi-arch buildinfo
nammn Aug 11, 2025
0cb392b
add multi arch support for all binaries but not part of patch
nammn Aug 11, 2025
9ed77b4
for now build on every patch
nammn Aug 11, 2025
d90ae2e
fix links
nammn Aug 11, 2025
dff3ceb
fix agent links, make agent conditional
nammn Aug 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 49 additions & 14 deletions .evergreen-functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,22 @@ functions:

### Setup Functions ###

setup_jq: &setup_jq
command: subprocess.exec
type: setup
params:
<<: *e2e_include_expansions_in_env
add_to_path:
- ${workdir}/bin
working_dir: src/github.com/mongodb/mongodb-kubernetes
binary: scripts/evergreen/setup_jq.sh

setup_context: &setup_context # Running the first switch is important to fill the workdir and other important initial env vars
command: shell.exec
type: setup
params:
add_to_path:
- ${workdir}/bin
shell: bash
working_dir: src/github.com/mongodb/mongodb-kubernetes
<<: *e2e_include_expansions_in_env
Expand Down Expand Up @@ -103,6 +115,7 @@ functions:
type: setup
params:
command: "git config --global user.email '[email protected]'"
- *setup_jq # we need jq in the context
- *setup_context

setup_kubectl: &setup_kubectl
Expand All @@ -112,13 +125,6 @@ functions:
working_dir: src/github.com/mongodb/mongodb-kubernetes
binary: scripts/evergreen/setup_kubectl.sh

setup_jq: &setup_jq
command: subprocess.exec
type: setup
params:
working_dir: src/github.com/mongodb/mongodb-kubernetes
binary: scripts/evergreen/setup_jq.sh

setup_shellcheck:
command: subprocess.exec
type: setup
Expand Down Expand Up @@ -225,7 +231,7 @@ functions:
working_dir: src/github.com/mongodb/mongodb-kubernetes
add_to_path:
- ${workdir}/bin
binary: scripts/dev/configure_docker_auth.sh
binary: scripts/dev/configure_container_auth.sh

setup_evg_host: &setup_evg_host
command: subprocess.exec
Expand Down Expand Up @@ -261,11 +267,30 @@ functions:
- *setup_evg_host
- *python_venv

prune_docker_resources:
# This differs for normal evg_host as we require minikube instead of kind for
# IBM machines and install aws cli via pip instead
setup_building_host_minikube:
- *switch_context
- command: subprocess.exec
type: setup
params:
command: "docker system prune -a -f"
working_dir: src/github.com/mongodb/mongodb-kubernetes
add_to_path:
- ${workdir}/bin
command: scripts/evergreen/setup_minikube_host.sh

prune_docker_resources:
- command: shell.exec
type: setup
params:
shell: bash
script: |
if command -v docker >/dev/null 2>&1; then
echo "Docker found, pruning docker resources..."
docker system prune -a -f
else
echo "Docker not found, skipping docker resource pruning"
fi

# the task configures the set of tools necessary for any task working with K8 cluster:
# installs kubectl, jq, kind (if necessary), configures docker authentication
Expand Down Expand Up @@ -327,8 +352,7 @@ functions:
shell: bash
working_dir: src/github.com/mongodb/mongodb-kubernetes
script: |
source .generated/context.export.env
scripts/evergreen/e2e/setup_cloud_qa.py create
scripts/evergreen/run_python.sh scripts/evergreen/e2e/setup_cloud_qa.py create
# The additional switch is needed, since we now have created the needed OM exports.
- *switch_context

Expand All @@ -339,8 +363,7 @@ functions:
shell: bash
working_dir: src/github.com/mongodb/mongodb-kubernetes
script: |
source .generated/context.export.env
scripts/evergreen/e2e/setup_cloud_qa.py delete
scripts/evergreen/run_python.sh scripts/evergreen/e2e/setup_cloud_qa.py delete

dump_diagnostic_information_from_all_namespaces:
- command: subprocess.exec
Expand Down Expand Up @@ -504,6 +527,18 @@ functions:
- ${workdir}/bin
- ${workdir}

build_test_image_ibm:
- *switch_context
- command: subprocess.exec
params:
shell: bash
working_dir: src/github.com/mongodb/mongodb-kubernetes
include_expansions_in_env:
- version_id
add_to_path:
- ${workdir}/bin
binary: scripts/evergreen/e2e/build_e2e_image_ibm.sh

pipeline:
- *switch_context
- command: shell.exec
Expand Down
101 changes: 99 additions & 2 deletions .evergreen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,13 @@ variables:
- func: download_kube_tools
- func: setup_building_host

- &setup_group_ibm
setup_group_can_fail_task: true
setup_group:
- func: clone
- func: setup_building_host_minikube
- func: build_multi_cluster_binary

- &setup_group_multi_cluster
setup_group_can_fail_task: true
setup_group:
Expand Down Expand Up @@ -423,15 +430,23 @@ tasks:
- func: build_multi_cluster_binary
- func: pipeline
vars:
image_name: test
image_name: meko-tests


- name: build_test_image_ibm
commands:
- func: clone
- func: setup_building_host
- func: build_multi_cluster_binary
- func: build_test_image_ibm

- name: build_mco_test_image
commands:
- func: clone
- func: setup_building_host
- func: pipeline
vars:
image_name: mco-test
image_name: mco-tests

- name: build_operator_ubi
commands:
Expand Down Expand Up @@ -1185,6 +1200,22 @@ task_groups:
- e2e_om_ops_manager_backup
<<: *teardown_group

- name: e2e_smoke_arm_task_group
max_hosts: -1
<<: *setup_group
<<: *setup_and_teardown_task_cloudqa
tasks:
- e2e_replica_set
<<: *teardown_group

- name: e2e_smoke_ibm_task_group
max_hosts: -1
<<: *setup_group_ibm
<<: *setup_and_teardown_task_cloudqa
tasks:
- e2e_replica_set
<<: *teardown_group

- name: e2e_ops_manager_kind_5_0_only_task_group
max_hosts: -1
<<: *setup_group
Expand Down Expand Up @@ -1450,6 +1481,64 @@ buildvariants:
tasks:
- name: e2e_smoke_task_group

- name: e2e_smoke_ibm_power
display_name: e2e_smoke_ibm_power
tags: [ "e2e_test_suite", "e2e_smoke_release_test_suite" ]
run_on:
- rhel9-power-large
allowed_requesters: [ "patch", "github_tag" ]
depends_on:
- name: build_operator_ubi
variant: init_test_run
- name: build_init_database_image_ubi
variant: init_test_run
- name: build_database_image_ubi
variant: init_test_run
- name: build_init_appdb_images_ubi
variant: init_test_run
- name: build_init_om_images_ubi
variant: init_test_run
- name: build_agent_images_ubi
variant: init_test_run
- name: build_test_image_ibm
variant: init_test_run_ibm
tasks:
- name: e2e_smoke_ibm_task_group

- name: e2e_smoke_ibm_z
display_name: e2e_smoke_ibm_z
tags: [ "e2e_test_suite", "e2e_smoke_release_test_suite" ]
run_on:
- rhel9-zseries-small
allowed_requesters: [ "patch", "github_tag" ]
depends_on:
- name: build_operator_ubi
variant: init_test_run
- name: build_init_database_image_ubi
variant: init_test_run
- name: build_database_image_ubi
variant: init_test_run
- name: build_init_appdb_images_ubi
variant: init_test_run
- name: build_init_om_images_ubi
variant: init_test_run
- name: build_agent_images_ubi
variant: init_test_run
- name: build_test_image_ibm
variant: init_test_run_ibm
tasks:
- name: e2e_smoke_ibm_task_group

- name: e2e_smoke_arm
display_name: e2e_smoke_arm
tags: [ "e2e_test_suite", "e2e_smoke_release_test_suite" ]
run_on:
- ubuntu2204-arm64-large
allowed_requesters: [ "patch", "github_tag" ]
<<: *base_no_om_image_dependency
tasks:
- name: e2e_smoke_arm_task_group

- name: e2e_static_smoke
display_name: e2e_static_smoke
tags: [ "e2e_test_suite", "e2e_smoke_release_test_suite" ]
Expand Down Expand Up @@ -1664,6 +1753,14 @@ buildvariants:
- name: build_upgrade_hook_image
- name: prepare_aws

- name: init_test_run_ibm
display_name: init_test_run_ibm
max_hosts: -1
run_on:
- ubuntu2204-small
tasks:
- name: build_test_image_ibm

- name: init_release_agents_on_ecr
display_name: init_release_agents_on_ecr
# this enables us to run this variant either manually (patch) which pct does or during an OM bump (github_pr)
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ ac:
# in parallel and both call 'aws_login') then Docker login may return an error "Error saving credentials:..The
# specified item already exists in the keychain". Seems this allows to ignore the error
aws_login:
@ scripts/dev/configure_docker_auth.sh
@ scripts/dev/configure_container_auth.sh

# cleans up aws resources, including s3 buckets which are older than 5 hours
aws_cleanup:
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,3 @@ Migration from [MongoDB Community Operator](https://github.com/mongodb/mongodb-k
See our detailed migration guides:
- [Migrating from MongoDB Community Operator](docs/migration/community-operator-migration.md)
- [Migrating from MongoDB Enterprise Kubernetes Operator](https://www.mongodb.com/docs/kubernetes/current/tutorial/migrate-to-mck/)

Loading
Loading