Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
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
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
1fbb8d5
Rename arch -> platform
Julien-Ben 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
6890858
Cleanup
Julien-Ben Aug 4, 2025
aab9592
Correct build envs
Julien-Ben Aug 4, 2025
33173bb
Lindt
Julien-Ben 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
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
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
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
2ea1e3d
wip
MaciejKaras Aug 7, 2025
46367e9
more changes
MaciejKaras Aug 8, 2025
e18d87f
working without signing
MaciejKaras Aug 8, 2025
7e2497f
Add `latest` tag for some images
MaciejKaras Aug 8, 2025
c8b66fe
Merge branch 'master' into maciejk/use-ar-related-versions
MaciejKaras Aug 8, 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
82b387c
Merge branch 'maciejk/use-ar-related-versions' into maciejk/ar-image-…
MaciejKaras Aug 11, 2025
bec8626
Merge branch 'master' into maciejk/use-ar-related-versions
MaciejKaras Aug 11, 2025
e4d2def
Merge branch 'maciejk/use-ar-related-versions' into maciejk/ar-image-…
MaciejKaras Aug 11, 2025
5302f40
revert before merging
MaciejKaras Aug 11, 2025
9d9701e
Add OVERRIDE_VERSION_ID for staging builds
MaciejKaras Aug 12, 2025
a31ee49
Fix precommit-with-licenses make target
MaciejKaras Aug 12, 2025
1e21add
Remove operator suffixed agents builds
MaciejKaras Aug 12, 2025
7a99de5
Making commit-sha 8 chars
MaciejKaras Aug 12, 2025
8fa0e98
Fix unit tests
MaciejKaras Aug 12, 2025
c4f4999
Merge branch 'maciejk/use-ar-related-versions' into maciejk/ar-image-…
MaciejKaras Aug 12, 2025
6d7cbfb
Merge branch 'master' into maciejk/ar-image-staging
MaciejKaras Aug 12, 2025
b1fabb4
remove duplicate entries
MaciejKaras Aug 12, 2025
91f7054
Fix unit tests
MaciejKaras Aug 12, 2025
5b9a006
Merge branch 'master' into maciejk/ar-image-staging
MaciejKaras Aug 13, 2025
907e1c4
Update `mongodb-enterprise-ops-manager-ubi` image name
MaciejKaras Aug 13, 2025
2a0438c
Update OM6 agent version (previous was deleted)
MaciejKaras Aug 13, 2025
ee7d8ad
Merge branch 'master' into maciejk/ar-image-staging
MaciejKaras Aug 13, 2025
c8945e9
Remove TODO for STAGING build scenario
MaciejKaras Aug 13, 2025
51a554d
Add commit_sha in logger
MaciejKaras Aug 13, 2025
92bbd95
Remove `STAGING` overrides
MaciejKaras Aug 14, 2025
18582c7
Merge branch 'master' into maciejk/ar-image-staging
MaciejKaras Aug 14, 2025
a1d2216
Merge branch 'master' into maciejk/ar-image-staging
MaciejKaras Sep 1, 2025
1801c66
fixes
MaciejKaras Sep 1, 2025
9ced848
CLOUDP-295785 - Release tasks reorg to use new atomic_pipeline
MaciejKaras Aug 12, 2025
1f0f78d
Fixes + remove old pipeline and sonar
MaciejKaras Sep 1, 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
94 changes: 66 additions & 28 deletions .evergreen-functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -564,42 +564,18 @@ functions:
working_dir: src/github.com/mongodb/mongodb-kubernetes
binary: scripts/dev/run_python.sh scripts/release/pipeline_main.py --parallel ${image_name} ${all_agents} ${build_scenario}

# TODO: CLOUDP-335471 ; once all image builds are made with the new atomic pipeline, remove the following function
legacy_pipeline:
release_pipeline:
- *switch_context
- command: shell.exec
type: setup
params:
shell: bash
script: |
# Docker Hub workaround
# docker buildx needs the moby/buildkit image when setting up a builder so we pull it from our mirror
docker buildx create --driver=docker-container --driver-opt=image=268558157000.dkr.ecr.eu-west-1.amazonaws.com/docker-hub-mirrors/moby/buildkit:buildx-stable-1 --use
docker buildx inspect --bootstrap
- command: ec2.assume_role
display_name: Assume IAM role with permissions to pull Kondukto API token
params:
role_arn: ${kondukto_role_arn}
- command: shell.exec
display_name: Pull Kondukto API token from AWS Secrets Manager and write it to file
params:
silent: true
shell: bash
include_expansions_in_env: [AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN]
script: |
set -e
# use AWS CLI to get the Kondukto API token from AWS Secrets Manager
kondukto_token=$(aws secretsmanager get-secret-value --secret-id "kondukto-token" --region "us-east-1" --query 'SecretString' --output text)
# write the KONDUKTO_TOKEN environment variable to Silkbomb environment file
echo "KONDUKTO_TOKEN=$kondukto_token" > ${workdir}/silkbomb.env
- command: subprocess.exec
retry_on_failure: true
type: setup
params:
shell: bash
<<: *e2e_include_expansions_in_env
working_dir: src/github.com/mongodb/mongodb-kubernetes
binary: scripts/dev/run_python.sh pipeline.py --include ${image_name} --parallel --sign
env:
git_tag: ${triggered_by_git_tag}
binary: scripts/dev/run_python.sh scripts/release/pipeline_main.py ${image_name} --build-scenario release --version ${git_tag}

teardown_cloud_qa_all:
- *switch_context
Expand Down Expand Up @@ -845,3 +821,65 @@ functions:
- task_name
script: |
./scripts/code_snippets/${task_name}_test.sh

#
# kubectl mongodb plugin release functions
#
install_goreleaser:
- command: shell.exec
type: setup
include_expansions_in_env:
- goreleaser_pro_tar_gz
params:
script: |
set -Eeu pipefail
curl -fL "${goreleaser_pro_tar_gz}" --output goreleaser_Linux_x86_64.tar.gz
tar -xf goreleaser_Linux_x86_64.tar.gz
chmod 755 ./goreleaser

install_macos_notarization_service:
- command: shell.exec
type: setup
params:
include_expansions_in_env:
- notary_service_url
script: |
set -Eeu pipefail

curl "${notary_service_url}" --output macos-notary.zip
unzip -u macos-notary.zip
chmod 755 ./linux_amd64/macnotary

release_kubectl_mongodb_plugin:
- command: github.generate_token
params:
expansion_name: generated_token
- command: shell.exec
type: setup
params:
working_dir: src/github.com/mongodb/mongodb-kubernetes
include_expansions_in_env:
- GRS_USERNAME
- GRS_PASSWORD
- PKCS11_URI
- ARTIFACTORY_URL
- ARTIFACTORY_PASSWORD
- SIGNING_IMAGE_URI
- macos_notary_keyid
- macos_notary_secret
- workdir
- triggered_by_git_tag
env:
XDG_CONFIG_HOME: ${go_base_path}${workdir}
GO111MODULE: "on"
GOROOT: "/opt/golang/go1.24"
MACOS_NOTARY_KEY: ${macos_notary_keyid}
MACOS_NOTARY_SECRET: ${macos_notary_secret}
GORELEASER_CURRENT_TAG: ${triggered_by_git_tag}
# shell.exec EVG Task doesn't have add_to_path, so we need to explicitly add the path export below.
script: |
set -Eeu pipefail

export PATH=$GOROOT/bin:$PATH
export GITHUB_TOKEN=${generated_token}
${workdir}/goreleaser release --clean
99 changes: 0 additions & 99 deletions .evergreen-kubectlplugin.yml

This file was deleted.

186 changes: 186 additions & 0 deletions .evergreen-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
include:
- filename: .evergreen-functions.yml

tasks:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should consider whether we want to migrate om and agent (independent release lifecycle) into this file or another independent file

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also thought about that, but first I wanted to tackle operator release tasks.


- name: release_operator
tags: [ "image_release" ]
allowed_requesters: [ "patch", "github_tag" ]
commands:
- func: clone
- func: setup_building_host
- func: quay_login
- func: release_pipeline
vars:
image_name: operator

# Releases init images to Quay
- name: release_init_appdb
tags: [ "image_release" ]
allowed_requesters: [ "patch", "github_tag" ]
commands:
- func: clone
- func: setup_building_host
- func: quay_login
- func: release_pipeline
vars:
image_name: init-appdb

- name: release_init_database
tags: [ "image_release" ]
allowed_requesters: [ "patch", "github_tag" ]
commands:
- func: clone
- func: setup_building_host
- func: quay_login
- func: release_pipeline
vars:
image_name: init-database

- name: release_init_ops_manager
tags: [ "image_release" ]
allowed_requesters: [ "patch", "github_tag" ]
commands:
- func: clone
- func: setup_building_host
- func: quay_login
- func: release_pipeline
vars:
image_name: init-ops-manager

- name: release_database
tags: [ "image_release" ]
allowed_requesters: [ "patch", "github_tag" ]
commands:
- func: clone
- func: setup_building_host
- func: quay_login
- func: release_pipeline
vars:
image_name: database

- name: prepare_and_upload_openshift_bundles
tags: [ "openshift_bundles" ]
allowed_requesters: [ "patch", "github_tag" ]
commands:
- func: clone
- func: setup_aws
- func: configure_docker_auth
- func: setup_prepare_openshift_bundles
- func: prepare_openshift_bundles
- func: update_evergreen_expansions
- func: upload_openshift_bundle
vars:
# mongoDbOperator expansion is added in update_evergreen_expansions func from release.json
bundle_file_name: "mck-operator-certified-${mongodbOperator}.tgz"

- name: run_conditionally_prepare_and_upload_openshift_bundles
tags: [ "openshift_bundles" ]
allowed_requesters: [ "patch", "github_tag" ]
commands:
- func: clone
- func: run_task_conditionally
vars:
condition_script: scripts/evergreen/should_prepare_openshift_bundles.sh
variant: prepare_openshift_bundles
task: prepare_and_upload_openshift_bundles

- name: release_kubectl_mongodb_plugin
allowed_requesters: [ "patch", "github_tag" ]
tags: [ "binary_release" ]
commands:
- func: clone
- func: install_goreleaser
- func: install_macos_notarization_service
- func: release_kubectl_mongodb_plugin

### Release build variants
buildvariants:

- name: release_images
display_name: release_images
tags: [ "release" ]
allowed_requesters: [ "patch", "github_tag" ]
max_hosts: -1
run_on:
- release-ubuntu2204-large # This is required for CISA attestation https://jira.mongodb.org/browse/DEVPROD-17780
tasks:
- name: release_operator
- name: release_init_appdb
- name: release_init_database
- name: release_init_ops_manager
- name: release_database

- name: preflight_release_images
display_name: preflight_release_images
tags: [ "release" ]
allowed_requesters: [ "patch", "github_tag" ]
depends_on:
- name: "*"
variant: release_images
run_on:
- rhel90-large
expansions:
preflight_submit: true
tasks:
- name: preflight_images_task_group

- name: prepare_openshift_bundles
display_name: prepare_openshift_bundles
tags: [ "release" ]
allowed_requesters: [ "patch", "github_tag" ]
depends_on:
- name: "*"
variant: release_images
- name: "*"
variant: preflight_release_images
run_on:
- ubuntu2204-large
tasks:
- name: run_conditionally_prepare_and_upload_openshift_bundles

- name: prerelease_gke_code_snippets
display_name: prerelease_gke_code_snippets
tags: [ "release" ]
allowed_requesters: ["patch", "github_tag"]
depends_on:
- variant: release_images
name: '*'
patch_optional: true
run_on:
- ubuntu2204-small
tasks:
- name: gke_code_snippets_task_group

- name: e2e_smoke
display_name: e2e_smoke
tags: [ "e2e_smoke_release_test_suite" ]
run_on:
- ubuntu2204-large
allowed_requesters: [ "patch", "github_tag" ]
depends_on:
- name: "*"
variant: release_images
tasks:
- name: e2e_smoke_task_group

- name: e2e_static_smoke
display_name: e2e_static_smoke
tags: [ "e2e_smoke_release_test_suite" ]
run_on:
- ubuntu2204-large
allowed_requesters: [ "patch", "github_tag" ]
depends_on:
- name: "*"
variant: release_images
tasks:
- name: e2e_smoke_task_group

- name: release_kubectl_mongodb_plugin
display_name: release_kubectl_mongodb_plugin
tags: [ "release" ]
run_on:
- release-ubuntu2204-small # This is required for CISA attestation https://jira.mongodb.org/browse/DEVPROD-17780
allowed_requesters: [ "patch", "github_tag" ]
tasks:
- name: release_kubectl_mongodb_plugin
Loading