Skip to content

Conversation

MaciejKaras
Copy link
Collaborator

@MaciejKaras MaciejKaras commented Aug 13, 2025

Summary

Created new .evergreen-release.yml file that contains all release tasks including integration with kubectl-mongodb plugin release task. All of the variants are triggered only when github_tag is added.

Additional changes:

  • removed unused inventory .yaml files. We moved all of the images besides om and agent-pct used during OM bump to new atomic_pipeline.py.
  • each released image will be also released with additional olm_tag that has dynamic timestamp part. It will prevent accidental overriding the tags used by OLM. The tag syntax is {version}-olm-{timestamp_suffix} where timestamp suffix is in %Y%m%d%H%M%S format
  • created separate release_pipeline evergreen function that uses release build scenario and version provided by git_tag

Proof of Work

List of tasks that are triggered when doing manual patch:

Screenshot 2025-08-13 at 15 27 33

⚠️ This PR did not test that each release task will succeed. Although most of the tasks are moved from one place to another, we need to make sure that for example image building, tagging and pushing works.

Checklist

  • Have you linked a jira ticket and/or is the ticket in the title?
  • Have you checked whether your jira ticket required DOCSP changes?
  • Have you added changelog file?

Fix build scenario

Remove create and push manifests

Continue improvement to main

Simplify main and build_context

missed

Pass Build Configuration object directly

Use legacy and new pipeline

Fix

Remove --include

Rename MCO test image

Multi platform builds, with buildx

TODOs

Implement is_release_step_executed()

Fix init appdb image

Import sort

black formatting

Some cleaning and version adjustments

Adapt main to new build config

Add buildscenario to buildconfig

Handle build env

Renaming, usage of high level config

All images build pass on EVG

Lint

Explicit image type, support custom build_path

Replace old by new pipeline in EVG

Add documentation

Split in multiple files, cleanup

WIP, passing builds on staging temp + multi arch manifests

Replace usage of sonar

Remove namespace

Remove pin_at and build_id

Copied pipeline, removed daily builds and --exclude
This reverts commit 426e522.
# Conflicts:
#	scripts/release/atomic_pipeline.py
#	scripts/release/build/build_info.py
#	scripts/release/build/build_info_test.py
@MaciejKaras MaciejKaras changed the base branch from master to maciejk/ar-image-staging August 13, 2025 13:29
@MaciejKaras MaciejKaras added the skip-changelog Use this label in Pull Request to not require new changelog entry file label Aug 13, 2025
Copy link

github-actions bot commented Aug 13, 2025

⚠️ (this preview might not be accurate if the PR is not rebased on current master branch)

MCK 1.3.0 Release Notes

New Features

Multi-Architecture Support

We've added comprehensive multi-architecture support for the kubernetes operator. This enhancement enables deployment on IBM Power (ppc64le) and IBM Z (s390x) architectures alongside
existing x86_64 support. Core images (operator, agent, init containers, database, readiness probe) now support multiple architectures. We do not add support IBM and ARM support for Ops-Manager and the init-ops-manager image.

  • MongoDB Agent images have been migrated to new container repository: quay.io/mongodb/mongodb-agent.
    • the agents in the new repository will support the x86-64, ARM64, s390x, and ppc64le architectures. More can be read in the public docs.
    • operator running >=MCK1.3.0 and static cannot use the agent images from the old container repository quay.io/mongodb/mongodb-agent-ubi.
  • quay.io/mongodb/mongodb-agent-ubi should not be used anymore, it's only there for backwards compatibility.

Bug Fixes

  • This change fixes the current complex and difficult-to-maintain architecture for stateful set containers, which relies on an "agent matrix" to map operator and agent versions which led to a sheer amount of images.
  • We solve this by shifting to a 3-container setup. This new design eliminates the need for the operator-version/agent-version matrix by adding one additional container containing all required binaries. This architecture maps to what we already do with the mongodb-database container.
  • Fixed an issue where the readiness probe reported the node as ready even when its authentication mechanism was not in sync with the other nodes, potentially causing premature restarts.

Other Changes

  • Optional permissions for PersistentVolumeClaim moved to a separate role. When managing the operator with Helm it is possible to disable permissions for PersistentVolumeClaim resources by setting operator.enablePVCResize value to false (true by default). When enabled, previously these permissions were part of the primary operator role. With this change, permissions have a separate role.
  • subresourceEnabled Helm value was removed. This setting used to be true by default and made it possible to exclude subresource permissions from the operator role by specifying false as the value. We are removing this configuration option, making the operator roles always have subresource permissions. This setting was introduced as a temporary solution for this OpenShift issue. The issue has since been resolved and the setting is no longer needed.
  • We have deliberately not published the container images for OpsManager versions 7.0.16, 8.0.8, 8.0.9 and 8.0.10 due to a bug in the OpsManager which prevents MCK customers to upgrade their OpsManager deployments to those versions.

@MaciejKaras MaciejKaras marked this pull request as ready for review August 13, 2025 13:44
@MaciejKaras MaciejKaras requested a review from a team as a code owner August 13, 2025 13:44
@MaciejKaras MaciejKaras requested review from fealebenpae, m1kola, nammn, viveksinghggits, Julien-Ben and mircea-cosbuc and removed request for a team, fealebenpae and m1kola August 13, 2025 13:44
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.

binary: scripts/dev/run_python.sh scripts/release/pipeline_main.py --parallel ${image_name}
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}
Copy link
Collaborator

Choose a reason for hiding this comment

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

this won't work for om and agent, we should add support for these as well - otherwise we will be living in a limbo of requiring supporting both

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@nammn I think you've already moved om and agent into the new pipeline, right?

# Conflicts:
#	build_info.json
#	scripts/dev/contexts/e2e_mdb_kind_ubi_cloudqa
#	scripts/dev/contexts/e2e_static_mdb_kind_ubi_cloudqa
#	scripts/dev/contexts/local-defaults-context
#	scripts/dev/contexts/variables/om60
#	scripts/release/atomic_pipeline.py
#	scripts/release/build/image_build_configuration.py
#	scripts/release/build/image_build_process.py
#	scripts/release/pipeline_main.py
#	scripts/release/tests/build_info_test.py
#	scripts/release/tests/release_info_test.py
@MaciejKaras MaciejKaras force-pushed the maciejk/ar-image-release branch from 93648fd to 9ced848 Compare September 1, 2025 14:32
@MaciejKaras MaciejKaras changed the base branch from maciejk/ar-image-staging to master September 1, 2025 14:32
@MaciejKaras MaciejKaras force-pushed the maciejk/ar-image-release branch from 1f997c8 to 1f0f78d Compare September 1, 2025 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
skip-changelog Use this label in Pull Request to not require new changelog entry file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants