Reworked the navigation to reflect the learning path#315
Conversation
44337f6 to
1352a29
Compare
04ce30b to
b7fa984
Compare
b7fa984 to
538adfa
Compare
538adfa to
2496478
Compare
2496478 to
7ffffde
Compare
7ffffde to
824d601
Compare
824d601 to
49635fa
Compare
|
|
||
| These Custom Resources are defined by the Custom Resource Definitions (CRD), which you install when you install the Operator. | ||
|
|
||
| Then you describe the database you want by creating or updating a `PerconaServerMongoDB` object in `deploy/cr.yaml`. At this point, the Operator steps in and handles the hard work for you. It automatically does the following: |
There was a problem hiding this comment.
Please add more context for people who are new to Operator, something like:
"Then you describe the database you want by configuring the deploy/cr.yaml file. Once you apply this configuration to your cluster (using kubectl apply), the Operator steps in and handles the deployment for you."
|
|
||
| By default, the Operator creates Percona Server for MongoDB replica set with three members, one primary and the remaining secondaries. This is the minimal recommended configuration and it natively provides high availability. A replica set can have up to 50 members with the maximum of 7 voting members. | ||
|
|
||
| To keep your data safe and persistent, the Operator uses Kubernetes storage systems called Persistent Volumes (PVs) and PersistentVolumeClaims (PVCs). When you request storage for your database, a PVC automatically finds and attaches available storage for you. If a node fails, the Kubernetes storage system can move your data to another node, making sure your database remains available and your data stays protected. For local or special storage needs, see [Local Storage](storage.md). |
There was a problem hiding this comment.
To help our users avoid any confusion during a node failure, I've updated this paragraph to accurately reflect how the Operator handles data recovery for both networked and high-performance Local Storage. I talked about this with @radoslawszulgo
To keep your data safe and persistent, the Operator leverages Kubernetes Persistent Volumes (PVs) and PersistentVolumeClaims (PVCs). In the event of a node failure, Kubernetes maintains availability by rescheduling the affected MongoDB Pod to a healthy node and re-attaching its networked storage volume.
If you are using Local Storage for maximum performance, where data is tied to specific hardware, the Operator facilitates recovery by automatically provisioning a new replica and synchronizing data natively from the remaining cluster members. This architecture ensures your database remains accessible and protected across both cloud and physical infrastructure.
|
|
||
| These operations ensure that your actual database environment always matches your request. | ||
|
|
||
| Each `PerconaServerMongoDB` object corresponds to a single Percona Server for MongoDB setup - either a replica set or a sharded cluster. The Operator does not manage MongoDB servers that were created without using these custom resources. |
There was a problem hiding this comment.
I've refined this paragraph to highlight the Operator's role in orchestrating complex sharded environments. This helps users understand that even though they only manage one Custom Resource, the Operator single-handedly handles the setup and connection of all the different MongoDB parts
Each
PerconaServerMongoDBCustom Resource defines a complete database environment. While a Replica Set manages your core data nodes, for Sharded Clusters, the Operator intelligently orchestrates the entire distributed architecture, automatically managing the Shards, Config Servers, and Mongos routers as a unified system.
|
|
||
| ### Client connectivity | ||
|
|
||
| Applications should use a **mongodb+srv** connection URI. MongoDB drivers (4.2 and later) discover replica set members from DNS SRV records, so you do not need to list hostnames for dynamically assigned Pods. The Operator creates the necessary Services and DNS entries for the replica set. |
There was a problem hiding this comment.
I’m proposing this change so the docs don’t sound like mongodb+srv is mandatory. It’s still the recommended and easiest option for our Kubernetes/Operator setup, but regular mongodb:// URIs remain supported for teams that need them
Applications are recommended to use a mongodb+srv connection URI. Supported MongoDB drivers (version 4.2 and later) can discover replica set members from DNS SRV records, so you do not need to list hostnames for dynamically assigned Pods. The Operator creates the Services and DNS entries required for the replica set.
| - [Insert sample data to the database](data-insert.md) | ||
| - [Set up and make a logical backup](backup-tutorial.md) | ||
| - [Monitor the database health with Percona Monitoring and Management (PMM)](monitoring-tutorial.md) | ||
| * **Building an application?** Follow the **developer path** to get a cluster, connect from your code, and run locally. |
There was a problem hiding this comment.
We should clarify that this path is about connecting a local application to the remote K8S cluster to avoid confusing developers who expect a standalone local install.
I propose this:
Follow the developer path to connect your local application to a cluster running in Kubernetes
| Use this path when you want to connect your application to Percona Server for MongoDB on Kubernetes. | ||
|
|
||
| 1. **[Get a cluster](get-a-cluster.md)** — Install a cluster quickly or use one your team already provides. | ||
| 2. **[Connect your application](connect-from-app.md)** — Build the connection URI and use it in your app with any MongoDB driver. |
There was a problem hiding this comment.
Change any MongoDB driver to compatible MongoDB drivers (4.2+).
Our architecture requires DNS SRV resolution for dynamic Pods; we must specify that drivers must be version 4.2 or later to prevent users with legacy apps from experiencing connection failures. It is in the current documentation: https://percona-mongodb-operator-pr-315.onrender.com/architecture.html#client-connectivity
| 2. **[Connect your application](connect-from-app.md)** — Build the connection URI and use it in your app with any MongoDB driver. | ||
| 3. **[Get credentials for your app](app-credentials.md)** — Create a dedicated application user and use it in your connection string. | ||
| 4. **[Connection examples](connection-examples.md)** — Copy minimal examples in Node.js, Python, or Go. | ||
| 5. **[Connect from your laptop or CI](connect-from-outside.md)** — Use port-forward for local development or expose the cluster for shared access. |
There was a problem hiding this comment.
We should clarify that shared access requires exposing the cluster through a Kubernetes Service.
Change the text to say: Use port-forward for local development or expose the cluster via a Service for shared access.
| * **[Plan multi-region or disaster recovery](replication-plan-deployment.md)** — Replicate across sites and [fail over](replication-failover.md) when needed. | ||
| * **[Remove a deployment](delete.md)** — Delete a test cluster or decommission an environment. | ||
|
|
||
| You can also operate the Operator and database via the [Open Everest](https://openeverest.io/docs/) web interface. See [Get started with Percona Everest](https://docs.percona.com/everest/quickstart-guide/quick-install.html) to try it. |
There was a problem hiding this comment.
| You can also operate the Operator and database via the [Open Everest](https://openeverest.io/docs/) web interface. See [Get started with Percona Everest](https://docs.percona.com/everest/quickstart-guide/quick-install.html) to try it. | |
| You can also operate the Operator and database via the [OpenEverest](https://openeverest.io/docs/) web interface. See [Get started with OpenEverest](https://openeverest.io/documentation/1.14.0/quick-install.html) to try it. |
49635fa to
f168a57
Compare
Added quickstart pages focused on developer Updated existing docs to provide 2 paths - one for dev and another for SRE
…cus only on that Added a namespace mode doc explaining how it works
8de6de1 to
8a97569
Compare
No description provided.