K8SPSMDB-1654: Vector search fixes/improvements#2437
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the operator’s Vector Search (mongot) integration to align with upstream configuration changes and Percona’s mongot image, while avoiding mongot deployment for config-server replsets and improving overall readiness reporting.
Changes:
- Skip mongot reconciliation for config-server replsets; incorporate mongot status into cluster readiness evaluation.
- Update generated mongot config schema (ScramAuth/X509 layout, replicationReader additions) and adjust passwordFile handling to use a copied file under
/tmp. - Switch e2e default mongot image and update entrypoint behavior for TLS PEM creation and password file preparation.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/psmdb/vectorsearch/statefulset.go | Updates mongot container args and removes unused secret mounts/volumes. |
| pkg/psmdb/vectorsearch/statefulset_test.go | Adjusts expected mongot command. |
| pkg/psmdb/vectorsearch/mongot/config.go | Updates Go structs representing mongot configuration schema. |
| pkg/psmdb/vectorsearch/config.go | Updates default mongot config generation to use ScramAuth and /tmp passwordFile. |
| pkg/psmdb/vectorsearch/config_test.go | Updates expected rendered config to match new schema/passwordFile. |
| pkg/controller/perconaservermongodb/status.go | Includes mongot readiness in overall cluster state. |
| pkg/controller/perconaservermongodb/search.go | Skips mongot reconciliation for config-server replsets. |
| pkg/apis/psmdb/v1/psmdb_defaults.go | Adds default pod/container security context for Search. |
| e2e-tests/functions | Switches default IMAGE_SEARCH to Percona mongot image/tag. |
| build/mongot-entrypoint.sh | Prepares TLS PEM and copies/chmods search password file for mongot. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Mongot statefulset shouldn't be created for config server replset. - Update mongot configuration to support changes in upstream. - Use mongot image provided by Percona.
| perconalab/percona-server-mongodb-operator:main-mongod8.0'} | ||
| IMAGE_BACKUP=${IMAGE_BACKUP:-"perconalab/percona-server-mongodb-operator:main-backup"} | ||
| IMAGE_SEARCH=${IMAGE_SEARCH:-"mongodb/mongodb-community-search:latest"} | ||
| IMAGE_SEARCH=${IMAGE_SEARCH:-"perconalab/percona-server-mongodb-mongot:0.51.0"} |
There was a problem hiding this comment.
Do we have a Dockerfile? If yes, we need to start building this image in our Jenkins job and use it as perconalab/percona-server-mongodb-operator:main-mongot
There was a problem hiding this comment.
There was a problem hiding this comment.
Percona-Lab/jenkins-pipelines#4241
I have created PR, @egegunes please check
CHANGE DESCRIPTION