Adoptable Cookbooks List

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Description

This cookbook exists to achieve a deployment of a Priam Managed Cassandra Cluster.

This cookbook elects a leader to create the necessary SimpleDB databases/configuration entries to manage the deployment along with some Priam/Cassandra configuration Properties managed via chef attributes.

Priam is a sidecar application that takes care of Cassandra Configuration, Startup, Seeding and Node Replacement, Backups (to s3) and Restoration (from s3). It makes the lifecycle of Cassandra clusters much easier to manage.

SimpleDB:

Cluster, Role and Autoscaling Group Naming

When creating a cluster, there are several places where the reference must be identical/matching for things to work as expected.

These references should ideally all be the same and globally unique - although some are suffixed with identifiers, and some are not that global (security groups are regional).

Dashes are a used as a separator, so we try and use underscores where possible.

Use the following as a guide / concept for your own naming:

Autoscaling Group Name : unique_cassandra_cluster_one-useast1

Note that we indicate the region the group is in at the end of the name with a dash separator.

Role Name : unique-cassandra-cluster-one | unique_cassandra_cluster_one

This must be unique within the chef API, shared between all members members of the cluster.

Cluster Name : unique_cassandra_cluster_one

If a cluster name is not configured directly we will make one out of the role name, replacing dashes (-) with underscores (_)

Security Group Name : unique_cassandra_cluster_one

Priam will attempt to configure security groups itself in each region if it is in multiregion mode. It will not however create them : They should be created matching the cluster name (i.e. the ASG name before the region suffix).

See the ec2/autoscaling commands at the bottom of this document for a clearer picture of some of the implications.

AWS Credentials:

This cookbook tries to pick up AWS credentials from an encrypted databag by default in the same location as the ebs cookbook and others use (bag: credentials item: aws). See the attributes for more information.