Skip to content
Closed
Show file tree
Hide file tree
Changes from 56 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
dda2a2d
Empty file
lsierant Feb 18, 2026
b024c96
Search: sharded cluster operator support (#816)
lsierant Mar 12, 2026
c23b484
Remove empty file from the searc/base (#894)
viveksinghggits Mar 12, 2026
304204d
Search: support multiple mongots
lsierant Feb 20, 2026
ec7aad1
Sharded multiple mongot: review fixes (#827)
lsierant Feb 24, 2026
5691d19
E2E tests
Julien-Ben Feb 26, 2026
79219ff
Updates to existing controllers
Julien-Ben Feb 26, 2026
7d1caa2
New controller
Julien-Ben Feb 26, 2026
42f866d
Types
Julien-Ben Feb 26, 2026
b0548e0
Add deployments permission
Julien-Ben Feb 26, 2026
f5e8ee7
Fix existing tests
Julien-Ben Feb 26, 2026
710fcaa
Fix method call
Julien-Ben Feb 27, 2026
8fa1c13
Lint
Julien-Ben Feb 27, 2026
5ab94f8
Lint
Julien-Ben Feb 27, 2026
d6d180d
Aligned naming conventions for all resources
lsierant Feb 28, 2026
f0ef27d
Fixing e2e tests for naming alignment
lsierant Feb 28, 2026
0146d6b
Fix e2e search test naming alignment issues
lsierant Feb 28, 2026
c80289c
Rebase and deployment permission fix
lsierant Mar 2, 2026
152e97b
Added new variant for large search tests
lsierant Mar 2, 2026
15cd0c0
Split tests to large variants
lsierant Mar 3, 2026
024e735
Fix context files
lsierant Mar 3, 2026
71487d2
Revert cluster index from replicaset and fix e2e tests (#853)
lsierant Mar 3, 2026
51aade2
Deduplicate the code between the search test files (#846)
viveksinghggits Mar 5, 2026
19bb436
Move envoy related utils to a separate file (#861)
viveksinghggits Mar 5, 2026
f61e06b
Create helper to move MongoDB related utils, to make them usable acro…
viveksinghggits Mar 6, 2026
6eb7e79
Managed Proxy Improvements (#849)
Julien-Ben Mar 6, 2026
def457d
Further deduplicate the E2E tests (#874)
viveksinghggits Mar 10, 2026
c863791
Add E2E test for single search instance with external enterprise RS (…
viveksinghggits Mar 11, 2026
7428d86
Add e2e test for multi mongot with ext RS and unmanaged LB (#875)
viveksinghggits Mar 11, 2026
9501c84
Add E2E test for multi mongot with int RS and unmanaged LB (#885)
viveksinghggits Mar 11, 2026
d883374
CLOUDP-386690: Managed Load Balancer - Replica Sets Support (#888)
Julien-Ben Mar 13, 2026
3e313a0
Fixes after rebase
Julien-Ben Mar 13, 2026
1d8dd55
CLOUDP-386705 Search: readiness probe
lsierant Mar 13, 2026
85979e3
Fixed python errors
lsierant Mar 13, 2026
fdd1573
Fixed import error
lsierant Mar 13, 2026
fb464b8
Search: mypy python check (#896)
lsierant Mar 16, 2026
ae81e5d
E2E, Internal sharded mongodb with single mongot (#905)
viveksinghggits Mar 17, 2026
4176452
Add support to configure mongot jvm flags using MongoDBSearch CR (#907)
viveksinghggits Mar 17, 2026
098fdb3
Release note for change in defautl resource request for search pods (…
viveksinghggits Mar 18, 2026
5e60528
CLOUDP-386698: Validate shardName for external mongod sharded resourc…
anandsyncs Mar 18, 2026
8ba8408
CLOUDP-386693: Per-pod mongot config with leader/follower designation…
anandsyncs Mar 19, 2026
e4899b9
Use updatestatus (#914)
Julien-Ben Mar 23, 2026
86dcd81
Add x509 authentication support from mongot->mongod (#921)
viveksinghggits Mar 23, 2026
c27bb44
Handle `search.spec.lb.endpoint` for external source and managed LB (…
viveksinghggits Mar 23, 2026
bd4d5ed
CLOUDP-390149: Expose Load Balancer deployment override (#919)
Julien-Ben Mar 23, 2026
737bd8d
CLOUDP-389836 & CLOUDP-386688: Load Balancer Improvements (#912)
Julien-Ben Mar 23, 2026
c355127
Operator
lsierant Mar 25, 2026
69dbee2
Review fixes
lsierant Mar 25, 2026
57283dd
No LB, Managed mdb should use headless fqdn
lsierant Mar 25, 2026
a96f14f
lint
lsierant Mar 25, 2026
7008937
Fix TLS SAN and test expectation for headless mongot FQDN
lsierant Mar 25, 2026
239f6dc
Potentialy E2E to test external source connecting to mongot via route…
viveksinghggits Mar 20, 2026
e911110
Rename
Julien-Ben Mar 26, 2026
ef658f9
Original file
Julien-Ben Mar 26, 2026
bc6bde8
Add specific variant for search openshift
Julien-Ben Mar 26, 2026
932e744
Update doc and markers
Julien-Ben Mar 26, 2026
4f3f809
Few fixes
Julien-Ben Mar 27, 2026
2c46d70
Formating
Julien-Ben Mar 27, 2026
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
78 changes: 76 additions & 2 deletions .evergreen-tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1325,17 +1325,22 @@ tasks:
commands:
- func: "e2e_test"

- name: e2e_search_community_auto_embedding_multi_mongot
tags: ["patch-run"]
commands:
- func: "e2e_test"

- name: e2e_search_community_tls
tags: ["patch-run"]
commands:
- func: "e2e_test"

- name: e2e_search_external_basic
- name: e2e_search_community_external_mongod_basic
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_external_tls
- name: e2e_search_community_external_mongod_tls
tags: [ "patch-run" ]
commands:
- func: "e2e_test"
Expand All @@ -1354,3 +1359,72 @@ tasks:
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_sharded_internal_mongodb_multi_mongot_unmanaged_lb
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_sharded_internal_mongodb_multi_mongot_managed_lb
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_replicaset_internal_mongodb_multi_mongot_managed_lb
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_replicaset_external_mongodb_multi_mongot_managed_lb
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_replicaset_external_mongodb_proxy_service
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_sharded_external_mongodb_multi_mongot_unmanaged_lb
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_sharded_enterprise_external_mongod_managed_lb
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_sharded_external_mongodb_single_mongot
tags: [ "patch-run" ]
commands:
- func: "e2e_test"
- name: e2e_search_replicaset_external_mongodb_single_mongot
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_replicaset_external_mongodb_multi_mongot_unmanaged_lb
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_replicaset_internal_mongodb_multi_mongot_unmanaged_lb
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_sharded_internal_mongodb_single_mongot
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_mongot_replicaset_x509_auth
tags: [ "patch-run" ]
commands:
- func: "e2e_test"

- name: e2e_search_sharded_openshift_external
tags: [ "patch-run" ]
commands:
- func: "e2e_test"
149 changes: 141 additions & 8 deletions .evergreen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -669,11 +669,6 @@ task_groups:
<<: *setup_and_teardown_task
tasks:
- e2e_community_replicaset_scale
- e2e_search_community_basic
- e2e_search_community_auto_embedding
- e2e_search_community_tls
- e2e_search_external_basic
- e2e_search_external_tls

# This is the task group that contains all the tests run in the e2e_mdb_kind_ubi_cloudqa build variant
- name: e2e_mdb_kind_cloudqa_task_group
Expand Down Expand Up @@ -806,10 +801,85 @@ task_groups:
- e2e_replica_set_oidc_workforce
- e2e_sharded_cluster_oidc_m2m_group
- e2e_sharded_cluster_oidc_m2m_user
# MongoDBSearch test group
<<: *teardown_group

# All MongoDBSearch tests that fit on large instances (mongot requires 2 CPU).
# Added to cloudqa-large variants.
- name: e2e_mdb_kind_search_task_group
max_hosts: -1
<<: *setup_group
<<: *setup_and_teardown_task_cloudqa
tasks:
- e2e_search_community_basic
- e2e_search_community_auto_embedding
- e2e_search_community_auto_embedding_multi_mongot
- e2e_search_community_tls
- e2e_search_community_external_mongod_basic
- e2e_search_community_external_mongod_tls
- e2e_search_enterprise_basic
- e2e_search_replicaset_external_mongodb_single_mongot
- e2e_search_sharded_internal_mongodb_single_mongot
- e2e_search_enterprise_tls
- e2e_search_enterprise_x509_cluster_auth
- e2e_search_sharded_external_mongodb_single_mongot
- e2e_search_sharded_external_mongodb_multi_mongot_unmanaged_lb
- e2e_search_replicaset_external_mongodb_multi_mongot_unmanaged_lb
- e2e_search_replicaset_internal_mongodb_multi_mongot_unmanaged_lb
- e2e_search_mongot_replicaset_x509_auth
<<: *teardown_group

# MongoDBSearch tests that require a large instance (multiple mongots per shard:
# 2 shards x 2 mongots x 2 CPU = 8 CPU). Added to cloudqa-large variants.
- name: e2e_mdb_kind_search_large_task_group
max_hosts: -1
<<: *setup_group
<<: *setup_and_teardown_task_cloudqa
tasks:
- e2e_search_sharded_internal_mongodb_multi_mongot_unmanaged_lb
- e2e_search_sharded_internal_mongodb_multi_mongot_managed_lb
- e2e_search_sharded_enterprise_external_mongod_managed_lb
- e2e_search_replicaset_internal_mongodb_multi_mongot_managed_lb
- e2e_search_replicaset_external_mongodb_multi_mongot_managed_lb
- e2e_search_replicaset_external_mongodb_proxy_service
<<: *teardown_group

# Same as e2e_mdb_kind_search_task_group but for om80 variants.
# Uses setup_and_teardown_task (not cloudqa) since ops_manager_version is not 'cloud_qa'.
- name: e2e_om80_kind_search_task_group
max_hosts: -1
<<: *setup_group
<<: *setup_and_teardown_task
tasks:
- e2e_search_community_basic
- e2e_search_community_auto_embedding
- e2e_search_community_auto_embedding_multi_mongot
- e2e_search_community_tls
- e2e_search_community_external_mongod_basic
- e2e_search_community_external_mongod_tls
- e2e_search_enterprise_basic
- e2e_search_replicaset_external_mongodb_single_mongot
- e2e_search_sharded_internal_mongodb_single_mongot
- e2e_search_enterprise_tls
- e2e_search_enterprise_x509_cluster_auth
- e2e_search_sharded_external_mongodb_single_mongot
- e2e_search_sharded_external_mongodb_multi_mongot_unmanaged_lb
- e2e_search_replicaset_external_mongodb_multi_mongot_unmanaged_lb
- e2e_search_replicaset_internal_mongodb_multi_mongot_unmanaged_lb
- e2e_search_mongot_replicaset_x509_auth
<<: *teardown_group

# Same as e2e_mdb_kind_search_large_task_group but for om80 variants.
# Uses setup_and_teardown_task (not cloudqa) since ops_manager_version is not 'cloud_qa'.
- name: e2e_om80_kind_search_large_task_group
max_hosts: -1
<<: *setup_group
<<: *setup_and_teardown_task
tasks:
- e2e_search_sharded_internal_mongodb_multi_mongot_unmanaged_lb
- e2e_search_sharded_internal_mongodb_multi_mongot_managed_lb
- e2e_search_replicaset_internal_mongodb_multi_mongot_managed_lb
- e2e_search_replicaset_external_mongodb_multi_mongot_managed_lb
- e2e_search_replicaset_external_mongodb_proxy_service
<<: *teardown_group

# this task group contains just a one task, which is smoke testing whether the operator
Expand All @@ -836,6 +906,14 @@ task_groups:
- e2e_replica_set_pv
- e2e_sharded_cluster_pv

- name: e2e_mdb_openshift_search_ubi_cloudqa_task_group
max_hosts: 1
<<: *setup_group
<<: *setup_and_teardown_task_cloudqa
<<: *teardown_group
tasks:
- e2e_search_sharded_openshift_external

- name: e2e_custom_domain_task_group
max_hosts: -1
<<: *setup_group
Expand Down Expand Up @@ -1240,8 +1318,6 @@ task_groups:
<<: *setup_group
<<: *setup_and_teardown_task
tasks:
- e2e_search_enterprise_tls
- e2e_search_enterprise_x509_cluster_auth
- e2e_om_ops_manager_backup_object_lock
<<: *teardown_group

Expand Down Expand Up @@ -1360,6 +1436,26 @@ buildvariants:
tasks:
- name: e2e_custom_domain_task_group

- name: e2e_mdb_kind_ubi_cloudqa_large
display_name: e2e_mdb_kind_ubi_cloudqa_large
tags: [ "pr_patch", "staging", "e2e_test_suite", "cloudqa", "cloudqa_non_static" ]
run_on:
- ubuntu2404-large
<<: *base_no_om_image_dependency
tasks:
- name: e2e_mdb_kind_search_task_group
- name: e2e_mdb_kind_search_large_task_group

- name: e2e_static_mdb_kind_ubi_cloudqa_large
display_name: e2e_static_mdb_kind_ubi_cloudqa_large
tags: [ "pr_patch", "staging", "e2e_test_suite", "cloudqa", "static" ]
run_on:
- ubuntu2404-large
<<: *base_no_om_image_dependency
tasks:
- name: e2e_mdb_kind_search_task_group
- name: e2e_mdb_kind_search_large_task_group

# We do not want to run openshift variants on every PR.
- name: e2e_mdb_openshift_ubi_cloudqa
display_name: e2e_mdb_openshift_ubi_cloudqa
Expand Down Expand Up @@ -1394,6 +1490,23 @@ buildvariants:
tasks:
- name: e2e_mdb_openshift_ubi_cloudqa_task_group

- name: e2e_mdb_openshift_search_ubi_cloudqa
display_name: e2e_mdb_openshift_search_ubi_cloudqa
tags: [ "staging", "e2e_openshift_test_suite", "cloudqa", "cloudqa_non_static" ]
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_test_image
variant: init_test_run
run_on:
- ubuntu2404-large
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I created a dedicated variant because we need a -large machine. We could also bump the size for the existing one (but it costs more $$).

tasks:
- name: e2e_mdb_openshift_search_ubi_cloudqa_task_group

## Ops Manager build variants

# Isolated Ops Manager Tests for 6.0 version - kept for on-demand testing only
Expand Down Expand Up @@ -1469,6 +1582,26 @@ buildvariants:
- name: e2e_static_ops_manager_kind_6_0_only_task_group
- name: e2e_ops_manager_upgrade_only_task_group

- name: e2e_om80_kind_ubi_large
display_name: e2e_om80_kind_ubi_large
tags: [ "pr_patch", "staging", "e2e_test_suite" ]
run_on:
- ubuntu2404-large
<<: *base_om8_dependency
tasks:
- name: e2e_om80_kind_search_task_group
- name: e2e_om80_kind_search_large_task_group

- name: e2e_static_om80_kind_ubi_large
display_name: e2e_static_om80_kind_ubi_large
tags: [ "pr_patch", "staging", "e2e_test_suite", "static" ]
run_on:
- ubuntu2404-large
<<: *base_om8_dependency
tasks:
- name: e2e_om80_kind_search_task_group
- name: e2e_om80_kind_search_large_task_group

- name: e2e_operator_race_ubi_with_telemetry
display_name: e2e_operator_race_ubi_with_telemetry
tags: [ "staging", "e2e_test_suite", "race" ]
Expand Down
10 changes: 10 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,16 @@ repos:
^scripts/funcs/[^/]+$
)

- repo: local
hooks:
- id: ty-search
name: ty (search tests)
entry: bash -c 'cd docker/mongodb-kubernetes-tests && uvx ty check tests/search/ tests/common/search/'
language: system
pass_filenames: false
files: docker/mongodb-kubernetes-tests/tests/(common/)?search/.*\.py$
stages: [pre-commit]

- repo: https://github.com/golangci/golangci-lint
rev: v2.0.2
hooks:
Expand Down
7 changes: 6 additions & 1 deletion LICENSE-THIRD-PARTY
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@

cel.dev/expr,v0.25.1,https://github.com/google/cel-spec/blob/v0.25.1/LICENSE,Apache-2.0
github.com/Masterminds/semver/v3,v3.4.0,https://github.com/Masterminds/semver/blob/v3.4.0/LICENSE.txt,MIT
github.com/beorn7/perks/quantile,v1.0.1,https://github.com/beorn7/perks/blob/v1.0.1/LICENSE,MIT
github.com/blang/semver,v3.5.1,https://github.com/blang/semver/blob/v3.5.1/LICENSE,MIT
github.com/cenkalti/backoff/v4,v4.3.0,https://github.com/cenkalti/backoff/blob/v4.3.0/LICENSE,MIT
github.com/cenkalti/backoff/v5,v5.0.3,https://github.com/cenkalti/backoff/blob/v5.0.3/LICENSE,MIT
github.com/cespare/xxhash/v2,v2.3.0,https://github.com/cespare/xxhash/blob/v2.3.0/LICENSE.txt,MIT
github.com/cncf/xds/go,v0.0.0-20251210132809-ee656c7534f5,https://github.com/cncf/xds/blob/ee656c7534f5/go/LICENSE,Apache-2.0
github.com/davecgh/go-spew/spew,v1.1.2-0.20180830191138-d8f796af33cc,https://github.com/davecgh/go-spew/blob/d8f796af33cc/LICENSE,ISC
github.com/emicklei/go-restful/v3,v3.11.0,https://github.com/emicklei/go-restful/blob/v3.11.0/LICENSE,MIT
github.com/envoyproxy/go-control-plane/envoy,v1.36.0,https://github.com/envoyproxy/go-control-plane/blob/envoy/v1.36.0/envoy/LICENSE,Apache-2.0
github.com/envoyproxy/go-control-plane/pkg/wellknown,v0.14.0,https://github.com/envoyproxy/go-control-plane/blob/v0.14.0/LICENSE,Apache-2.0
github.com/envoyproxy/protoc-gen-validate/validate,v1.3.0,https://github.com/envoyproxy/protoc-gen-validate/blob/v1.3.0/LICENSE,Apache-2.0
github.com/evanphx/json-patch/v5,v5.9.11,https://github.com/evanphx/json-patch/blob/v5.9.11/v5/LICENSE,BSD-3-Clause
github.com/fsnotify/fsnotify,v1.8.0,https://github.com/fsnotify/fsnotify/blob/v1.8.0/LICENSE,BSD-3-Clause
github.com/fxamacker/cbor/v2,v2.7.0,https://github.com/fxamacker/cbor/blob/v2.7.0/LICENSE,MIT
Expand Down Expand Up @@ -74,7 +79,7 @@ go.uber.org/multierr,v1.11.0,https://github.com/uber-go/multierr/blob/v1.11.0/LI
go.uber.org/zap,v1.27.1,https://github.com/uber-go/zap/blob/v1.27.1/LICENSE,MIT
go.yaml.in/yaml/v2,v2.4.2,https://github.com/yaml/go-yaml/blob/v2.4.2/LICENSE,Apache-2.0
gomodules.xyz/jsonpatch/v2,v2.4.0,https://github.com/gomodules/jsonpatch/blob/v2.4.0/v2/LICENSE,Apache-2.0
google.golang.org/genproto/googleapis/api/httpbody,v0.0.0-20260209200024-4cfbd4190f57,https://github.com/googleapis/go-genproto/blob/4cfbd4190f57/googleapis/api/LICENSE,Apache-2.0
google.golang.org/genproto/googleapis/api,v0.0.0-20260209200024-4cfbd4190f57,https://github.com/googleapis/go-genproto/blob/4cfbd4190f57/googleapis/api/LICENSE,Apache-2.0
google.golang.org/genproto/googleapis/rpc,v0.0.0-20260209200024-4cfbd4190f57,https://github.com/googleapis/go-genproto/blob/4cfbd4190f57/googleapis/rpc/LICENSE,Apache-2.0
google.golang.org/grpc,v1.79.3,https://github.com/grpc/grpc-go/blob/v1.79.3/LICENSE,Apache-2.0
google.golang.org/protobuf,v1.36.11,https://github.com/protocolbuffers/protobuf-go/blob/v1.36.11/LICENSE,BSD-3-Clause
Expand Down
16 changes: 16 additions & 0 deletions api/v1/mdb/mongodb_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -1250,6 +1250,14 @@ func (m *MongoDB) ShardRsName(i int) string {
return fmt.Sprintf("%s-%d", m.Name, i)
}

func (m *MongoDB) ShardRsNames() []string {
names := make([]string, m.Spec.ShardCount)
for i := range m.Spec.ShardCount {
names[i] = m.ShardRsName(i)
}
return names
}

func (m *MongoDB) MultiShardRsName(clusterIdx int, shardIdx int) string {
return fmt.Sprintf("%s-%d-%d", m.Name, shardIdx, clusterIdx)
}
Expand Down Expand Up @@ -1670,6 +1678,14 @@ func (m *MongoDB) CalculateFeatureCompatibilityVersion() string {
return fcv.CalculateFeatureCompatibilityVersion(m.Spec.Version, m.Status.FeatureCompatibilityVersion, m.Spec.FeatureCompatibilityVersion)
}

func (m *MongoDB) ShardNames() []string {
shardNames := make([]string, m.Spec.ShardCount)
for shardIdx := 0; shardIdx < m.Spec.ShardCount; shardIdx++ {
shardNames[shardIdx] = m.ShardRsName(shardIdx)
}
return shardNames
}

func (m *MongoDbSpec) IsInChangeVersion(lastSpec *MongoDbSpec) bool {
if lastSpec != nil && (lastSpec.Version != m.Version) {
return true
Expand Down
2 changes: 1 addition & 1 deletion api/v1/mdb/mongodb_validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ func specWithExactlyOneSchema(d DbCommonSpec) v1.ValidationResult {
}

if count != 1 {
return v1.ValidationError("must validate one and only one schema")
return v1.ValidationError("either spec.cloudManager or spec.opsManager can be set")
}
return v1.ValidationSuccess()
}
Expand Down
Loading