MongoDB

Types and relationships that are described in this document can be used to construct MongoDB clusters. For more information on how to assemble those types into clusters, consult MongoDB templates.

Note

Currently, only standalone MongoDB setup is fully supported. Replicated and sharded setups require that inter-cluster authentication is properly configured and we are missing a few crucial pieces of infrastructure that would allow us to configure it (most critical is component that can produce server certificates on demand, like Hashicorp Vault).

Components

dice.components.mongo.ConfigServer

MongoDB instance that is part of the configuration replica in sharded setup.

Parent:dice.components.mongo.Server
dice.components.mongo.DB

MongoDB database.

Parent:

cloudify.nodes.Root

Properties:
monitoring:Monitoring configuration.
name:Database name.
dice.components.mongo.Group

Collection of MongoDB instances that form a replica or shard.

Parent:

cloudify.nodes.Root

Attributes:
members:List of replica/shard members FQDNs.
Relationships:

dice.relationships.mongo.ComposedOf

dice.components.mongo.ReplicaServer

MongoDB instance that is part of the replica in replicated setup.

Parent:dice.components.mongo.Server
dice.components.mongo.Router

MongoDB router that should be used to server queries in sharded setup.

Parent:dice.components.mongo.Server
Relationships:dice.relationships.mongo.ConfigurationStoredIn, dice.relationships.mongo.RoutesTo
dice.components.mongo.Server

Standalone instance of MongoDB. This is a base type for all other MongoDB server types and should not be used in production environments, where replicated setup should be used.

Parent:

dice.chef.SoftwareComponent

Properties:
bind_ip:If set to local, mongo binds to internal address. If set to global, mongo binds to 0.0.0.0. (default: local)
Attributes:
ip:Private IP address of the MongoDB instance.
fqdn:FQDN of the MongoDB instance.
Relationships:

dice.relationships.ContainedIn

dice.components.mongo.ShardServer

MongoDB instance that is part of the shard replica in sharded setup.

Parent:dice.components.mongo.Server
dice.components.mongo.User

MongoDB database user.

Parent:

cloudify.nodes.Root

Properties:
username:Desired username.

Firewall rules

dice.firewall_rules.mongo.Common

Firewall rules that should be used on VMs that host MongoDB.

Parent:dice.firewall_rules.Base

Relationships

dice.relationships.mongo.ComposedOf

Adds dice.components.mongo.ConfigServer, dice.components.mongo.ReplicaServer or dice.components.mongo.ShardServer instances to the replica/shard.

Parent:cloudify.relationships.depends_on
dice.relationships.mongo.ConfigurationStoredIn

Connects MongoDB router to the configuration replica.

Parent:cloudify.relationships.depends_on
dice.relationships.mongo.HasRightsToUse

Grants user permissions to use target database.

Parent:cloudify.relationships.depends_on
dice.relationships.mongo.RoutesTo

Adds MongoDB shard to the router.

Parent:cloudify.relationships.depends_on