Skip to content

Reworked the navigation to reflect the learning path#315

Draft
nastena1606 wants to merge 5 commits into
mainfrom
CLOUD-903-Rework-navigation-psmdb
Draft

Reworked the navigation to reflect the learning path#315
nastena1606 wants to merge 5 commits into
mainfrom
CLOUD-903-Rework-navigation-psmdb

Conversation

@nastena1606

Copy link
Copy Markdown
Collaborator

No description provided.

@nastena1606
nastena1606 force-pushed the CLOUD-903-Rework-navigation-psmdb branch from 44337f6 to 1352a29 Compare February 12, 2026 10:03
@nastena1606
nastena1606 temporarily deployed to CLOUD-903-Rework-navigation-psmdb - percona-mongodb-operator PR #315 February 13, 2026 16:02 — with Render Destroyed
@nastena1606
nastena1606 force-pushed the CLOUD-903-Rework-navigation-psmdb branch from 04ce30b to b7fa984 Compare February 13, 2026 16:03
@nastena1606
nastena1606 force-pushed the CLOUD-903-Rework-navigation-psmdb branch from b7fa984 to 538adfa Compare February 24, 2026 19:22
@nastena1606
nastena1606 force-pushed the CLOUD-903-Rework-navigation-psmdb branch from 538adfa to 2496478 Compare February 24, 2026 19:23
@nastena1606
nastena1606 force-pushed the CLOUD-903-Rework-navigation-psmdb branch from 2496478 to 7ffffde Compare February 25, 2026 10:50
@nastena1606
nastena1606 force-pushed the CLOUD-903-Rework-navigation-psmdb branch from 7ffffde to 824d601 Compare March 6, 2026 13:11
@nastena1606
nastena1606 force-pushed the CLOUD-903-Rework-navigation-psmdb branch from 824d601 to 49635fa Compare March 6, 2026 13:52
Comment thread docs/how-it-works.md

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:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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."

Comment thread docs/how-it-works.md

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).

@edithturn edithturn Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread docs/how-it-works.md

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.

@edithturn edithturn Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 PerconaServerMongoDB Custom 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.

Comment thread docs/architecture.md

### 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread docs/quickstart.md
- [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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Comment thread docs/quickstart.md
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.

@edithturn edithturn Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Comment thread docs/quickstart.md
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread docs/what-next.md
* **[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.

@edithturn edithturn Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
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.

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants