Docs Menu

Docs HomeMongoDB Enterprise Kubernetes Operator

Prerequisites

On this page

  • Procedure

To install the MongoDB Kubernetes Operator, you must:

1

If you need a Kubernetes solution, see the Kubernetes documentation on picking the right solution. Review supported hardware architectures.

2
git clone https://github.com/mongodb/mongodb-enterprise-kubernetes.git

Note

You can use Helm to install the Kubernetes Operator. To learn how to install Helm, see its documentation on GitHub.

3

By default, The Kubernetes Operator uses the mongodb namespace. To simplify your installation, consider creating a namespace labeled mongodb using the following kubectl command:

kubectl create namespace mongodb

If you do not want to use the mongodb namespace, you can label your namespace anything you like:

kubectl create namespace <namespaceName>

Tip

See also:

4

If you don't deploy an Ops Manager resource with the Kubernetes Operator, you must have an Ops Manager running outside of your Kubernetes cluster. If you will deploy an Ops Manager resource in Kubernetes with the Kubernetes Operator, skip this prerequisite.

Important

Your Ops Manager installation must run an active NTP service. If the Ops Manager host's clock falls out of sync, that host can't communicate with the Kubernetes Operator.

To learn how to check your NTP service for your Ops Manager host, see the documentation for RHEL.

5

If you use the Kubernetes Operator to deploy MongoDB resources to multiple namespaces or with a cluster-wide scope, create the secret only in the namespace where you intend to deploy the Kubernetes Operator. The Kubernetes Operator synchronizes the secret across all watched namespaces.

  1. If you have not already, obtain a Red Hat subscription.

  2. Create a Registry Service Account.

  3. Click on your Registry Service Account, then click the Docker Configuration tab.

  4. Download the <account-name>-auth.json file and open it in a text editor.

  5. Copy the registry.redhat.io object, and paste another instance of this object into the file. Remember to add a comma after the first object. Rename the second object registry.connect.redhat.com, then save the file:

    {
    "auths": {
    "registry.redhat.io": {
    "auth": "<encoded-string>"
    },
    "registry.connect.redhat.com": {
    "auth": "<encoded-string>"
    }
    }
    }
  6. Create an openshift-pull-secret.yaml file and add the contents of the modified <account-name>-auth.json file as stringData named .dockerconfigjson to the openshift-pull-secret.yaml secret file.

    apiVersion: v1
    kind: Secret
    metadata:
    name: openshift-pull-secret
    stringData:
    .dockerconfigjson: |
    {
    "auths": {
    "registry.redhat.io": {
    "auth": "<encoded-string>"
    },
    "registry.connect.redhat.com": {
    "auth": "<encoded-string>"
    }
    }
    }
    type: kubernetes.io/dockerconfigjson

    The value you provide in the metadata.name field contains the secret name. Provide this value when asked for the <openshift-pull-secret>.

  7. Create a secret from the openshift-pull-secret.yaml file in the same namespace in which you will deploy the Kubernetes Operator.

    oc apply -f openshift-pull-secret.yaml -n <metadata.namespace>
←  ConsiderationsInstall the MongoDB Enterprise Kubernetes Operator →

On this page