The following diagram describes how the Kubernetes Operator reconciles changes
to the MongoDBOpsManager CustomResourceDefinition on each member Kubernetes cluster.
The Kubernetes Operator creates or updates the
<om_resource_name>-db-configsecret. This secret contains the configurations that the MongoDB Agent uses to start the Application Database replica set.The Kubernetes Operator creates or updates the
<om_resource_name>-dbApplication Database StatefulSet. This StatefulSet contains at least three Pods.Each Pod runs one MongoDB Agent instance. Each MongoDB Agent starts a
mongodinstance on its Pod.The Kubernetes Operator mounts the
<om_resource_name>-db-configsecret to each Pod. The MongoDB Agent uses this secret to configure the Application Database replica set.In multi-cluster deployments, the Kubernetes Operator assigns the member cluster's index suffix to each Application Database's StatefulSet, in the form of
<om_resource_name>-db-<cluster-idx>, for example:om-db-1.
The Kubernetes Operator creates or updates the
<om_resource_name>StatefulSet. In multi-cluster deployments, the Kubernetes Operator assigns the member cluster's index suffix to each StatefulSet, in the form of<om_resource_name>-<cluster-idx>, for example:om-1.The StatefulSet contains one Pod for each Ops Manager replica. Each Ops Manager replica connects to the Application Database.
Most changes to the
MongoDBOpsManagercustom resource trigger a rolling upgrade of the Pods in the<om_resource_name>StatefulSet. Enabling TLS for the Application Database also triggers a rolling restart because the connection string to the Application Database changes. Changes tospec.backupdon't trigger a rolling upgrade.The Kubernetes Operator invokes Ops Manager APIs to create an admin user. The Kubernetes Operator saves this admin user's credentials in the
<om_resource_name>-admin-keysecret. The Kubernetes Operator uses these credentials for all other Ops Manager API invocations. This reconciliation step happens only once when you use the Kubernetes Operator to deploy a new Ops Manager resource. The Kubernetes Operator skips this step when it updates the resource.The Kubernetes Operator performs a rolling upgrade of the Pods in the
<om_resource_name>-dbApplication Database StatefulSet to enable Ops Manager to monitor it. Monitoring is enabled by default. This reconciliation step happens only once, such as when you deploy a new Ops Manager resource.If
spec.backup.enabledis true, the Kubernetes Operator creates the<om_resource_name>-backup-daemonStatefulSet or verifies that it is running. The Backup Daemon connects to the same Application Database as the Ops Manager deployment.In multi-cluster deployments, the Kubernetes Operator assigns the member cluster's index suffix to each Backup Daemon's StatefulSet, in the form of
<om_resource_name>-backup-daemon-<cluster-idx>, for example:om-backup-daemon-1.If
spec.backup.enabledis true, the Kubernetes Operator invokes Ops Manager APIs to ensure that the Ops Manager Application's backup configuration matches the one that you define in the custom resource definition.