Skip to content

Conversation

lsierant
Copy link
Contributor

@lsierant lsierant commented Jul 4, 2025

Summary

Main feature branch for Search Public Preview release.

@lsierant lsierant force-pushed the search/public-preview branch from 17d0fd7 to a72c572 Compare July 4, 2025 15:27
@lsierant lsierant changed the title Search/public preview Search Public Preview - main feature branch Jul 4, 2025
lsierant and others added 5 commits July 8, 2025 13:31
# Summary

Implements minimum necessary changes to run against newest mongot
container built from master:

* Workaround for mongot's requirement of password file having owner-only
permissions
* New config schema structure
* Switched default mongot image to ECR
* Simulated searchCoordinated role
lsierant and others added 2 commits July 18, 2025 17:00
…string (#273)

# Summary

This reverts handling replicaSetName from mongot config and adds passing
all mongod hosts in the connection string.

It is not necessary now to set it, as mongot is connecting in a
replicaset mode when there is more than one host passed on connection
string.


<!-- Enter your issue summary here.-->

## Proof of Work

<!-- Enter your proof that it works here.-->

<!-- start git-machete generated -->

## Based on PR #229

## Chain of upstream PRs as of 2025-07-17

* PR #229:
  `master` ← `search/public-preview`

  * **PR #273 (THIS ONE)**:
    `search/public-preview` ← `lsierant/search-multiple-hosts`

<!-- end git-machete generated -->
# Summary
Expose new TLS capabilities in mongot.

## Proof of Work
New
[passing](https://spruce.mongodb.com/task/mongodb_kubernetes_e2e_mdb_community_e2e_search_community_tls_patch_39025950721c5e2a2b7e69665729018adceb7ce7_687e2c0229d5cb0007cf2080_25_07_21_12_01_09/tests?execution=0&sorts=STATUS%3AASC)
test.

## 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 checked for release_note changes?
lsierant and others added 4 commits July 23, 2025 08:29
# Summary

Handled recent fixes to auth db and replicaset connection in mongot.

<!-- start git-machete generated -->

## Chain of upstream PRs as of 2025-07-22

* PR #229:
  `master` ← `search/public-preview`

  * **PR #285 (THIS ONE)**:
    `search/public-preview` ← `lsierant/auth-source`

<!-- end git-machete generated -->
# Summary

This pull request introduces health check functionality for the `mongot`
service, updates readiness and liveness probes, and removes a test
decorator for local testing. The changes enhance the monitoring and
reliability of the `mongot` service and simplify the test suite.

### Enhancements to `mongot` service health checks:

* Added a new constant `MongotDefautHealthCheckPort` set to port `8080`
in `mongodbsearch_types.go`. A helper method `GetMongotHealthCheckPort`
was also introduced to retrieve this value.
* Updated the `buildSearchHeadlessService` function to include a new
service port for health checks, using the `GetMongotHealthCheckPort`
method.
* Modified the `createMongotConfig` function to dynamically set the
health check address using the new health check port.

### Readiness and liveness probe improvements:

* Introduced constants for probe paths (`SearchLivenessProbePath` and
`SearchReadinessProbePath`) in `search_construction.go`.
* Replaced the existing readiness probe configuration with new methods
`mongotLivenessProbe` and `mongotReadinessProbe`. These methods
configure HTTP-based probes using the health check port and paths.
### Test suite simplifications:

* Removed the `@skip_if_local` decorator from several
`test_om_connectivity` test cases in `om_appdb_scale_up_down.py`,
enabling them to run in all environments.
…244)

# Summary

This pull request introduces validation for unsupported MongoDBSearch
image versions and adds a corresponding test case. The key changes
include implementing a new validation method, updating the
reconciliation logic, and adding constants for unsupported versions.

### Validation for unsupported MongoDBSearch image versions:

* **New validation method**: Added `ValidateSearchImageVersion` to
`MongoDBSearchReconcileHelper` to check if the specified or container
image version matches an unsupported version (`1.47.0`). If so, it
returns an error.

* **Integration into reconciliation workflow**: Updated the `reconcile`
method to invoke `ValidateSearchImageVersion` before proceeding with
other validations.

* **Constants for unsupported version**: Introduced
`unsupportedSearchVersion` and `unsupportedSearchVersionErrorFmt`
constants to centralize the unsupported version logic and error
formatting.
### Test case for validation:

* **New test**: Added
`TestMongoDBSearchReconcile_InvalidSearchImageVersion` to validate the
error handling for unsupported MongoDBSearch versions. This ensures the
reconciliation fails with the appropriate error message.

## Proof of Work

Test pass

## 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 checked for release_note changes?
@lsierant lsierant mentioned this pull request Jul 28, 2025
3 tasks
fealebenpae and others added 3 commits July 28, 2025 16:09
# Summary

This makes sure that e2e tests respect the `MDB_SEARCH_COMMUNITY_*`
variable overrides in a context.

## Proof of Work

[Passing e2e
tests](https://spruce.mongodb.com/version/68872f20797f2500073406ff/tasks?page=0&sorts=STATUS%3AASC%3BBASE_STATUS%3ADESC&variant=%5Ee2e_mdb_community%24).

## 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 checked for release_note changes?
<!-- start git-machete generated -->

# Based on PR #229

## Chain of upstream PRs as of 2025-07-28

* PR #229:
  `master` ← `search/public-preview`

  * **PR #296 (THIS ONE)**:
    `search/public-preview` ← `lsierant/search-snippets-update`

<!-- end git-machete generated -->

# Summary

<!-- Enter your issue summary here.-->

## Proof of Work

<!-- Enter your proof that it works here.-->

## 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 checked for release_note changes?

---------

Co-authored-by: Yavor Georgiev <[email protected]>
Co-authored-by: Yavor Georgiev <[email protected]>
Copy link

github-actions bot commented Jul 29, 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.

lsierant and others added 2 commits August 23, 2025 23:21
# Summary

This pull request introduces support for using external MongoDB
deployments as sources for `MongoDBSearch` resources, in addition to the
previously supported operator-managed deployments. The changes include
updates to the CRD API, controller logic, and supporting code to handle
configuration, validation, and reconciliation for external sources.
Additionally, new end-to-end (e2e) test tasks are added to ensure this
functionality is covered.

**External MongoDB Source Support**

* Added new fields to the `MongoDBSource` spec (`ExternalMongoDBSource`
and supporting types) to allow specifying external MongoDB deployments,
including host/port, credentials, and TLS settings.
* Added logic to distinguish between operator-managed and external
sources throughout the controller and resource handling code, including
the `IsExternalMongoDBSource` method and updates to resource reference
logic.

**Controller and Reconciliation Logic Updates**

* Refactored the `SearchSourceDBResource` interface and its
implementations to support both internal and external MongoDB sources,
including connection details and version validation.
* Updated reconciliation logic to handle external sources, including
skipping version validation and resource watching when not applicable.
* Adjusted service and StatefulSet construction to use new abstraction
for host seeds and service accounts.

**Testing and CI**

* Added new e2e test tasks for external MongoDB source scenarios
(`e2e_search_external_basic` and `e2e_search_external_tls`) and included
them in the appropriate task groups to ensure coverage in CI.
* Updated tests and validation helpers to use the new interface methods
and logic.

These changes collectively enable `MongoDBSearch` resources to work with
both operator-managed and external MongoDB deployments, increasing
flexibility for users and improving the robustness of the operator.

## Proof of Work

Tests pass
@lsierant lsierant force-pushed the search/public-preview branch 2 times, most recently from d8e903f to 446c8b3 Compare August 26, 2025 08:54
@lsierant lsierant mentioned this pull request Aug 28, 2025
3 tasks
@lsierant lsierant mentioned this pull request Sep 1, 2025
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants