Skip to content

Commit 4291de9

Browse files
jvincent-mongodbjwilliams-mongo
authored andcommitted
DOCSP-43361 -- Multi-Cluster Sharded Cluster Public Preview (#1840)
* DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- WIP * DOCSP-43361 -- create Common Operator Spec Objects page * DOCSP-43361 -- refactor clusterSpecItem fields in reference docs * DOCSP-43361 -- refactor clusterSpecItem fields in reference docs * DOCSP-43361 -- refactor clusterSpecItem fields in reference docs * DOCSP-43361 -- add public preview banner to reference docs * DOCSP-43361 -- review revisions * DOCSP-43361 -- copy review revisions * DOCSP-43361 -- reorganize according to topology=MultiCluster * DOCSP-43361 -- add admonition * DOCSP-43361 -- add admonition * DOCSP-43361 -- external review revisions * DOCSP-43361 -- move warning label * DOCSP-43361 -- update all instances of to
1 parent 3e494ec commit 4291de9

19 files changed

+398
-2
lines changed

snooty.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ k8s-secret = "`secret <https://kubernetes.io/docs/concepts/configuration/secret/
165165
k8s-service = "`service <https://kubernetes.io/docs/concepts/services-networking/service/>`__"
166166
k8s-service-accounts = "`service accounts <https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/>`__"
167167
k8s-service-type = "`ServiceType <https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types>`__"
168-
k8s-statefulsets = "`StatefulSets <https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/>`__"
168+
k8s-statefulsets = "`statefulSets <https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/>`__"
169169
k8s-statefulset = "`StatefulSet <https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/>`__"
170170
k8s-webhook = "`Webhook <https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#what-are-admission-webhooks>`__"
171171
k8s-healthchecks = "`Kubernetes API health endpoints <https://kubernetes.io/docs/reference/using-api/health-checks/>`__"
@@ -236,6 +236,7 @@ vault-short = "Vault"
236236
vpc = ":abbr:`VPC (Virtual Private Cloud)`"
237237
yaml = ":abbr:`YAML (Yet Another Markup Language)`"
238238

239+
239240
[[banners]]
240241
# dark mode/appearance in public preview
241242
targets = [
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.. setting:: spec.mongos.clusterSpecList
2+
3+
*Type*: array of objects
4+
5+
*Required* if ``topology=MultiCluster``
6+
7+
An array of objects for use in multi-cluster sharded cluster deployments
8+
with the following top-level fields:
9+
10+
.. include:: /includes/setting-k8s-spec.clusterSpecList.clusterName.rst
11+
12+
.. include:: /includes/setting-k8s-spec.clusterSpecList.externalAccess.rst
13+
14+
.. include:: /includes/setting-k8s-spec.clusterSpecList.members.rst
15+
16+
.. include:: /includes/setting-k8s-spec.clusterSpecList.memberConfig.rst
17+
18+
.. include:: /includes/setting-k8s-spec.clusterSpecList.statefulSet.rst
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.. setting:: clusterSpecItem
2+
3+
*Type*: collection
4+
5+
Cluster specification object passed as a single item in an array of objects to ``clusterSpecList``.
6+
Top level fields in this object include:
7+
8+
.. include:: /includes/setting-k8s-spec.clusterSpecList.clusterName.rst
9+
10+
.. include:: /includes/setting-k8s-spec.clusterSpecList.externalAccess.rst
11+
12+
.. include:: /includes/setting-k8s-spec.clusterSpecList.members.rst
13+
14+
.. include:: /includes/setting-k8s-spec.clusterSpecList.memberConfig.rst
15+
16+
.. include:: /includes/setting-k8s-spec.clusterSpecList.podSpec.rst
17+
18+
.. include:: /includes/setting-k8s-spec.clusterSpecList.statefulSet.rst
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.. _multi-spec-agent-clusterspeclist-clustername:
2+
3+
``clusterName``
4+
*Type*: string
5+
6+
Name of the cluster where the |k8s-op| schedules the |k8s-statefulset|.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
.. _multi-spec-clusterspeclist-externaldomain:
2+
3+
``spec.clusterSpecList.externalAccess.externalDomain``
4+
*Type*: string
5+
6+
.. |hostname-format| replace:: ``<replica-set-name>-<cluster-idx>-<pod-idx>.<externalDomain>``
7+
8+
.. |hostname-example| replace:: ``multi-replica-set-0-1.cluster-0.example.com``
9+
10+
.. include:: /includes/facts/fact-external-domain-spec.rst
11+
12+
.. important::
13+
14+
Use this setting only when deploying a |multi-cluster| replica set *without
15+
a service mesh*. See :ref:`multi-cluster-no-service-mesh-deploy-rs`.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.. _multi-spec-externalaccess:
2+
3+
``externalAccess``
4+
*Type*: collection
5+
6+
Specification to expose your |multi-cluster| for external connections.
7+
To learn how to connect to your |multi-cluster| from outside
8+
of the |k8s| cluster, see :ref:`multi-cluster-connect-from-outside-k8s`.
9+
10+
These settings apply to services across all clusters.
11+
To override these global settings in a specific cluster, use
12+
:ref:`spec.clusterSpecList.externalAccess.externalService
13+
<multi-spec-clusterspeclist-externalservice>`.
14+
15+
.. include:: /includes/facts/fact-external-access-spec.rst
16+
17+
.. note::
18+
19+
If you set :ref:`spec.clusterSpecList.externalAccess.externalDomain <multi-spec-clusterspeclist-externaldomain>`,
20+
the external service adds another port (``Port Number + 1``) for backups.
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
.. _multi-spec-clusterspeclist-memberconfig:
2+
3+
.. setting:: memberConfig
4+
5+
*Type*: collection
6+
7+
Specification for each MongoDB shard and its
8+
members in your |multi-cluster|.
9+
10+
The order of the elements in the object for shard
11+
must reflect the order of members in the replica set. For example,
12+
the first element affects the Pod at index ``0``, the second
13+
element affects index ``1``, and so on.
14+
15+
.. example::
16+
17+
Consider the following example specification for a
18+
|multi-cluster| with three replica sets:
19+
20+
.. code-block:: yaml
21+
22+
apiVersion: mongodb.com/v1
23+
kind: MongoDBMultiCluster
24+
metadata:
25+
name: multi-replica-set
26+
spec:
27+
version: 6.0.0-ent
28+
type: ReplicaSet
29+
duplicateServiceObjects: false
30+
credentials: my-credentials
31+
opsManager:
32+
configMapRef:
33+
name: my-project
34+
clusterSpecList:
35+
- clusterName: cluster1.example.com
36+
members: 2
37+
memberConfig:
38+
- votes: 1
39+
priority: "0.5"
40+
tags:
41+
tag1: "value1"
42+
environment: "prod"
43+
- votes: 1
44+
priority: "1.5"
45+
tags:
46+
tag2: "value2"
47+
environment: "prod"
48+
- clusterName: cluster2.example.com
49+
members: 1
50+
memberConfig:
51+
- votes: 1
52+
priority: "0.5"
53+
tags:
54+
tag1: "value1"
55+
environment: "prod"
56+
- clusterName: cluster3.example.com
57+
members: 1
58+
memberConfig:
59+
- votes: 1
60+
priority: "0.5"
61+
tags:
62+
tag1: "value1"
63+
environment: "prod"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.. _spec-clusterspeclist-members:
2+
3+
``members``
4+
*Type*: number
5+
6+
Number of members in the MongoDB replica set.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.. _spec-clusterspeclist-podspec:
2+
3+
``podSpec.persistence``
4+
*Type*: collection
5+
6+
Only available in ``clusterSpecItem`` objects passed to
7+
``spec.configSrv.clusterSpecList`` and ``spec.shard.clusterSpecList``.
8+
Overrides the existing :ref:`persistence <pod-spec-persistence>` configuration
9+
for a given cluster.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
.. _spec-clusterspeclist-statefulset:
2+
3+
``statefulSet``
4+
*Type*: collection
5+
6+
Provides the configuration for the |k8s-statefulset| override for each of
7+
the cluster's StatefulSets in a |multi-cluster|. To set the global configuration that
8+
applies to all clusters in your |multi-cluster|, see :ref:`spec.statefulSet.spec <multi-spec-statefulset-spec>`.
9+
10+
This setting applies only to replica set resource types in |multi-clusters|.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.. setting:: spec.configSrv.clusterSpecList
2+
3+
*Type*: array of objects
4+
5+
*Required* if ``topology=MultiCluster``
6+
7+
An array of objects for use in multi-cluster sharded cluster deployments
8+
with the following top-level fields:
9+
10+
.. include:: /includes/setting-k8s-spec.clusterSpecList.clusterName.rst
11+
12+
.. include:: /includes/setting-k8s-spec.clusterSpecList.externalAccess.rst
13+
14+
.. include:: /includes/setting-k8s-spec.clusterSpecList.members.rst
15+
16+
.. include:: /includes/setting-k8s-spec.clusterSpecList.memberConfig.rst
17+
18+
.. include:: /includes/setting-k8s-spec.clusterSpecList.podSpec.rst
19+
20+
.. include:: /includes/setting-k8s-spec.clusterSpecList.statefulSet.rst
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.. setting:: spec.duplicateServiceObjects
2+
3+
*Type*: boolean
4+
5+
*Optional*
6+
7+
*Default*: ``true``
8+
9+
Ignored if topology is not ``MultiCluster``. Applies to services for the all
10+
sharded cluster components: ``mongos``, ``configSrv`` and ``shards``.
11+
12+
If set to ``true``:
13+
The |k8s-op-short| creates all ``Pod Services`` from all member clusters in
14+
each member cluster.
15+
16+
If set to ``false``:
17+
The |k8s-op-short| creates only
18+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.. setting:: spec.shard.clusterSpecList
2+
3+
*Type*: array of objects
4+
5+
*Required* if ``topology=MultiCluster``
6+
7+
An array of objects for use in multi-cluster sharded cluster deployments
8+
with the following top-level fields:
9+
10+
.. include:: /includes/setting-k8s-spec.clusterSpecList.clusterName.rst
11+
12+
.. include:: /includes/setting-k8s-spec.clusterSpecList.externalAccess.rst
13+
14+
.. include:: /includes/setting-k8s-spec.clusterSpecList.members.rst
15+
16+
.. include:: /includes/setting-k8s-spec.clusterSpecList.memberConfig.rst
17+
18+
.. include:: /includes/setting-k8s-spec.clusterSpecList.podSpec.rst
19+
20+
.. include:: /includes/setting-k8s-spec.clusterSpecList.statefulSet.rst
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
.. setting:: spec.shardOverrides
2+
3+
*Type*: array of objects
4+
5+
*Optional*
6+
7+
List that contains overrides per shard. Each object contains
8+
the following fields:
9+
10+
- ``shardNames``
11+
12+
*Required*
13+
14+
The name of the shard this override applies to.
15+
16+
- ``podSpec.Persistence``
17+
18+
*Optional*
19+
20+
Defines how the |k8s-op-short| creates and binds persistent volumes to shards.
21+
For ``topology=MultiCluster`` it sets persistence settings for all member
22+
clusters. You can define persistence settings for a particular member
23+
cluster in ``spec.shardOverrides.clusterSpecList.persistence``.
24+
25+
- ``additionalMongodConfig``
26+
27+
*Optional*
28+
29+
Shard-specific override for ``spec.shard.additionalMongodConfig``.
30+
31+
- ``agent``
32+
33+
*Optional*
34+
35+
Shard-specific override for ``spec.shard.agent``.
36+
37+
- ``statefulSet``
38+
39+
*Optional*
40+
41+
Shard-specific override for ``spec.shardPodSpec.podTemplate``
42+
and ``spec.shard.clusterSpecList.statefulSet``.
43+
44+
- ``members``
45+
46+
*Optional*
47+
48+
Only available when ``topology=SingleCluster``. Shard-specific override
49+
for override for ``spec.mongodsPerShardCount``.
50+
51+
- ``memberConfig``
52+
53+
*Optional*
54+
55+
Only available when ``topology=SingleCluster``. Shard-specific override
56+
for ``spec.shard.memberConfig``.

source/includes/setting-k8sScConf-spec.shardPodSpec.persistence.single.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _pod-spec-persistence:
2+
13
.. setting:: spec.shardPodSpec.persistence.single
24

35
*Type*: collection
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.. setting:: spec.status.sizeStatusInClusters
2+
3+
*Type*: object
4+
5+
*Optional*
6+
7+
Only set this field if ``topology=MultiCluster``.

0 commit comments

Comments
 (0)