Skip to content

Commit acd4045

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

File tree

5 files changed

+29
-21
lines changed

5 files changed

+29
-21
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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.

changelog/20251030_feature_update_mongodb_search_to_use_grpc_and_mtls_for.md

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

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)