Manifest settings for databases
Overview
This reference doc details all the Manifest settings for data, caching and storage components. If you’re unfamiliar with Manifest files and how they work, please follow our getting started guide and detailed how-to guide.
If you’re looking for the Manifest settings for webservers & frameworks or load balancers, please see our respective reference documents for those components.
Specifying external databases via your manifest
If your app uses databases that aren’t managed by Cloud 66 you can still specify them via your Manifest. To set a database as external via your manifest, use the following syntax:
# For example, an external MySQL server
mysql:
server: external
Key to table headings
- Option - the name of the setting as used in the YAML of your Manifest file
- Applied on - the type of deployment required to update this setting. In many cases settings only apply when an application is first built, or when new servers are created or it is cloned. Hover over the names of each condition to see more info.
- Clouds - the cloud providers on which a setting can be used.
ElasticSearch
Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.
The following settings are available via the Manifest file:
Option | Applied on | Description | Clouds |
---|---|---|---|
groups |
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option |
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. | All |
iam_instance_profile_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the IAM instance profile that should be used when provisioning this server. | AWS |
instance_service_account_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the GCE Service Account that should be used when provisioning this server. | GCE |
operating_system |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The version of Ubuntu to install on the server that hosts ElasticSearch. Accepted values ubuntu1804 , ubuntu2004 |
All |
root_disk_size |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Default size of root disk (in GB) for servers used by ElasticSearch. Default value is 50 . |
AWS, Azure, GCE |
root_disk_type |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Disk type for servers used by ElasticSearch, accepted values being ssd and magnetic . Default value is ssd . |
AWS, GCE |
version |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The version of ElasticSearch you want to install. NOTE: You can use database groups to run different versions of the same database in parallel with each other. |
All |
Example YAML for ElasticSearch
elasticsearch:
configuration:
iam_instance_profile_name: elastic-perms
version: 0.90.7
root_disk_size: 1000
root_disk_type: ssd
If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.
GlusterFS
GlusterFS is a scalable network filesystem suitable for data-intensive tasks such as cloud storage and media streaming.
Restrictions with GlusterFS
- Renaming a volume will actually delete that volume and create a new one.
- After you change the volume list, you need to redeploy your application for new configuration be applied to your application.
- You cannot change
replica_count
after GlusterFS added to your application. - You cannot use
glusterfs group
or any of its servers inmount_targets
.
The following settings are available via the Manifest file:
Option | Applied on | Description | Clouds |
---|---|---|---|
iam_instance_profile_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the IAM instance profile that should be used when provisioning this server. | AWS |
instance_service_account_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the GCE Service Account that should be used when provisioning this server. | GCE |
mount_targets |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
List of servers and server groups on which GlusterFS should be mounted. You can specify the name of the server or server group (e.g. rails or mysql ). You can also use app and db keywords: app is your main app server group (e.g. rails) and db is your database server groups (e.g. mysql or redis ). The default value is app . |
All |
replica_count |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The number of nodes in the GlusterFS cluster to which data will be replicated (e.g. 2 means your data exist on two nodes). Default value is 1 . |
All |
root_disk_size |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Default size of root disk (in GB) for servers used by GlusterFS. Default value is 50 . |
AWS, Azure, GCE |
root_disk_type |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Disk type for servers used by GlusterFS, accepted values being ssd and magnetic . Default value is ssd . |
AWS, GCE |
version |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The version of GlusterFS you wish to install. NOTE: You can use database groups to run different versions of the same database in parallel with each other. |
All |
volumes |
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option |
List of volumes you want in your GlusterFS cluster. By default we create a volume called cloud66-vol and mount it to /mnt/data-store . |
All |
volumes / mount |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
Specify the mount point of the volume on clients. | All |
volumes / name |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
Specify the name of volume. | All |
Example YAML for GlusterFS
glusterfs:
configuration:
version: 3.7
replica_count: 2
mount_targets: ['app','redis']
volumes:
- volume:
name: images-data
mount: "/mnt/images"
access_control:
read: ['web', 'api']
write: ['web']
- volume:
name: videos
mount: /mnt-data/videos
access_control:
read: ['web']
write: ['web']
Memcached
Memcached is a general-purpose distributed memory-caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source must be read.
The following settings are available via the Manifest file :
Option | Applied on | Description | Clouds |
---|---|---|---|
listen_ip |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
Specify which IP address to listen on (default value is 0.0.0.0 ) |
All |
memory |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
Specify maximum memory (in MB) that can be used (default is 64 ) |
All |
port |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
Specify connection port (default is 11211 ) |
All |
Example YAML for Memcached
memcached:
configuration:
memory: 1024
port: 11211
listen_ip: 127.0.0.1
MongoDB
MongoDB is a cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas.
The following settings are available via the Manifest file :
Option | Applied on | Description | Clouds |
---|---|---|---|
groups |
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option |
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. | All |
iam_instance_profile_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the IAM instance profile that should be used when provisioning this server. | AWS |
instance_service_account_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the GCE Service Account that should be used when provisioning this server. | GCE |
operating_system |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The version of Ubuntu to install on the server that hosts MongoDB. Accepted values ubuntu1804 , ubuntu2004 |
All |
root_disk_size |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Default size of root disk (in GB) for servers used by MongoDB. Default value is 50 . |
AWS, Azure, GCE |
root_disk_type |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Disk type for servers used by MongoDB, accepted values being ssd and magnetic . Default value is ssd . |
AWS, GCE |
tamper_with_yml |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
Determines whether Cloud 66 can automatically update your database configuration (username, password and server address). Default is yes . |
All |
version |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Specify the version of MongoDB you want to install. NOTE: You can use database groups to run different versions of the same database in parallel with each other. |
All |
Example YAML for MongoDB
mongodb:
configuration:
version: 2.4.8
root_disk_size: 100
root_disk_type: ssd
If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.
MySQL
MySQL is an open-source relational database management system.
The following settings are available via the Manifest file :
Option | Applied on | Description | Clouds |
---|---|---|---|
engine |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Specify the MySQL engine you want to install. Valid values are mysql and percona |
All |
groups |
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option |
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. | All |
iam_instance_profile_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the IAM instance profile that should be used when provisioning this server. | AWS |
instance_service_account_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the GCE Service Account that should be used when provisioning this server. | GCE |
operating_system |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The version of Ubuntu to install on the server that hosts MySQL. Accepted values ubuntu1804 , ubuntu2004 |
All |
root_disk_size |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Default size of root disk (in GB) for servers used by MySQL. Default value is 50 . |
AWS, Azure, GCE |
root_disk_type |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Disk type for servers used by MySQL, accepted values being ssd and magnetic . Default value is ssd . |
AWS, GCE |
tamper_with_yml |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
Determines whether Cloud 66 can automatically update your database configuration (username, password and server address). Default is yes . |
All |
version |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Specify the version of MySQL you want to install. Valid values are 5.7 or 8.0 NOTE: You can use database groups to run different versions of the same database in parallel with each other. |
All |
Example YAML for MySQL
mysql:
configuration:
version: 5.7
root_disk_size: 100
root_disk_type: ssd
engine: percona
iam_instance_profile_name: mysql-perms
If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.
PostgreSQL
PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
The following settings are available via the Manifest file :
Option | Applied on | Description | Clouds |
---|---|---|---|
groups |
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option |
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. | All |
iam_instance_profile_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the IAM instance profile that should be used when provisioning this server. | AWS |
instance_service_account_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the GCE Service Account that should be used when provisioning this server. | GCE |
operating_system |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The version of Ubuntu to install on the server that hosts PostgreSQL. Accepted values ubuntu1804 , ubuntu2004 |
All |
postgis |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Specify whether to include PostGIS | All |
postgis / version |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Specify the version of PostGIS you want to install. Must be nested in postgres settings |
All |
root_disk_size |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Default size of root disk (in GB) for servers used by PostgreSQL. Default value is 50 . |
AWS, Azure, GCE |
root_disk_type |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Disk type for servers used by PostgreSQL, accepted values being ssd and magnetic . Default value is ssd . |
AWS, GCE |
tamper_with_yml |
Redeploy ⓘChanges to this setting will be applied when you next deploy your application |
Determines whether Cloud 66 can automatically update your database configuration (username, password and server address). Default is yes . |
All |
version |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Specify the version of PostgreSQL you want to install. NOTE: You can use database groups to run different versions of the same database in parallel with each other. |
All |
Example YAML for PostgreSQL
postgresql:
configuration:
iam_instance_profile_name: psql-perms
version: 9.3.4
postgis: true
root_disk_size: 100
root_disk_type: ssd
If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.
Example YAML for PostGIS
postgresql:
configuration:
postgis:
version: 2.1.1
Redis
Redis is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.
The following settings are available via the Manifest file :
Option | Applied on | Description | Clouds |
---|---|---|---|
iam_instance_profile_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the IAM instance profile that should be used when provisioning this server. | AWS |
instance_service_account_name |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The name of the GCE Service Account that should be used when provisioning this server. | GCE |
groups |
Deploy-with-upgrades ⓘChanges to this setting will only be applied if you choose the "Deploy with upgrades" option |
Used to define multiple separate database groups (of the same type), each with their own configuration. The name of each group in your Manifest must match the names in your Dashboard. | All |
operating_system |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
The version of Ubuntu to install on the server that hosts Redis. Accepted values ubuntu1804 , ubuntu2004 |
All |
root_disk_size |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Default size of root disk (in GB) for servers used by Redis. Default value is 50 . |
AWS, Azure, GCE |
root_disk_type |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Disk type for servers used by Redis, accepted values being ssd and magnetic . Default value is ssd . |
AWS, GCE |
version |
Build-only ⓘThis setting only applies when the app is first built (or cloned) or when new servers are added. |
Specify the version of Redis you want to install. NOTE: You can use database groups to run different versions of the same database in parallel with each other. |
All |
Example YAML for Redis
redis:
configuration:
version: 5.0.5
root_disk_size: 100
root_disk_type: ssd
iam_instance_profile_name: redis-perms
If you need help specifying multiple databases of the same type via your Manifest, please read our guide on Database Groups.