Skip to content

Conversation

@MaciejKaras
Copy link
Collaborator

@MaciejKaras MaciejKaras commented Aug 13, 2025

Summary

⚠️ Important notice

This PR contains some changes from #336, but they are not used yet and don't impact the PRs or patches. They are included because previously this PR was stacked on the staging PR and it is much easier to include them. The changes that are included:

  • latest_tag support - this is needed for staging builds, but like mentioned earlier, staging builds are not yet used
  • replace 268558157000.dkr.ecr.us-east-1.amazonaws.com/dev with BASE_REPO_URL. This will be used to distinguish different repo urls: dev, staging and release. Currently hardcoded to 268558157000.dkr.ecr.us-east-1.amazonaws.com/dev

This change is made to unblock the release of MCK 1.3.0. It is not final state of the release mechanism and most of it will be replaced by image promotion process.

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:

  • 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_operator_pipeline evergreen function that uses release build scenario and version provided by git_tag
  • fixed and bumped preflight script

Proof of Work

List of tasks that are triggered when doing manual patch:
Screenshot 2025-09-03 at 11 00 16

⚠️ This PR was tested by running evergreen command locally:

sudo evergreen patch -p mongodb-kubernetes -a release -d "Release test" -f -y -u --browse --path .evergreen.yml --param RELEASE_OPERATOR_VERSION=1.3.0-rc

Link to evg job
-> https://spruce.mongodb.com/version/68b81b45285a950007bc8398

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?

@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
@github-actions
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.
  • Fixed an issue where the MongoDB Agents did not adhere to the NO_PROXY environment variable configured on the operator.
  • Changed webhook ClusterRole and ClusterRoleBinding default names to include the namespace. This ensures that multiple operator installations in different namespaces don't conflict with each other.

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 Julien-Ben, fealebenpae, m1kola, mircea-cosbuc, nammn and viveksinghggits and removed request for a team, fealebenpae and m1kola August 13, 2025 13:44
@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
Copy link
Contributor

@viveksinghggits viveksinghggits left a comment

Choose a reason for hiding this comment

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

LGTM, can we please add the ToDos that we talked about?

Copy link
Collaborator

@nammn nammn left a comment

Choose a reason for hiding this comment

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

LGTM! A few question I would like to have answered though

scenario = BuildScenario.RELEASE
logger.info(f"Build scenario: {scenario} (git_tag: {git_tag})")
elif is_patch or is_evg:
elif is_patch and is_evg:
Copy link
Collaborator

Choose a reason for hiding this comment

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

is the is_evg required? Doesn't is_patch already say that its a patch?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

it was a bug because in next condition we check for is_evg, which would not be entered if previous condition would be is_patch or is_evg. It is still commented out, but I wanted to fix it. We can also remove the is_evg from this check, but it is maybe more verbose as is.

Copy link
Collaborator

Choose a reason for hiding this comment

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

i will leave it to you, for me it reads weird as it seems redundant, but not blocking!

tags: [ "e2e_smoke_release_test_suite" ]
allowed_requesters: [ "patch", "github_tag" ]
run_on:
- release-ubuntu2404-small # This is required for CISA attestation https://jira.mongodb.org/browse/DEVPROD-17780
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: I doubt we need this for the test image

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 thought about scenario when someone interferes with our test image and it will give false positive, although the image was corrupted.

@MaciejKaras MaciejKaras merged commit 38b6aa8 into master Sep 4, 2025
34 of 37 checks passed
@MaciejKaras MaciejKaras deleted the maciejk/ar-image-release branch September 4, 2025 05:33
MaciejKaras added a commit that referenced this pull request Sep 5, 2025
# Summary

This PR cleans up all sonar and pipeline.py related code. It is not
necessary after we have merged
#344 which moves all
remaining tasks to use new `atomic-pipeline` logic.

Changes include:
  - removed unused inventory .yaml files
  - removed sonar lib and pipeline.py code
- replaced `Dockerfile.atomic` with `Dockerfile`. Other Dockerfiles were
deleted because now not used
  - removed unused evergreen extensions from the code

## Proof of Work

Passing CI tests is enough.

## 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?
    - 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
mihaigalos pushed a commit to mihaigalos/mongodb-kubernetes that referenced this pull request Sep 10, 2025
…ongodb#344)

# Summary

⚠️ **Important notice**

This PR contains some changes from
mongodb#336, but they are not
used yet and don't impact the PRs or patches. They are included because
previously this PR was stacked on the staging PR and it is much easier
to include them. The changes that are included:
- `latest_tag` support - this is needed for staging builds, but like
mentioned earlier, staging builds are not yet used
- replace `268558157000.dkr.ecr.us-east-1.amazonaws.com/dev` with
`BASE_REPO_URL`. This will be used to distinguish different repo urls:
dev, staging and release. Currently hardcoded to
`268558157000.dkr.ecr.us-east-1.amazonaws.com/dev`
---

**This change is made to unblock the release of MCK 1.3.0. It is not
final state of the release mechanism and most of it will be replaced by
image promotion process.**

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:
- 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_operator_pipeline` evergreen function that
uses `release` build scenario and version provided by `git_tag`
- fixed and bumped preflight script

## Proof of Work

List of tasks that are triggered when doing manual patch:
<img width="2036" height="1017" alt="Screenshot 2025-09-03 at 11 00 16"
src="https://github.com/user-attachments/assets/b3e7e707-3929-4f88-bc4f-2f998a16482a"
/>


⚠️ This PR was tested by running evergreen command locally:
```
sudo evergreen patch -p mongodb-kubernetes -a release -d "Release test" -f -y -u --browse --path .evergreen.yml --param RELEASE_OPERATOR_VERSION=1.3.0-rc
```

Link to evg job
-> https://spruce.mongodb.com/version/68b81b45285a950007bc8398

## 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
mihaigalos pushed a commit to mihaigalos/mongodb-kubernetes that referenced this pull request Sep 10, 2025
# Summary

This PR cleans up all sonar and pipeline.py related code. It is not
necessary after we have merged
mongodb#344 which moves all
remaining tasks to use new `atomic-pipeline` logic.

Changes include:
  - removed unused inventory .yaml files
  - removed sonar lib and pipeline.py code
- replaced `Dockerfile.atomic` with `Dockerfile`. Other Dockerfiles were
deleted because now not used
  - removed unused evergreen extensions from the code

## Proof of Work

Passing CI tests is enough.

## 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?
    - 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
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.

5 participants