Charmed MongoDB How-To | Configure S3 storage

Configure S3 storage

This is a guide on how to configure S3 storage for a Charmed MongoDB replica set or sharded cluster.

Prerequisites

Summary


Deploy s3-integrator

S3 configurations are managed with the s3-integrator charm.

First, deploy the s3-integrator charm:

juju deploy s3-integrator

Configure s3-integrator

To sync your s3-integrator credentials, run:

juju run s3-integrator/leader sync-s3-credentials access-key=<access-key-here> secret-key=<secret-key-here>

To configure s3-integrator, run juju config with the relevant parameters to your S3 storage. For example:

juju config s3-integrator path="my/path" region="us-west-2" bucket="pbm-test-bucket-1"

Pass S3 configuration to MongoDB

Determine the application to run backup actions on

The application to pass to juju when running backup and restore actions depends on whether your deployment is a replica set or sharded cluster:

When running Charmed MongoDB as a replica-set, this will be the name of your Charmed MongoDB Application.

When running Charmed MongoDB as a sharded cluster, this will be the name of your Charmed MongoDB Application running with the role “config-server” - never the shard applications.

Integrate s3-integrator with MongoDB

To integrate your deployment with s3-integrator, run:

juju integrate s3-integrator <replica-set name | config-server name>

Note: You can also update your configuration options after integrating. For example:

juju config s3-integrator endpoint=<endpoint>

We should add a note that the S3 bucket should be pre-created externally. We have some of our charms auto-create the bucket so it can be a bit confusing. It can be a simple line in the prerequisites.

Thanks for the suggestion @gustavosr98! Updated :slight_smile: