Use an external self-managed MongoDB with your installation
Learn how to use an external self-managed MongoDB with Self-Managed Enterprise Edition installations.
Harness Self-Managed Enterprise Edition requires you to install a database by default. You can optionally use an external self-managed database with your installation. This enables you to separate your data from node execution. To use an external self-managed MongoDB with your Harness Self-Managed Enterprise Edition installation, you must ensure that your hardware, software, and network meet the minimum requirements for installation and configuration. This tutorial describes how to deploy MongoDB with VMs and replication.
Limitations
MongoDB VMs offer many advantages, but there are a few limitations to consider:
Resource overhead: Running a VM incurs resource overhead, such as CPU and memory usage, which may impact the performance of the MongoDB database.
Hardware dependency: VM performance is influenced by the underlying hardware. Ensure that the host system provides sufficient resources for the VM to function optimally.
Complexity: Setting up and managing a VM requires knowledge and expertise in virtualization technologies.
Maintenance overhead: VMs require regular maintenance, including updates, backups, and monitoring, which adds overhead compared to a native MongoDB installation.
Hardware requirements
Harness recommends a MongoDB three member replica set configuration with the following minimum hardware:
Three nodes
Four CPU (3*4 = 12 CPU)
8GB RAM (3*8 = 24GB RAM)
300GB SSD data storage, depending on your requirements
Software requirements
External database setup requires the following software:
Supported OS: Ubuntu 20.04
Network requirements
Ensure the following:
Set allowlisting of VMs so each VM can send traffic. Add the source using MongoDB, for example, the Kubernetes cluster service range to your allowlist.
Reserve internal and external static addresses for each VM.
Architecture

MongoDB replica set configuration without region failover (single data center)
This architecture supports HA for databases. It does not support region/DR failover.

MongoDB replica set configuration with region failover setup (two data centers)
This architecture supports the following:
HA for databases
Region (DR) failover

MongoDB replica set configuration with region failover setup (3 data centers)
This architecture supports the following:
HA for databases
Region (DR) failover

Set up MongoDB VMs
Example passwords used in this tutorial are for instructional purposes only. Replace the examples with your own secure passwords. Harness recommends following your organization's standards for password security, including the use of strong passwords. Strong passwords are:
At least 12 characters long. Longer passwords are more secure.
Any combination of uppercase letters, lowercase letters, numbers, and symbols.
Not a word in the dictionary of any language or the name of a person, place, character, or organization.
Unique for each account.
To set up a MongoDB VM, do the following:
Connect to the VM and make sure you are running as root to prevent permission issues.
Create your VM terminal, connect to the terminal, and log in as root.
Run the following to update packages.
Import the public key used by the package management system.
Add the Mongo third party repository.
Debian:
Ubuntu 21.10 and later:
Run the following command to issue a MongoDB public GPG key.
Run the following to update the key.
Run the following to install MongoDB.
Run the following to start MongoDB.
Verify that MongoDB started successfully.
Stop the MongoDB instance.
Modify the
mongod.confconfiguration file.Locate the replication section, and uncomment the
replSetNameandbindIplines. Configure them as follows:Complete the steps above for all three VMs.
Log in to one VM and run following commands.
Log in to the remaining two VMs, and run following commands.
Log in to your MongoDB primary instance using the
mongocommand, and run following command to create your replica set.To identify primary node, run this command:
Log in to your primary MongoDB, and run the following command.
Run the following to verify your replica set configuration.
Restart MongoDB on all your VMs.
Check all your replicas for errors.
Log in to your Kubernetes cluster, and create a
mongo-secret.yamlfile.Update the file with your MongoDB-specific override changes.
Run Helm install.
Last updated
Was this helpful?