{"id":37221873,"url":"https://github.com/rhecosystemappeng/mongodb-atlas-kubernetes","last_synced_at":"2026-01-15T01:28:21.662Z","repository":{"id":37895089,"uuid":"366771285","full_name":"RHEcosystemAppEng/mongodb-atlas-kubernetes","owner":"RHEcosystemAppEng","description":"MongoDB Atlas Kubernetes Operator - Manage your MongoDB Atlas clusters from Kubernetes","archived":false,"fork":true,"pushed_at":"2023-04-13T18:46:31.000Z","size":3563,"stargazers_count":0,"open_issues_count":2,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-21T09:15:00.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.mongodb.com/cloud/atlas","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"mongodb/mongodb-atlas-kubernetes","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RHEcosystemAppEng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2021-05-12T15:55:20.000Z","updated_at":"2022-01-13T16:06:07.000Z","dependencies_parsed_at":"2023-01-21T12:32:40.241Z","dependency_job_id":null,"html_url":"https://github.com/RHEcosystemAppEng/mongodb-atlas-kubernetes","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/RHEcosystemAppEng/mongodb-atlas-kubernetes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fmongodb-atlas-kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fmongodb-atlas-kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fmongodb-atlas-kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fmongodb-atlas-kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RHEcosystemAppEng","download_url":"https://codeload.github.com/RHEcosystemAppEng/mongodb-atlas-kubernetes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fmongodb-atlas-kubernetes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28441031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"ssl_error","status_checked_at":"2026-01-15T00:55:20.945Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-15T01:28:20.705Z","updated_at":"2026-01-15T01:28:21.647Z","avatar_url":"https://github.com/RHEcosystemAppEng.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MongoDB Atlas Operator (Beta)\n[![MongoDB Atlas Operator](https://github.com/mongodb/mongodb-atlas-kubernetes/workflows/Test/badge.svg)](https://github.com/mongodb/mongodb-atlas-kubernetes/actions/workflows/test.yml?query=branch%3Amain)\n[![MongoDB Atlas Go Client](https://img.shields.io/badge/Powered%20by%20-go--client--mongodb--atlas-%2313AA52)](https://github.com/mongodb/go-client-mongodb-atlas)\n\nThe MongoDB Atlas Operator provides a native integration between the Kubernetes orchestration platform and MongoDB Atlas — the only multi-cloud document database service that gives you the versatility you need to build sophisticated and resilient applications that can adapt to changing customer demands and market trends.\n\n\u003e Current Status: *Beta*.\n\u003e The Operator gives users the ability to provision\n\u003e Atlas projects, clusters and database users using Kubernetes Specifications and bind connection information\n\u003e into applications deployed to Kubernetes or via Private Endpoints on AWS or Azure.\n\u003e More features like private endpoints, backup management, LDAP/X.509 authentication, etc. are yet to come.\n\nThe full documentation for the Operator can be found [here](https://docs.atlas.mongodb.com/atlas-operator/)\n\n## Quick Start guide\n### Step 1. Deploy Kubernetes operator using all in one config file\n```\nkubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/main/deploy/all-in-one.yaml\n```\n### Step 2. Create Atlas Cluster\n\n**1.** Create an Atlas API Key Secret\n\nIn order to work with the Atlas Operator you need to provide [authentication information](https://docs.atlas.mongodb.com/configure-api-access)\n to allow the Atlas Operator to communicate with Atlas API. Once you have generated a Public and Private key in Atlas, you can create a Kuberentes Secret with:\n```\nkubectl create secret generic mongodb-atlas-operator-api-key \\\n         --from-literal=\"orgId=\u003cthe_atlas_organization_id\u003e\" \\\n         --from-literal=\"publicApiKey=\u003cthe_atlas_api_public_key\u003e\" \\\n         --from-literal=\"privateApiKey=\u003cthe_atlas_api_private_key\u003e\" \\\n         -n mongodb-atlas-system\n\nkubectl label secret mongodb-atlas-operator-api-key atlas.mongodb.com/type=credentials -n mongodb-atlas-system\n```\n\n**2.** Create an `AtlasProject` Custom Resource\n\nThe `AtlasProject` CustomResource represents Atlas Projects in our Kubernetes cluster. You need to specify\n`projectIpAccessList` with the IP addresses or CIDR blocks of any hosts that will connect to the Atlas Cluster.\n```\ncat \u003c\u003cEOF | kubectl apply -f -\napiVersion: atlas.mongodb.com/v1\nkind: AtlasProject\nmetadata:\n  name: my-project\nspec:\n  name: Test Atlas Operator Project\n  projectIpAccessList:\n    - ipAddress: \"192.0.2.15\"\n      comment: \"IP address for Application Server A\"\n    - ipAddress: \"203.0.113.0/24\"\n      comment: \"CIDR block for Application Server B - D\"\nEOF\n```\n**3.** Create an `AtlasCluster` Custom Resource.\n\nThe example below is a minimal configuration to create an M10 Atlas cluster in the AWS US East region. For a full list of properties, check\n`atlasclusters.atlas.mongodb.com` [CRD specification](config/crd/bases/atlas.mongodb.com_atlasclusters.yaml)):\n```\ncat \u003c\u003cEOF | kubectl apply -f -\napiVersion: atlas.mongodb.com/v1\nkind: AtlasCluster\nmetadata:\n  name: my-atlas-cluster\nspec:\n  projectRef:\n    name: my-project\n  clusterSpec:\n    name: \"Test-cluster\"\n    providerSettings:\n      instanceSizeName: M10\n      providerName: AWS\n      regionName: US_EAST_1\nEOF\n```\n\n**4.** Create a database user password Kubernetes Secret\n```\nkubectl create secret generic the-user-password --from-literal=\"password=P@@sword%\"\n\nkubectl label secret the-user-password atlas.mongodb.com/type=credentials\n```\n\n(note) To create X.509 user please see [this doc](docs/x509-user.md).\n\n**5.** Create an `AtlasDatabaseUser` Custom Resource\n\nIn order to connect to an Atlas Cluster the database user needs to be created. `AtlasDatabaseUser` resource should reference\nthe password Kubernetes Secret created in the previous step.\n```\ncat \u003c\u003cEOF | kubectl apply -f -\napiVersion: atlas.mongodb.com/v1\nkind: AtlasDatabaseUser\nmetadata:\n  name: my-database-user\nspec:\n  roles:\n    - roleName: \"readWriteAnyDatabase\"\n      databaseName: \"admin\"\n  projectRef:\n    name: my-project\n  username: theuser\n  passwordSecretRef:\n    name: the-user-password\nEOF\n```\n**6.** Wait for the `AtlasDatabaseUser` Custom Resource to be ready\n\nWait until the AtlasDatabaseUser resource gets to \"ready\" status (it will wait until the cluster is created that may take around 10 minutes):\n```\nkubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type==\"Ready\")].status}'\nTrue\n```\n### Step 3. Connect your application to the Atlas Cluster\n\nThe Atlas Operator will create a Kubernetes Secret with the information necessary to connect to the Atlas Cluster created\nin the previous step. An application in the same Kubernetes Cluster can mount and use the Secret:\n\n```\n...\ncontainers:\n      - name: test-app\n        env:\n         - name: \"CONNECTION_STRING\"\n           valueFrom:\n             secretKeyRef:\n               name: test-atlas-operator-project-test-cluster-theuser\n               key: connectionStringStandardSrv\n\n```\n\n## How to Contribute\n\nPlease file issues before filing PRs. For PRs to be accepted, contributors must sign our [CLA](https://www.mongodb.com/legal/contributor-agreement).\n\nReviewers, please ensure that the CLA has been signed by referring to [the contributors tool](https://contributors.corp.mongodb.com/) (internal link).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhecosystemappeng%2Fmongodb-atlas-kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhecosystemappeng%2Fmongodb-atlas-kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhecosystemappeng%2Fmongodb-atlas-kubernetes/lists"}