Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

How to set up MongoDB Atlas on OpenShift

June 19, 2023
Valentina Rodriguez Sosa
Related topics:
KubernetesOperators
Related products:
Red Hat OpenShift

Share:

    MongoDB offers different operator types to utilize MongoDB with Red Hat OpenShift. MongoDB provides two certified operator products, MongoDB Enterprise Operator and MongoDB Atlas Operator. This article will cover how to set up and configure MongoDB Atlas on OpenShift.

    Prerequisites

    • Read the overview to help you get started with Atlas.
    • Create an Atlas account.
    • Add your IP address to your account to ensure the OpenShift cluster will have connectivity with Atlas. 

    How to install MongoDB Atlas on OpenShift

    • To install the operators in your OpenShift cluster, access your OperatorHub.
    • Filter by MongoDB in the field selector.
    • Select Certified as Source.
    • Select the MongoDB Atlas Operator, as shown in Figure 1.
    A screenshot of the MongoDB operator options available in the Red Hat Operator Hub under Database.
    Figure 1: Select the MongoDB Atlas Operator tile.
    • Click Install. By default, it will install the Operator in the project openshift-operators (Figure 2). It will install the operator at the cluster level. 
    • You can access it from any project. Otherwise, you can select your project to install the Operator.
    A screenshot of the Red Hat Operator Hub installation page.
    Figure 2: Install the operator on the Operator Hub installation page.
    • Wait for a few minutes to verify your Operator is installed, indicated by the Succeeded status.

    How to configure MongoDB Atlas

    • Create secret credentials to allow your operator to interact with the Atlas API. Gather the information needed from your atlas. Copy the following command:
      oc create secret generic mongodb-atlas-operator-api-key \
      
               --from-literal='orgId=<the_atlas_organization_id>' \
      
               --from-literal='publicApiKey=<the_atlas_api_public_key>' \
      
               --from-literal='privateApiKey=<the_atlas_api_private_key>'
    • Find your Organization ID and replace it on your create secret command (Figure 3).
    A screenshot of Atlas organization settings page.
    Figure 3: Finding your organization ID on the Atlas organization settings page.
    • Look for Organization
    • Access Manager
    • More information about creating the API Key.

    Note: Select Organization owner and Organization Member, as shown in Figure 4.

    The Create API key screen in Red Hat.
    Figure 4: Select the organization owner and Organization Member to create the API key.
    • Create your secret with your Atlas private information on the same namespace as you installed the operator. Replace with your information on the oc secret command.

    Output: secret/mongodb-atlas-operator-api-key created

    • Add a label to your secret (on the same namespace):
      oc label secret mongodb-atlas-operator-api-key atlas.mongodb.com/type=credentials

    Output: secret/mongodb-atlas-operator-api-key labeled

    Note: If the label is not included, you will get this error: "AtlasCredentialsNotProvided: can't read Atlas API credentials from the Secret openshift-operators/mongodb-atlas-operator-api-key: Secret "mongodb-atlas-operator-api-key" not found"

    • Create a new Atlas project. The following command is a Kubernetes Custom Resource. This resource will create a new project on your Atlas instance. If your IP host is not added to the white-list, your cluster cannot access it, resulting in a timeout connection.
    • Include your Host External IP address from your OpenShift cluster. You can test connectivity from your local computer if your external IP address is added.
      cat <<EOF | oc create -f -
      
      apiVersion: atlas.mongodb.com/v1
      
      kind: AtlasProject
      
      metadata:
      
        name: my-project
      
      spec:
      
        name: Test Atlas Operator Project
      
        projectIpAccessList:
      
          - ipAddress: "3.139.123.215"
      
            comment: "External Host IP address"
      
      EOF
      
      
    • Another option is to go inside the Operator → All instances → Create new → Atlas project.
    • Check the object details to verify that they are not issues. All the conditions should be in True status.
    • Verify that the project was created, and the IPs were included as part of the access. Projects → Network access and each IP address status shows as Active.
    • Create an AtlasDeployment. This will create a new Atlas deployment in your Atlas.

    Note: Verify you changed the project name and any desired configuration.

    The example below is a minimal configuration to create an M0 Atlas deployment in the AWS US East region. For a complete list of properties, check atlasdeployments.atlas.mongodb.com CRDs specification from your cluster:

    cat <<EOF | oc create -f -
    
    apiVersion: atlas.mongodb.com/v1
    
    kind: AtlasDeployment
    
    metadata:
    
      name: my-atlas-deployment
    
    spec:
    
      projectRef:
    
        name: my-project
    
      deploymentSpec:
    
        name: test-deployment
    
        providerSettings:
    
          instanceSizeName: M0
    
          providerName: AWS
    
          regionName: US_EAST_1
    
    EOF
    
    

    Output: atlasdeployment.atlas.mongodb.com/my-atlas-deployment created

    • Verify all the conditions are met by checking the current status of the newly created deployment CR in your OpenShift Cluster.

    Figure 5 shows your Atlas.

    The Red Hat database deployment screen for the Atlas operator project.
    Figure 5: The database deployments screen for the Atlas operator project.

    Note: By default, it creates a replica with 3 nodes, as shown in Figure 6.

    The Red Hat test-deployment screen showing three replica nodes.
    Figure 6: The test-deployment screen showing three replica nodes.

    Connect your application to the database

    Follow these steps to create your credentials for your application to be connected to the database:

    • Create the password credentials on your secret. Replace the secret name and password values.
      oc create secret generic the-user-password --from-literal='password=P@@sword%'

    Output: secret/the-user-password created

    Do not forget to add the label:

    oc label secret the-user-password atlas.mongodb.com/type=credentials

    Output: secret/the-user-password labeled

    • Create the user for your application.
      cat <<EOF | oc create -f -
      
      apiVersion: atlas.mongodb.com/v1
      
      kind: AtlasDatabaseUser
      
      metadata:
      
        name: my-database-user
      
      spec:
      
        roles:
      
          - roleName: "readWriteAnyDatabase"
      
            databaseName: "admin"
      
        projectRef:
      
          name: my-project
      
        username: theuser
      
        passwordSecretRef:
      
          name: the-user-password
      
      EOF
      
      

    Note: that the name will be your user. ProjectRef needs to match with the previously created project.

    The passwordSecretRef will be the same name as your previously created secret.

    • Verify the user was created correctly with this command:
      oc get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
      
      True
      
      
    • Additionally, you can check on the installed operators -> Atlas Database User.
    • Verify the user was created on your atlas instance under Security -> Database Access -> Database Users.

    Connect your application to the Atlas deployment

    • To connect to this database from your application, modify your deployment object and include the connection string. This connection string will be read from your OpenShift secret.
    • The Atlas Operator will create a Kubernetes Secret with the information necessary to connect to the Atlas Deployment created in the previous step. The secret name will be composed of our project name and user, following this example: test-atlas-operator-project-test-cluster-theuser. An application in the same Kubernetes Cluster can mount and use the following secret:
      containers:
      
      - name: test-app
      
        env:
      
          - name: "CONNECTION_STRING"
      
            valueFrom:
      
              secretKeyRef:
      
                name: test-atlas-operator-project-test-cluster-theuser
      
                key: connectionStringStandardSrv

    Find more information about MongoDB

    This article demonstrated how to set up and configure MongoDB Atlas on Red Hat OpenShift. You can refer to connecting Quarkus with MongoDB for more information. If you have questions, please comment below. We welcome your feedback.

    Last updated: September 19, 2023

    Related Posts

    • Where can I download the OpenShift command line tool?

    • How can I run OpenShift on my own computer for development?

    • Installing MongoDB on Red Hat Enterprise Linux

    • Normalize web services with Camel K and AtlasMap, Part 1

    Recent Posts

    • GuideLLM: Evaluate LLM deployments for real-world inference

    • Unleashing multimodal magic with RamaLama

    • Integrate Red Hat AI Inference Server & LangChain in agentic workflows

    • Streamline multi-cloud operations with Ansible and ServiceNow

    • Automate dynamic application security testing with RapiDAST

    What’s up next?

    MongoDB Coverage feature image

    Download the MongoDB Cheat Sheet, which covers key concepts, basic commands, and common tasks for using MongoDB.

    Get the cheat sheet
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue