Skip to content

Commit be39f49

Browse files
patch: update documentation landing pages (6) (#282)
<!-- Provide a general summary of your changes in the Title above --> <!-- markdownlint-disable MD041 --> ## 🏷️ Type of changes <!--- What types of changes does your code introduce? --> <!--- Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update - [ ] Tooling and CI - [ ] Dependencies upgrade or change - [ ] Chores / refactoring ## 📝 Description <!-- Describe your changes in detail including: - the purpose and feature scope of this PR (what) - the motivation behind this change (why) - the impacted components (often matches conventional commit scope) - explanation/algorithm if required (how) --> This PR updates the home page and main Diataxis landing pages in accordance with the latest documentation standards. It solves [DPE-9652] and [DPE-9695]. ## 🧪 Manual testing steps <!--- Give a list of instructions to manually test your change. --> <!--- These instructions are meant for reviewers to test the PR --> <!--- on their development environment. --> In the `docs` directory: ```shell make clean make install make run ``` ## 🔬 Automated testing steps <!--- Describe the unit and integration tests that you added --> <!--- to ensure that this feature works as expected. Include details --> <!--- on the positive and negative test cases, as well as any changes --> <!--- made to the existing tests to ensure they are still relevant. --> ## ✅ Checklist <!--- Go over all the following points, and put an `x` in all the boxes that apply. --> <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] My code follows the code style of this project. - [x] I have added or updated any relevant documentation. - [x] I have read the [**CONTRIBUTING**](../blob/8/edge/CONTRIBUTING.md) document. - [ ] I have added tests to cover my changes. - [ ] All new and existing tests passed. [DPE-9652]: https://warthogs.atlassian.net/browse/DPE-9652?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [DPE-9695]: https://warthogs.atlassian.net/browse/DPE-9695 --------- Signed-off-by: Andreia <andreia.velasco@canonical.com> Co-authored-by: Mehdi Bendriss <45567724+Mehdi-Bendriss@users.noreply.github.com>
1 parent 86acbd2 commit be39f49

8 files changed

Lines changed: 157 additions & 35 deletions

File tree

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@
150150
# it inherits the code license instead; specify it instead of 'CC-BY-SA'.
151151

152152
"license": {
153-
"name": "CC-BY-SA-3.0",
153+
"name": "Apache License 2.0",
154154
"url": "https://github.com/canonical/mongo-single-kernel-library/blob/6/edge/LICENSE",
155155
},
156156
}

docs/explanation/index.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,25 @@
11
(explanation)=
22
# Explanation
33

4+
This section contains additional context about key concepts and the design behind Charmed MongoDB.
5+
6+
## Architecture and design
7+
8+
High-level implementation details of MongoDB concepts like sharding and users in the context of charms and Juju:
9+
410
```{toctree}
511
:titlesonly:
6-
7-
Security <security/index>
812
Sharding <sharding>
9-
Users <users>
13+
Internal users <users>
1014
Advanced statuses <advanced-statuses>
11-
```
15+
```
16+
17+
## Security
18+
19+
Overview of security measures in the charm and maintenance policies like security upgrades:
20+
21+
```{toctree}
22+
:titlesonly:
23+
24+
Security <security/index>
25+
```

docs/explanation/security/hardening-guide.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,15 +132,15 @@ A new version of the Charmed MongoDB image may be released to provide patching o
132132
Charmed MongoDB and Charmed Mongos install pinned revisions of the [Charmed MongoDB snap](https://snapcraft.io/charmed-mongodb), to provide reproducible and secure environments.
133133
New versions of Charmed MongoDB and Charmed Mongos may be released to provide patching of vulnerabilities (CVEs).
134134
It is important to refresh the charms regularly to make sure the workload is as secure as possible.
135-
For more information on how to refresh the MongoDB charm, see {ref}`how-to-upgrade`.
135+
For more information on how to refresh the MongoDB charm, see {ref}`upgrade`.
136136
```
137137
```{tab-item} K8s
138138
:sync: k8s
139139
140140
Charmed MongoDB K8s and Charmed Mongos K8s install a pinned revisions of the [Charmed MongoDB snap](https://snapcraft.io/charmed-mongodb), to provide reproducible and secure environments.
141141
New versions of Charmed MongoDB K8s and Charmed Mongos K8s may be released to provide patching of vulnerabilities (CVEs).
142142
It is important to refresh charms regularly to make sure the workload is as secure as possible.
143-
For more information on how to refresh the MongoDB charm, see {ref}`how-to-upgrade`.
143+
For more information on how to refresh the MongoDB charm, see {ref}`upgrade`.
144144
```
145145
````
146146

docs/how-to/index.md

Lines changed: 69 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,80 @@
1-
(how-to-guides)=
1+
(how-to)=
22
# How-to guides
33

4+
Key processes and common tasks for deploying, configuring, and operating Charmed MongoDB.
5+
6+
## Deployment and setup
7+
8+
Available deployment methods and operations to consider at deploy-time:
9+
410
```{toctree}
511
:titlesonly:
12+
:maxdepth: 2
613
714
Deploy <deploy/index>
15+
````
16+
17+
## Operations and maintenance
18+
19+
Essential operations to configure and manage a MongoDB cluster:
20+
21+
```{toctree}
22+
:titlesonly:
23+
824
Scale replicas and shards <scale-replicas-and-shards>
9-
Enable TLS <enable-tls>
25+
Enable TLS encryption <enable-tls>
26+
````
27+
28+
Connect to an application and manage user credentials and authentication:
29+
30+
```{toctree}
31+
:titlesonly:
32+
1033
Manage client connections <manage-client-connections>
1134
Enable LDAP <enable-ldap>
12-
Decommission your deployment <decommission>
13-
Monitoring <monitoring/index>
35+
````
36+
37+
### Back up and restore
38+
39+
Configure storage providers and manage backups for safety and data migration:
40+
41+
```{toctree}
42+
:titlesonly:
43+
:maxdepth: 2
44+
1445
Back up and restore <back-up-and-restore/index>
46+
```
47+
48+
### Monitoring
49+
50+
Integrate with observability services like Grafana through the Canonical Observability Stack (COS):
51+
52+
```{toctree}
53+
:titlesonly:
54+
:maxdepth: 2
55+
56+
Monitoring <monitoring/index>
57+
```
58+
59+
### Upgrade
60+
61+
Upgrade your MongoDB applications to a new minor revision in-place, or across major versions:
62+
63+
```{toctree}
64+
:titlesonly:
65+
:maxdepth: 3
66+
1567
Upgrade <upgrade/index>
16-
```
68+
```
69+
70+
## Delete your deployment
71+
72+
Securely decomission your deployment to avoid exposing sensitive data:
73+
74+
```{toctree}
75+
:titlesonly:
76+
77+
Decommission your deployment <decommission>
78+
```
79+
80+
For more information about security hardening, see {ref}`security`.

docs/how-to/monitoring/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
(monitoring)=
12
# Monitoring
23

34
```{toctree}

docs/how-to/upgrade/index.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1-
(how-to-upgrade)=
1+
(upgrade)=
22
# How to upgrade
33

4-
The MongoDB charm supports two kinds of upgrades:
5-
* Minor in-place upgrades of MongoDB 6 revisions via [`juju refresh`](https://documentation.ubuntu.com/juju/3.6/reference/juju-cli/list-of-juju-cli-commands/refresh/#details)
6-
* See: {ref}`minor-version-upgrade`
7-
* Major upgrade from MongoDB 6 to MongoDB 8 via cluster migration
8-
* See: {ref}`major-version-upgrade`
9-
4+
Minor in-place upgrades of MongoDB 6 revisions via [`juju refresh`](https://documentation.ubuntu.com/juju/3.6/reference/juju-cli/list-of-juju-cli-commands/refresh/#details):
105

116
```{toctree}
127
:titlesonly:
13-
:hidden:
148
159
Minor version upgrade <minor-version-upgrade/index>
10+
```
11+
12+
Major upgrade from MongoDB 6 to MongoDB 8 via cluster migration:
13+
14+
```{toctree}
15+
:titlesonly:
16+
1617
Major version upgrade <major-version-upgrade>
1718
```

docs/index.md

Lines changed: 48 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
---
2+
relatedlinks: "[Charmhub&#32;|&#32;MongoDB&#32;VM](https://charmhub.io/mongodb?channel=6/edge), [Charmhub&#32;|&#32;MongoDB&#32;K8s](https://charmhub.io/mongodb-k8s?channel=6/edge)"
3+
myst:
4+
html_meta:
5+
description: "Official documentation for Charmed MongoDB. Deploy and manage MongoDB on bare metal/virtual machines and Kubernetes using Juju."
6+
---
7+
18
# Charmed MongoDB documentation
29

310
Charmed MongoDB is an open-source software operator that deploys and operates [MongoDB](https://www.mongodb.com/) databases on IAAS/VM and Kubernetes. In addition to MongoDB's essential operations for managing production-grade deployments, Charmed MongoDB offers advanced features such as backup and restores, monitoring, easy application integrations, sharding, and encryption.
@@ -8,33 +15,60 @@ This charm is for anyone looking for a complete database management interface. T
815

916
## In this documentation
1017

11-
| | |
12-
|--|--|
13-
| {ref}`tutorial` </br> A hands-on introduction to using the Charmed MongoDB operator for new users </br> | {ref}`how-to-guides` </br> Step-by-step guides covering key operations and common tasks |
14-
| {ref}`reference` </br> Technical information - requirements, release notes | {ref}`explanation` </br> Clarification of key topics |
18+
This documentation contains practical information about installing and operating Charmed MongoDB. It covers instructions for both VM and K8s substrates.
19+
20+
### Get started
21+
22+
Learn about what's in the charm, how to try it out, and perform the most common operations.
23+
24+
* **Charm overview**: {ref}`system-requirements` • {ref}`release-notes`
25+
* **Deploy MongoDB**: {ref}`Quickstart <via-juju-cli>` • {ref}`Guided tutorial <tutorial>` • {ref}`Terraform <via-terraform>`
26+
* **Key operations**: {ref}`Scale your cluster <scale-replicas-and-shards>` • {ref}`Connect to a client <manage-client-connections>` • {ref}`Create a backup <create-a-backup>`
27+
28+
### Production deployments
29+
30+
Advanced deployments and operations focused on production scenarios and high availability.
31+
32+
* **Advanced configuration**: {ref}`Enable LDAP <enable-ldap>`
33+
* **Upgrades and data migration**: {ref}`Minor upgrades <minor-version-upgrade>` • {ref}`Upgrade from MongoDB 6 to 8 <major-version-upgrade>` • {ref}`Migrate a cluster <migrate-a-cluster>`
34+
* **Security**: {ref}`TLS encryption <enable-tls>` • {ref}`Hardening guide <hardening-guide>`
35+
* **Troubleshooting**: {ref}`Monitoring <monitoring>` • {ref}`Advanced statuses <advanced-statuses>`
36+
37+
### Charm developers
38+
39+
Information for developers looking to make their application compatible with MongoDB.
40+
41+
* **Libraries and interfaces**: [`mongodb_client` interface](https://charmhub.io/integrations/mongodb_client)
42+
* **Learn more about the charm**: {ref}`Internal users <users>` • {ref}`sharding`
43+
44+
## How this documentation is organised
45+
46+
This documentation uses the [Diátaxis documentation structure](https://diataxis.fr/):
47+
48+
* The {ref}`tutorial` provides step-by-step guidance for a beginner through the basics of a deployment in a local machine.
49+
* {ref}`how-to` are more focused, and assume you already have basic familiarity with the product.
50+
* {ref}`reference` contains structured information for quick lookup, such as system requirements and configuration parameters
51+
* {ref}`explanation` gives more background and context about key topics
1552

1653
## Project and community
1754

1855
Charmed MongoDB is an open source project that warmly welcomes community contributions, suggestions, fixes, and constructive feedback.
1956

20-
* Check our [Code of Conduct](https://ubuntu.com/community/ethos/code-of-conduct)
21-
* Raise software issues or feature requests in [GitHub](https://github.com/canonical/mongo-single-kernel-library/issues)
22-
<!-- * Report security issues through [LaunchPad](https://wiki.ubuntu.com/DebuggingSecurity#How%20to%20File). -->
23-
* Meet the community and chat with us on [Matrix](https://matrix.to/#/#charmhub-data-platform:ubuntu.com)
24-
* [Contribute](https://github.com/canonical/mongo-single-kernel-library/blob/6/edge/CONTRIBUTING.md)
25-
26-
## Licensing & trademark
57+
### Get involved
2758

28-
The Charmed MongoDB Operator is free software, distributed under the [Apache Software License, version 2.0](https://github.com/canonical/mongo-single-kernel-library/blob/6/edge/LICENSE). It installs, operates, and depends on [MongoDB Community Version](https://github.com/mongodb/mongo), which is licensed under the Server Side Public License (SSPL)
59+
* [Report an issue](https://github.com/canonical/mongo-single-kernel-library/issues/new/choose)
60+
* [Public Matrix channel](https://matrix.to/#/#charmhub-data-platform:ubuntu.com)
61+
* [Discourse forum](https://discourse.charmhub.io/tag/mongodb)
62+
* [Contribute](https://github.com/canonical/mongo-single-kernel-library/blob/6/edge/CONTRIBUTING.md)
2963

30-
MongoDB is a trademark or registered trademark of MongoDB, Inc. Other trademarks are property of their respective owners.
64+
### Governance and policies
3165

66+
* [Code of Conduct](https://ubuntu.com/community/code-of-conduct)
3267

3368
```{toctree}
3469
:titlesonly:
3570
:hidden:
3671
37-
Home <self>
3872
Tutorial <tutorial>
3973
How-to guides <how-to/index>
4074
Reference <reference/index>

docs/reference/index.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
(reference)=
22
# Reference
33

4-
This section contains technical specifications, APIs, release notes, and other reference material for fast lookup.
4+
Release notes for each stable revision of Charmed MongoDB 6 on VM and K8s:
55

66
```{toctree}
77
:titlesonly:
8+
:maxdepth: 3
89
910
Release notes <release-notes/index>
11+
```
12+
13+
Software and hardware requirements and other technical reference material:
14+
15+
```{toctree}
16+
:titlesonly:
17+
1018
System requirements <system-requirements>
1119
Charm testing <charm-testing>
1220
```

0 commit comments

Comments
 (0)