Navigation

Update the MongoDB Version of a Deployment

Overview

This tutorial describes how to use the API to migrate a MongoDB deployment to a new version of MongoDB. These steps assume you have an existing deployment that uses a 3.2.12 version of MongoDB, as would be the case if you used the tutorial to Deploy a Cluster through the API.

Note

Groups and projects are synonymous terms. Your {GROUP-ID} is the same as your project id. For existing groups, your group/project id remains the same. This page uses the more familiar term group when referring to descriptions. The endpoint remains as stated in the document.

Consideration

The API supports the MongoDB options listed on the Supported MongoDB Options for Automation page.

Prerequisite

You must have credentials to access Cloud Manager as a user with the global-owner-role role.

Procedure

1

Retrieve the automation configuration from Cloud Manager.

Use the automationConfig resource to retrieve the configuration. Issue the following command, replacing:

  • <username> with your user name,
  • <apiKey> with your API credentials,
  • <url> with the URL of Cloud Manager, and
  • <group_id> with the project ID from your Project Settings:
curl -u "<username>:<apiKey>" "http://<url>/api/public/v1.0/groups/<group_id>/automationConfig" --digest -i

Confirm that the version field of the retrieved automation configuration matches the version field in the mms-cluster-config-backup.json file, which is found on any server running the Automation Agent.

2

Open the configuration document for editing.

As you edit the configuration document in the next steps, reference the description of an automation configuration for detailed descriptions of settings.

3

Add the new MongoDB version number to the configuration document.

Update the mongoDbVersions array to include {"name": "3.4.3"}:

"mongoDbVersions": [
    {"name": "3.2.12"},
    {"name": "3.4.3"}
]
4

Update the MongoDB version in the processes array.

Update each document in the processes array as follows.

Update the processes.version field to specify 3.4.3:

"version": "3.4.3"
5

Send the updated automation configuration.

Use the automationConfig resource to send the updated automation configuration.

Issue the following command, replacing <configuration> with path to the updated configuration document. Replace the username, API key, URL, and project ID as in previous steps.

curl -u "<username>:<apiKey>" -H "Content-Type: application/json" "http://<url>/api/public/v1.0/groups/<group_id>/automationConfig" --digest -i -X PUT --data @<configuration>

Upon successful update of the configuration, the API returns the HTTP 200 OK status code to indicate the request has succeeded.

6

Confirm successful update of the automation configuration.

Retrieve the automation configuration from Cloud Manager and confirm it contains the changes. To retrieve the configuration, issue the following command, replacing username, API key, URL, and project ID as in previous steps.

curl -u "<username>:<apiKey>" "http://<url>/api/public/v1.0/groups/<group_id>/automationConfig" --digest -i
7

Check the deployment status to ensure goal state is reached.

Use the automationStatus resource to retrieve the deployment status. Issue the following command, replacing username, API key, URL, and project ID as in previous steps.

curl -u "<username>:<apiKey>" "http://<url>/api/public/v1.0/groups/<group_id>/automationStatus" --digest -i

Confirm that the values of all the lastGoalVersionAchieved fields in the processes array match the goalVersion field. For more information on deployment status, see Automation Status.