Skip to content

Commit 4341546

Browse files
authored
(DOCSP-32064) AppDB for multi-clusters, configuring and new spec params (#1427)
* (DOCSP-32064) AppDB for multi-clusters, configuring and new spec params * Fixed syntax, added topology and clusterSpecList to OM resource spec * Remove the minitoc per discussion with John W * Added multi-cluster appdb config examples to steps * Tech review. Made topology an optional param. Fixed the multi-cluster specific prereqs, to mention appdb deployment on all member clusters. Updated examples to remove members config when topology is set to multiCluster. Ready for a second review by Mircea. * Moved topology to the list of optional params, per review * Last comments from Lukasz and John W before this PR is ready for merging * Undoing some changes as they must have been done on the other PR * Included comments from Lukasz and Mircea * Include comments from Raj * Last comment from Lukasz * Last copy revie from John W * Final copy edits, ready for merge
1 parent d7b9661 commit 4341546

19 files changed

+402
-107
lines changed

conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@
218218
'.. |service-fullname| replace:: MongoDB Atlas',
219219
'.. |service-pricing| replace:: Atlas pricing page',
220220
'.. |service| replace:: Atlas',
221+
'.. |mdb-support| replace:: `MongoDB Support <https://support.mongodb.com/welcome>`__',
221222
'.. |svc-api-key| replace:: Programmatic API Key',
222223
'.. |sms| replace:: :abbr:`SMS (short message service)`',
223224
'.. |sni| replace:: :abbr:`SNI (Server Name Indication)`',

snooty.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ mdbtools-version = "100.1.0"
1616
mdbagent = "MongoDB Agent"
1717
appdb-agent-version = "10.2.15.5958-1_4.2.11-ent"
1818
mdb-ent-db = "MongoDB Enterprise Database"
19-
mdb-ent-db-version = "2.0.0"
19+
mdb-ent-db-version = "2.0.0"

source/faq.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,4 @@ Can I deploy MongoDB Server across multiple |k8s| clusters?
7272
-----------------------------------------------------------
7373

7474
Yes. To learn more, see :ref:`Deploy MongoDB Resources on Multiple Kubernetes Clusters <multi-cluster>`.
75-
For help, `contact MongoDB Support <https://cloud.mongodb.com/links/support>`__.
75+
For help, contact `MongoDB Support <https://support.mongodb.com/welcome>`__

source/includes/admonitions/note-om-context-scope-multi-cluster.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
If you are deploying an |onprem| resource on a |multi-cluster|:
1+
If you are deploying an |onprem| resource in a |multi-cluster|:
22

33
- Set the ``context`` to the name of the central cluster, such as:
44
``kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME"``.

source/includes/admonitions/note-om-external-connectivity-multi-cluster.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ central cluster in a |multi-cluster|, use one of the following methods:
1414
--namespace "mongodb" \
1515
-f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/master/samples/ops-manager/ops-manager-external.yaml
1616
17-
- Add the central cluster and all member clusters to the service mesh.
18-
The service mesh establishes communication from the central and all
17+
- Add the central cluster and all member clusters to the same service mesh.
18+
The service mesh establishes communication from the the central and all
1919
member clusters to the |onprem| instance. To learn more, see the
2020
:ref:`Multi-Kubernetes-Cluster Quick Start <multi-cluster-quick-start-ref>`
2121
procedures and see the step that references the ``istio-injection=enabled``
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
You can't convert a single cluster |onprem| instance to a
2+
|multi-cluster| instance by modifying the
3+
:opsmgrkube:`topology <spec.applicationDatabase.topology>` and
4+
the :opsmgrkube:`clusterSpecList <spec.applicationDatabase.clusterSpecList>`
5+
settings in the CRD.

source/includes/facts/fact-om-in-multi-clusters-summary-of-diffs.rst

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,42 @@ use the following procedures:
88
These procedures are the same as the procedures for single clusters
99
deployed with the |k8s-op-short| with the following exceptions:
1010

11-
- Run the procedures to deploy |onprem| only on the central cluster of your |multi-cluster|.
12-
13-
- Set the context and the |k8s-ns|.
11+
- **Set the context and the namespace.**
1412

1513
.. include:: /includes/admonitions/note-om-context-scope-multi-cluster.rst
1614

17-
- Configure external connectivity for |onprem|.
15+
- **Configure external connectivity for Ops Manager.**
1816

1917
.. include:: /includes/admonitions/note-om-external-connectivity-multi-cluster.rst
18+
19+
- **Deploy Ops Manager and the Application Database on the central cluster.**
20+
21+
You can choose to deploy |onprem| and the Application Database only on the central cluster,
22+
using the same procedure as for single |k8s| clusters. To learn more,
23+
see :ref:`Deploy an Ops Manager instance on the central cluster with TLS encryption <deploy-om-container>`.
24+
25+
- **Deploy Ops Manager on the central cluster and the Application Database on selected member clusters.**
26+
27+
You can choose to deploy |onprem| on the central cluster and the Application
28+
Database on a subset of selected member clusters, to increase the
29+
Application Database's resilience and availability in |onprem|. Configure
30+
the following settings in the |onprem| CRD:
31+
32+
- Use :opsmgrkube:`topology <spec.applicationDatabase.topology>` to specify the ``MultiCluster`` value.
33+
34+
- Specify the :opsmgrkube:`clusterSpecList <spec.applicationDatabase.clusterSpecList>` and
35+
include in it the :opsmgrkube:`clusterName <spec.applicationDatabase.clusterSpecList.clusterName>`
36+
of each selected |k8s| member cluster on which you want to deploy the Application Database, and the
37+
number of :opsmgrkube:`members <spec.applicationDatabase.clusterSpecList.clusterName.members>`
38+
(MongoDB nodes) in each |k8s| member cluster.
39+
40+
.. note::
41+
42+
If you deploy the Application Database on selected member clusters in
43+
your |multi-cluster|, you must include the central cluster and
44+
member clusters in the same service mesh configuration. This enables
45+
bi-directional communication from |onprem| to the Application Database.
46+
47+
To learn more, see :ref:`Deploy Ops Manager <deploy-om-container>`,
48+
review the |multi-cluster| example and specify ``MultiCluster`` for
49+
:opsmgrkube:`topology <spec.applicationDatabase.topology>`.

source/includes/steps-deploy-k8s-opsmgr-http.yaml

Lines changed: 71 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,38 @@ inherit:
55
file: steps-configure-kubectl-namespace.yaml
66
ref: configure-kubectl-namespace
77
---
8-
title: "Copy the following example |onprem| |k8s| |k8s-obj|."
8+
title: "Copy one of the following |onprem| |k8s| |k8s-obj| examples."
99
stepnum: 2
1010
level: 4
1111
ref: copy-k8s-example
1212
content: |
1313
14-
Change the highlighted settings to match your desired
15-
|onprem| configuration.
14+
Change the settings to match your |onprem| configuration.
1615
17-
.. literalinclude:: /reference/k8s/example-opsmgr-minimal.yaml
18-
:language: yaml
19-
:linenos:
16+
.. tabs::
17+
18+
.. tab:: Single Kubernetes Cluster
19+
:tabid: single-cluster-tls
20+
21+
.. literalinclude:: /reference/k8s/example-opsmgr-minimal.yaml
22+
:language: yaml
23+
:linenos:
24+
25+
26+
.. tab:: Multi-Kubernetes Cluster
27+
:tabid: multi-cluster-tls
28+
29+
.. literalinclude:: /reference/k8s/example-opsmgr-multi-cluster-http.yaml
30+
:language: yaml
31+
:linenos:
2032
2133
---
2234
title: "Open your preferred text editor and paste the |k8s-obj| specification into a new text file."
2335
stepnum: 3
2436
level: 4
2537
ref: paste-k8s-example
2638
---
27-
title: "Configure the settings included in the prior example."
39+
title: "Configure the settings included in the previous example."
2840
stepnum: 4
2941
level: 4
3042
ref: change-k8s-values
@@ -132,6 +144,33 @@ content: |
132144
133145
- .. include:: /includes/facts/fact-which-appdb-version.rst
134146
147+
* - | ``spec``
148+
| ``.applicationDatabase``
149+
| ``.``:opsmgrkube:`~spec.applicationDatabase.topology`
150+
- string
151+
- *Optional*.
152+
153+
The type of the |k8s| deployment for the Application Database.
154+
If omitted, the default is ``SingleCluster``.
155+
156+
If you specify ``MultiCluster``, the |k8s-op-short| ignores
157+
values that you set for the
158+
:setting:`spec.applicationDatabase.members <spec.members>`
159+
field, if specified.
160+
161+
Instead, you must specify the :opsmgrkube:`clusterSpecList <spec.applicationDatabase.clusterSpecList>`
162+
and include in it the :opsmgrkube:`clusterName <spec.applicationDatabase.clusterSpecList.clusterName>`
163+
of each selected |k8s| member cluster on which you want to deploy the Application Database, and
164+
the number of :opsmgrkube:`members <spec.applicationDatabase.clusterSpecList.clusterName.members>`
165+
(MongoDB nodes) in each |k8s| cluster.
166+
167+
.. note::
168+
169+
.. include:: /includes/facts/fact-cannot-convert-om-crd-multi.rst
170+
171+
See also the :ref:`example of the resource specification <om_resource_spec_example_multi_cluster>`.
172+
173+
- ``MultiCluster``
135174
---
136175
title: "Configure backup settings."
137176
stepnum: 5
@@ -175,7 +214,9 @@ content: |
175214
| ``.mongodbResourceRef``
176215
| ``.``:opsmgrkube:`~spec.backup.opLogStores.mongodbResourceRef.name`
177216
- string
178-
- Name of the MongoDB database resource for the oplog store.
217+
- Name of the |k8s-mdbrsc| or |mongodb-multi| for the oplog store.
218+
The resource's ``metadata.name`` must match this name.
219+
179220
- ``my-oplog-db``
180221
181222
You must also configure an :term:`S3 snapshot store <s3 snapshot store>`
@@ -273,9 +314,9 @@ content: |
273314
| ``.mongodbResourceRef``
274315
| ``.``:opsmgrkube:`~spec.backup.blockStores.mongodbResourceRef.name`
275316
- string
276-
- Name of the MongoDB database resource that you create for the
277-
blockstore. You must deploy this database resource in the same
278-
namespace as the |onprem| resource.
317+
- Name of the |k8s-mdbrsc| that you create for the blockstore.
318+
You must deploy this database resource in the same namespace as
319+
the |onprem| resource. The resource's ``metadata.name`` must match this name.
279320
- ``my-mongodb-blockstore``
280321
---
281322
title: "Configure any additional settings for an |onprem| backup."
@@ -348,7 +389,7 @@ content: |
348389
349390
status:
350391
applicationDatabase:
351-
lastTransition: "2020-04-01T09:49:22Z"
392+
lastTransition: "2022-04-01T09:49:22Z"
352393
message: AppDB Statefulset is not ready yet
353394
phase: Reconciling
354395
type: ""
@@ -376,22 +417,22 @@ content: |
376417
377418
status:
378419
applicationDatabase:
379-
lastTransition: "2020-04-01T09:50:20Z"
420+
lastTransition: "2022-04-01T09:50:20Z"
380421
members: 3
381422
phase: Running
382423
type: ReplicaSet
383-
version: "4.4.5-ubi8"
424+
version: "6.0.5-ubi8"
384425
backup:
385-
lastTransition: "2020-04-01T09:57:42Z"
426+
lastTransition: "2022-04-01T09:57:42Z"
386427
message: The MongoDB object <namespace>/<oplogresourcename>
387428
doesn't exist
388429
phase: Pending
389430
opsManager:
390-
lastTransition: "2020-04-01T09:57:40Z"
431+
lastTransition: "2022-04-01T09:57:40Z"
391432
phase: Running
392433
replicas: 1
393434
url: http://om-svc.cloudqa.svc.cluster.local:8080
394-
version: "5.0.0"
435+
version: "6.0.17"
395436
396437
Backup remains in a ``Pending`` state until you configure the backup
397438
databases.
@@ -459,7 +500,7 @@ content: |
459500
service, refer to the documentation for your solution.
460501
461502
---
462-
title: "Create credentials for the Kubernetes Operator."
503+
title: "Create credentials for the |k8s-op-short|."
463504
stepnum: 12
464505
level: 4
465506
optional: true
@@ -489,30 +530,30 @@ content: |
489530
kubectl get om -o yaml -w
490531
491532
The command returns the URL of the |application| in the
492-
``status.opsManager.url`` field.
533+
``status.opsManager.url`` field, similar to the following example:
493534
494535
.. code-block:: yaml
495536
:copyable: false
496537
:emphasize-lines: 17
497538
498539
status:
499540
applicationDatabase:
500-
lastTransition: "2020-04-01T10:00:32Z"
541+
lastTransition: "2022-04-01T10:00:32Z"
501542
members: 3
502543
phase: Running
503544
type: ReplicaSet
504-
version: "4.4.5-ubi8"
545+
version: "6.0.5-ubi8"
505546
backup:
506-
lastTransition: "2020-04-01T09:57:42Z"
547+
lastTransition: "2022-04-01T09:57:42Z"
507548
message: The MongoDB object <namespace>/<oplogresourcename>
508549
doesn't exist
509550
phase: Pending
510551
opsManager:
511-
lastTransition: "2020-04-01T09:57:40Z"
552+
lastTransition: "2022-04-01T09:57:40Z"
512553
phase: Running
513554
replicas: 1
514555
url: http://om-svc.cloudqa.svc.cluster.local:8080
515-
version: "5.0.0"
556+
version: "6.0.17"
516557
517558
.. include:: /includes/admonitions/data-url-config-map-external-dbs.rst
518559
@@ -579,21 +620,21 @@ content: |
579620
580621
status:
581622
applicationDatabase:
582-
lastTransition: "2020-04-01T10:00:32Z"
623+
lastTransition: "2022-04-01T10:00:32Z"
583624
members: 3
584625
phase: Running
585626
type: ReplicaSet
586-
version: "4.4.5-ubi8"
627+
version: "6.0.5-ubi8"
587628
backup:
588-
lastTransition: "2020-04-01T10:00:53Z"
629+
lastTransition: "2022-04-01T10:00:53Z"
589630
phase: Running
590-
version: "4.2.8"
631+
version: "6.0.5-ubi8"
591632
opsManager:
592-
lastTransition: "2020-04-01T10:00:34Z"
633+
lastTransition: "2022-04-01T10:00:34Z"
593634
phase: Running
594635
replicas: 1
595636
url: http://om-svc.cloudqa.svc.cluster.local:8080
596-
version: "5.0.0"
637+
version: "6.0.17"
597638
598639
See :doc:`/reference/troubleshooting` for information about the
599640
resource deployment statuses.

0 commit comments

Comments
 (0)