Skip to content

Commit ed463f1

Browse files
(DOCSP-8866): PodSpec field for Ops Manager resource (#193)
* (DOCSP-8866): PodSpec field for Ops Manager resource * (DOCSP-8866): language tweaks * (DOCSP-8866): copy review feedback * (DOCSP-8866): tech review feedback
1 parent f06c171 commit ed463f1

File tree

2 files changed

+293
-17
lines changed

2 files changed

+293
-17
lines changed

source/includes/options-k8s-shared.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ default: kubernetes.io/hostname
338338
optional: true
339339
description: |
340340
341-
This sets a |k8s-rule| to spread |k8s-mdbrsc| |k8s-pods|
341+
Sets a |k8s-rule| to spread |k8s-mdbrsc| |k8s-pods|
342342
to different locations. A location can be a single node, rack, or
343343
region. This key defines which node
344344
`label <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>`__

source/reference/k8s-operator-om-specification.txt

Lines changed: 292 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ deployment:
3737
.. literalinclude:: /reference/k8s/example-ops-manager.yaml
3838
:language: yaml
3939
:linenos:
40-
40+
4141
Required |onprem| Resource Settings
4242
-----------------------------------
4343

@@ -123,9 +123,9 @@ Optional |onprem| Resource Settings
123123
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.memory`
124124
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.memoryRequests`
125125
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.persistence.single`
126-
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.persistence.multiple.data`
127-
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.persistence.multiple.journal`
128-
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.persistence.multiple.logs`
126+
- ``spec.applicationDatabase.podSpec.persistence.multiple.``:setting:`~spec.podSpec.persistence.multiple.data`
127+
- ``spec.applicationDatabase.podSpec.persistence.multiple.``:setting:`~spec.podSpec.persistence.multiple.journal`
128+
- ``spec.applicationDatabase.podSpec.persistence.multiple.``:setting:`~spec.podSpec.persistence.multiple.logs`
129129
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.podAffinity`
130130
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.podAntiAffinityTopologyKey`
131131
- ``spec.applicationDatabase.podSpec.``:setting:`~spec.podSpec.nodeAffinity`
@@ -140,6 +140,26 @@ Optional |onprem| Resource Settings
140140
- :setting:`spec.opsManager.configMapRef.name`
141141
- :setting:`spec.credentials`
142142

143+
.. opsmgrkube:: spec.applicationDatabase.passwordSecretKeyRef.name
144+
145+
*Type*: string
146+
147+
Name of the :ref:`secret <om-db-user-secret>` that contains the
148+
password for the |onprem| database user ``mongodb-ops-manager``.
149+
|onprem| uses this password to :ref:`authenticate to the Application
150+
Database <app-db-auth>`.
151+
152+
.. opsmgrkube:: spec.applicationDatabase.passwordSecretKeyRef.key
153+
154+
*Type*: string
155+
156+
Name of the field in the :ref:`secret <om-db-user-secret>` that
157+
contains the password for the |onprem| database user
158+
``mongodb-ops-manager``. |onprem| uses this password to
159+
:ref:`authenticate to the Application Database <app-db-auth>`.
160+
161+
The default value is ``password``.
162+
143163
.. opsmgrkube:: spec.applicationDatabase.version
144164

145165
*Type*: number
@@ -269,6 +289,136 @@ Optional |onprem| Resource Settings
269289
:manual:`dbAdminAnyDatabase
270290
</reference/built-in-roles/#dbAdminAnyDatabase>` roles.
271291

292+
.. opsmgrkube:: spec.backup.podSpec.cpu
293+
294+
*Type*: string
295+
296+
Maximum CPU capacity that must be available on a |k8s|
297+
|k8s-node| to host the :ref:`backup-daemon`.
298+
299+
This value maps to the
300+
:k8sdocs:`limits field </reference/generated/kubernetes-api/v1.10/#resourcerequirements-v1-core>`
301+
for CPU for the created pod.
302+
303+
.. opsmgrkube:: spec.backup.podSpec.cpuRequests
304+
305+
*Type*: string
306+
307+
Minimum CPU capacity for the |k8s-node| being created to host
308+
the :ref:`backup-daemon`. If omitted, this value is set to
309+
:opsmgrkube:`spec.backup.podSpec.cpu`.
310+
311+
This value maps to the
312+
:k8sdocs:`requests field </reference/generated/kubernetes-api/v1.11/#resourcerequirements-v1-core>`
313+
for CPU for the created pod.
314+
315+
The requested value must be less than or equal to
316+
:opsmgrkube:`spec.backup.podSpec.cpu`.
317+
318+
.. opsmgrkube:: spec.backup.podSpec.memory
319+
320+
*Type*: string
321+
322+
Maximum memory capacity that must be available on a
323+
|k8s| |k8s-node| to host the :ref:`backup-daemon` on |k8s|. This
324+
value is expressed as an integer followed by a unit of memory in
325+
|jedec| notation.
326+
327+
This value maps to the
328+
:k8sdocs:`limits field </reference/generated/kubernetes-api/v1.10/#resourcerequirements-v1-core>`
329+
for memory for the created pod.
330+
331+
.. opsmgrkube:: spec.backup.podSpec.memoryRequests
332+
333+
*Type*: string
334+
335+
Minimum memory capacity for the |k8s-node| being created to host
336+
the :ref:`backup-daemon`. If omitted, this value is set to
337+
:opsmgrkube:`spec.backup.podSpec.memory`.
338+
339+
This value maps to the
340+
:k8sdocs:`requests field </reference/generated/kubernetes-api/v1.10/#resourcerequirements-v1-core>`
341+
for memory for the created pod.
342+
343+
The requested value must be less than or equal to
344+
:opsmgrkube:`spec.backup.podSpec.memory`.
345+
346+
.. note::
347+
348+
Set this value to at least ``4.5G``. Values of less than ``4.5G``
349+
might result in an error.
350+
351+
.. opsmgrkube:: spec.backup.podSpec.nodeAffinity
352+
353+
*Type*: collection
354+
355+
|k8s| |k8s-rule| to place the :ref:`backup-daemon` |k8s-pods| on a
356+
specific range of |k8s-nodes|.
357+
358+
.. example::
359+
360+
A user can isolate "dev" and "testing" environments to ensure
361+
|k8s-pods| go to |k8s-nodes| with appropriate labels.
362+
363+
.. opsmgrkube:: spec.backup.podSpec.podAffinity
364+
365+
*Type*: collection
366+
367+
|k8s| |k8s-rule| to determine if multiple
368+
:ref:`backup-daemon` |k8s-pods| must be co-located with other |k8s-pods|.
369+
370+
.. seealso::
371+
372+
The |k8s| documentation for use cases on
373+
`affinity and anti-affinity <https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#more-practical-use-cases>`__
374+
375+
.. opsmgrkube:: spec.backup.podSpec.podTemplate
376+
377+
*Type*: collection
378+
379+
:k8sdocs:`Template </concepts/workloads/pods/pod-overview/#pod-templates>`
380+
for the |k8s| pods that the |k8s-op| creates for the the
381+
:ref:`backup-daemon`.
382+
383+
Template values take precedence over values specified in
384+
``spec.backup.podSpec``.
385+
386+
.. note::
387+
388+
The |k8s-op-short| doesn't validate the fields you provide
389+
in :opsmgrkube:`spec.backup.podSpec.podTemplate`.
390+
391+
.. opsmgrkube:: spec.backup.podSpec.podTemplate.metadata
392+
393+
*Type*: collection
394+
395+
Metadata for the |k8s| pods that the |k8s-op| creates for the
396+
:ref:`backup-daemon`.
397+
398+
To review which fields you can add to
399+
:opsmgrkube:`spec.backup.podSpec.podTemplate.metadata`, see
400+
the :k8sdocs:`Kubernetes documentation
401+
</reference/generated/kubernetes-api/v1.11/#objectmeta-v1-meta>`.
402+
403+
.. opsmgrkube:: spec.backup.podSpec.podTemplate.spec
404+
405+
*Type*: collection
406+
407+
Specifications of the |k8s| pods that the |k8s-op| creates for
408+
the :ref:`backup-daemon`.
409+
410+
To review which fields you can add to
411+
:opsmgrkube:`spec.backup.podSpec.podTemplate.spec`, see the
412+
:k8sdocs:`Kubernetes documentation
413+
</reference/generated/kubernetes-api/v1.11/#podspec-v1-core>`.
414+
415+
.. note::
416+
417+
When you add containers to
418+
``spec.backup.podSpec.podTemplate.spec.containers``,
419+
the |k8s-op-short| adds them to the |k8s| pod. These containers are
420+
appended to the :ref:`backup-daemon` containers in the pod.
421+
272422
.. opsmgrkube:: spec.backup.s3Stores.name
273423

274424
*Type*: string
@@ -500,22 +650,148 @@ Optional |onprem| Resource Settings
500650
</concepts/services-networking/service/#ssl-support-on-aws>`, see the
501651
|k8s| documentation.
502652

503-
.. opsmgrkube:: spec.applicationDatabase.passwordSecretKeyRef.name
653+
.. opsmgrkube:: spec.podSpec.cpu
504654

505655
*Type*: string
506656

507-
Name of the :ref:`secret <om-db-user-secret>` that contains the
508-
password for the |onprem| database user ``mongodb-ops-manager``.
509-
|onprem| uses this password to :ref:`authenticate to the Application
510-
Database <app-db-auth>`.
511-
512-
.. opsmgrkube:: spec.applicationDatabase.passwordSecretKeyRef.key
657+
Maximum CPU capacity that must be available on a |k8s|
658+
|k8s-node| to host |onprem| on |k8s|.
659+
660+
This value maps to the
661+
:k8sdocs:`limits field </reference/generated/kubernetes-api/v1.10/#resourcerequirements-v1-core>`
662+
for CPU for the created pod.
663+
664+
.. opsmgrkube:: spec.podSpec.cpuRequests
513665

514666
*Type*: string
515667

516-
Name of the field in the :ref:`secret <om-db-user-secret>` that
517-
contains the password for the |onprem| database user
518-
``mongodb-ops-manager``. |onprem| uses this password to
519-
:ref:`authenticate to the Application Database <app-db-auth>`.
668+
Minimum CPU capacity for the |k8s-node| being created to host
669+
|onprem| on |k8s|. If omitted, this value is set to
670+
:opsmgrkube:`spec.podSpec.cpu`.
671+
672+
This value maps to the
673+
:k8sdocs:`requests field </reference/generated/kubernetes-api/v1.11/#resourcerequirements-v1-core>`
674+
for CPU for the created pod.
675+
676+
The requested value must be less than or equal to
677+
:opsmgrkube:`spec.podSpec.cpu`.
678+
679+
.. opsmgrkube:: spec.podSpec.memory
680+
681+
*Type*: string
682+
683+
Maximum memory capacity that must be available on a
684+
|k8s| |k8s-node| to host |onprem| on |k8s|. This value is
685+
expressed as an integer followed by a unit of memory in
686+
|jedec| notation.
687+
688+
.. example::
689+
690+
If |onprem| on |k8s| requires 6 gigabytes of memory, set
691+
this value to ``6G``.
692+
693+
This value maps to the
694+
:k8sdocs:`limits field </reference/generated/kubernetes-api/v1.10/#resourcerequirements-v1-core>`
695+
for memory for the created pod.
696+
697+
.. opsmgrkube:: spec.podSpec.memoryRequests
698+
699+
*Type*: string
700+
701+
Minimum memory capacity for the |k8s-node| being created to host
702+
|onprem| on |k8s|. If omitted, this value is set to
703+
:opsmgrkube:`spec.podSpec.memory`.
704+
705+
This value maps to the
706+
:k8sdocs:`requests field </reference/generated/kubernetes-api/v1.10/#resourcerequirements-v1-core>`
707+
for memory for the created pod.
708+
709+
The requested value must be less than or equal to
710+
:opsmgrkube:`spec.podSpec.memory`.
711+
712+
.. note::
713+
714+
MongoDB recommends setting this value to at least ``5G``.
715+
716+
.. opsmgrkube:: spec.podSpec.podAntiAffinityTopologyKey
717+
718+
*Type*: string
719+
720+
Sets a |k8s-rule| to spread |onprem| |k8s-pods|
721+
to different locations. A location can be a single node, rack, or
722+
region. This key defines which node
723+
`label <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>`__
724+
is used to `determine equal location <https://kubernetes.io/docs/concepts/configuration/assign-pod-node/>`__
725+
for nodes. By default, |k8s-op-short| tries to spread pods across
726+
different hosts.
727+
728+
.. opsmgrkube:: spec.podSpec.nodeAffinity
729+
730+
*Type*: collection
731+
732+
|k8s| |k8s-rule| to place |onprem| |k8s-pods| on a
733+
specific range of |k8s-nodes|.
734+
735+
.. example::
736+
737+
A user can isolate "dev" and "testing" environments to ensure
738+
|k8s-pods| go to |k8s-nodes| with appropriate labels.
739+
740+
.. opsmgrkube:: spec.podSpec.podAffinity
741+
742+
*Type*: collection
743+
744+
|k8s| |k8s-rule| to determine if multiple
745+
|onprem| |k8s-pods| must be co-located with other |k8s-pods|.
746+
747+
.. seealso::
748+
749+
The |k8s| documentation for use cases on
750+
`affinity and anti-affinity <https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#more-practical-use-cases>`__
751+
752+
.. opsmgrkube:: spec.podSpec.podTemplate
753+
754+
*Type*: collection
755+
756+
:k8sdocs:`Template </concepts/workloads/pods/pod-overview/#pod-templates>`
757+
for the |k8s| pods that the |k8s-op| creates for |onprem| on |k8s|.
758+
759+
Template values take precedence over values specified in
760+
``spec.podSpec``.
761+
762+
.. note::
763+
764+
The |k8s-op-short| doesn't validate the fields you provide
765+
in :opsmgrkube:`spec.podSpec.podTemplate`.
766+
767+
.. opsmgrkube:: spec.podSpec.podTemplate.metadata
768+
769+
*Type*: collection
770+
771+
Metadata for the |k8s| pods that the |k8s-op| creates for |onprem| on
772+
|k8s|.
773+
774+
To review which fields you can add to
775+
:opsmgrkube:`spec.podSpec.podTemplate.metadata`, see the
776+
:k8sdocs:`Kubernetes documentation
777+
</reference/generated/kubernetes-api/v1.11/#objectmeta-v1-meta>`.
778+
779+
.. opsmgrkube:: spec.podSpec.podTemplate.spec
780+
781+
*Type*: collection
782+
783+
Specifications of the |k8s| pods that the |k8s-op| creates for
784+
|onprem| on |k8s|.
785+
786+
To review which fields you can add to
787+
:opsmgrkube:`spec.podSpec.podTemplate.spec`, see the
788+
:k8sdocs:`Kubernetes documentation
789+
</reference/generated/kubernetes-api/v1.11/#podspec-v1-core>`.
790+
791+
.. note::
792+
793+
When you add containers to
794+
``spec.podSpec.podTemplate.spec.containers``,
795+
the |k8s-op-short| adds them to the |k8s| pod. These containers are
796+
appended to the |onprem| containers in the pod.
520797

521-
The default value is ``password``.

0 commit comments

Comments
 (0)