Skip to content

Commit f17e896

Browse files
committed
Updated release notes for search
1 parent 069997e commit f17e896

8 files changed

+32
-36
lines changed

changelog/20251015_other_remove_legacy_search_coordinator_polyfill.md

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
kind: feature
3+
date: 2025-10-30
4+
---
5+
6+
* **MongoDBSearch**:
7+
* Switched to gRPC and mTLS for internal communication between mongod and mongot.
8+
* Since MCK 1.4 the `mongod` and `mongot` processess communicated using the MongoDB Wire Protocol and used keyfile authentication. This release switches that to gRPC with mTLS authentication. gRPC will allow for load-balancing search queries against multiple `mongot` processes in the future, and mTLS decouples the internal cluster authentication mode and credentials among `mongod` processes from the connection to the `mongot` process. The Operator will automatically enable gRPC for existing and new workloads, and will enable mTLS authentication if both Database Server and `MongoDBSearch` resource are configured for TLS.
9+
* Exposed configuration settings for mongot's prometheus metrics endpoint.
10+
* By default, if `spec.prometheus` field is not provided then metrics endpoint in mongot is disabled. **This is a breaking change**. Previously the metrics endpoing was always enabled on port 9946.
11+
* To enable prometheus metrics endpoint specify empty `spec.prometheus:` field. It will enable metrics endpoint on a default port (9946). To change the port, set it in `spec.prometheus.port` field.
12+
* Simplified MongoDB Search setup: Removed the custom Search Coordinator polyfill (a piece of compatibility code previously needed to add the required permissions), as MongoDB 8.2.0 and later now include the necessary permissions via the built-in searchCoordinator role.
13+
* Updated the default `mongodb/mongodb-search` image version to 0.55.0. This is the version MCK uses if `.spec.version` is not specified.
14+
* MongoDB deployments using X509 internal cluster authentication are now supported. Previously MongoDB Search required SCRAM authentication among members of a MongoDB replica set. Note: SCRAM client authentication is still required, this change merely relaxes the requirements on internal cluster authentication.

changelog/20251030_feature_update_mongodb_search_to_use_grpc_and_mtls_for.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

changelog/20251103_feature_mongodbsearch_mongodb_deployments_using_x509.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

changelog/20251106_feature_mongodbsearch_updated_the_default_mongodbmongodb.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,3 @@
22
kind: feature
33
date: 2025-11-06
44
---
5-
6-
* **MongoDBSearch**: Updated the default `mongodb/mongodb-search` image version to 0.55.0. This is the version MCK uses if `.spec.version` is not specified.

controllers/searchcontroller/mongodbsearch_reconcile_helper_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ package searchcontroller
33
import (
44
"context"
55
"fmt"
6-
"github.com/stretchr/testify/require"
7-
corev1 "k8s.io/api/core/v1"
86
"strings"
97
"testing"
108

119
"github.com/stretchr/testify/assert"
10+
"github.com/stretchr/testify/require"
1211
"go.uber.org/zap"
1312
"sigs.k8s.io/controller-runtime/pkg/client"
1413

14+
corev1 "k8s.io/api/core/v1"
1515
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1616

1717
searchv1 "github.com/mongodb/mongodb-kubernetes/api/v1/search"

docker/mongodb-kubernetes-tests/tests/search/search_enterprise_tls.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import yaml
2-
from kubetester import create_or_update_secret, run_periodically, try_load, get_service, kubetester
2+
from kubetester import (
3+
create_or_update_secret,
4+
get_service,
5+
kubetester,
6+
run_periodically,
7+
try_load,
8+
)
39
from kubetester.certs import create_mongodb_tls_certs, create_tls_certs
410
from kubetester.kubetester import KubernetesTester
511
from kubetester.kubetester import fixture as yaml_fixture
@@ -291,7 +297,9 @@ def assert_search_service_prometheus_port(mdbs: MongoDBSearch, should_exist: boo
291297

292298
if should_exist:
293299
assert "prometheus" in ports, "Prometheus port should be in service when prometheus is enabled"
294-
assert ports["prometheus"] == expected_port, f"Prometheus port should be {expected_port} but was {ports['prometheus']}"
300+
assert (
301+
ports["prometheus"] == expected_port
302+
), f"Prometheus port should be {expected_port} but was {ports['prometheus']}"
295303
else:
296304
assert "prometheus" not in ports, "Prometheus port should not be in service when prometheus is disabled"
297305

@@ -302,20 +310,16 @@ def assert_search_pod_prometheus_endpoint(mdbs: MongoDBSearch, should_be_accessi
302310

303311
if should_be_accessible:
304312
result = KubernetesTester.run_command_in_pod_container(
305-
pod_name,
306-
mdbs.namespace,
307-
["curl", "-f", url],
308-
container="mongot"
313+
pod_name, mdbs.namespace, ["curl", "-f", url], container="mongot"
309314
)
310-
assert "# HELP" in result or "# TYPE" in result, f"Prometheus metrics endpoint should return valid metrics, got: {result[:200]}"
315+
assert (
316+
"# HELP" in result or "# TYPE" in result
317+
), f"Prometheus metrics endpoint should return valid metrics, got: {result[:200]}"
311318
logger.info(f"Prometheus endpoint is accessible and returning metrics")
312319
else:
313320
try:
314321
result = KubernetesTester.run_command_in_pod_container(
315-
pod_name,
316-
mdbs.namespace,
317-
["curl", "-f", url],
318-
container_name="mongot"
322+
pod_name, mdbs.namespace, ["curl", "-f", url], container_name="mongot"
319323
)
320324
assert False, f"Prometheus endpoint should not be accessible but got: {result}"
321325
except Exception as e:

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"flag"
66
"fmt"
7-
golog "log"
87
"os"
98
"runtime/debug"
109
"slices"
@@ -31,6 +30,7 @@ import (
3130
corev1 "k8s.io/api/core/v1"
3231
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
3332
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
33+
golog "log"
3434
localruntime "runtime"
3535
ctrl "sigs.k8s.io/controller-runtime"
3636
runtime_cluster "sigs.k8s.io/controller-runtime/pkg/cluster"

0 commit comments

Comments
 (0)