Navigation

Helm Charts Quick Start

On this page

You can use Atlas Kubernetes Operator to manage resources in Atlas without leaving Kubernetes. This tutorial demonstrates how to create your first cluster in Atlas from Helm Charts with Atlas Kubernetes Operator.

This tutorial requires:

  • A running Kubernetes cluster
1

Register a new Atlas Account or Login to Your Atlas Account.

2
Note

You need the following public API key, private API key, and the organization ID information to configure Atlas Kubernetes Operator access to Atlas.

Create One API Key in One Organization and configure the API Access List.

Important

For Atlas Kubernetes Operator to create a new Atlas project, you must assign the Organization Project Creator organization permission.

3

Run one of the following sets of commands:

  • If you want Atlas Kubernetes Operator to watch all namespaces in the Kubernetes cluster, run the following commands:

    helm repo add mongodb https://mongodb.github.io/helm-charts
    helm install atlas-operator --namespace=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
  • If you want Atlas Kubernetes Operator to watch only its own namespace, set the --watchNamespaces flag to its own namespace, and run the following command:

    Note

    You can set the --watchNamespaces flag only to its own namespace. Setting the --watchNamespaces flag to any other namespace is currently unsupported.

    helm install atlas-operator --namespace=atlas-operator --set watchNamespaces=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
4

Run the following command:

Note

The --set flags in the following example override the Values.yaml file values with your Atlas project name, organization ID, and API keys. Alternatively, you can edit the Values.yaml file directly.

mongodb/atlas-cluster references the name of a chart in the repository.

helm install atlas-cluster \
mongodb/atlas-cluster \
--namespace=my-cluster \
--create-namespace \
--set project.atlasProjectName='My Project' \
--set atlas.orgId='<orgid>' \
--set atlas.publicApiKey='<publicKey>' \
--set atlas.privateApiKey='<privateApiKey>'
5

Run the following command until you recieve a True response, which indicates the database user is ready:

Note

The AtlasDatabaseUser Custom Resource waits until the cluster is ready. Creating a new cluster can take up to 10 minutes.

kubectl get atlasdatabaseusers atlas-cluster-admin-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
6

Run the following command:

Important

The following command requires jq 1.6 or higher.

kubectl get secret my-project-atlas-atlas-cluster-admin-user -o json | jq -r '.data | with_entries(.value |= @base64d)';
Note

Your connection strings will differ from the following example.

{
"connectionStringStandard": "mongodb://admin-user:%25SomeLong%25password$foradmin@atlas-cluster-shard-00-00.nlrvs.mongodb.net:27017,atlas-cluster-shard-00-01.nlrvs.mongodb.net:27017,atlas-cluster-shard-00-02.nlrvs.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-11q9bn-shard-0",
"connectionStringStandardSrv": "mongodb+srv://admin-user:%25SomeLong%25password$foradmin@atlas-cluster.nlrvs.mongodb.net",
"password": "%SomeLong%password$foradmin",
"username": "admin-user"
}

You can use this secret in your application:

containers:
- name: test-app
env:
- name: "CONNECTION_STRING"
valueFrom:
secretKeyRef:
name: my-project-atlas-atlas-cluster-admin-user
key: connectionStringStandardSrv
Give Feedback

On this page