Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

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.

Select Badges

Select Supported Platforms

Select Status


kafka-cluster (9) Versions 1.1.0

Application cookbook which installs and configures Apache Kafka.

cookbook 'kafka-cluster', '= 1.1.0', :supermarket
cookbook 'kafka-cluster', '= 1.1.0'
knife supermarket install kafka-cluster
knife supermarket download kafka-cluster
Quality 0%


Application cookbook which installs and configures
Apache Kafka.

Apache Kafka is publish-subscribe messaging rethought as a distributed
commit log. This cookbook takes a simplified approach towards
configuring and installing Apache Kafka.

It is important to note that Apache Zookeeper is a required
component of deploying an Apache Kafka cluster. We have developed a
Zookeeper cluster cookbook which takes the same simplified
approach and works seamlessly here.

Basic Usage

This cookbook was designed from the ground up to make it dead simple
to install and configure an Apache Kafka cluster using Chef. It also
highlights several of our best practices for developing reusable Chef
cookbooks at Bloomberg.

This cookbook provides [node attributes](attributes/default.rb) which
can be used to fine tune the default recipe which installs and
configures Kafka. The values from the node attributes are passed
directly into the configuration and service resources.

Out of the box the following platforms are certified to work and
are tested using our Test Kitchen configuration. Additional platforms
may work, but your mileage may vary.
- CentOS (RHEL) 6.6, 7.1
- Ubuntu 12.04, 14.04

The correct way to use this cookbook is to create a wrapper cookbook
which configures all of the members of the Apache Kafka cluster. This
includes reading the Zookeeper ensemble (cluster) configuration and passing
that into Kafka as a parameter. In this example we use our Zookeeper Cluster
to configure the ensemble on the same nodes.
bag = data_bag_item('config', 'zookeeper-cluster')[node.chef_environment]
node.default['zookeeper-cluster']['config']['instance_name'] = node['ipaddress']
node.default['zookeeper-cluster']['config']['ensemble'] = bag['ensemble']
include_recipe 'zookeeper-cluster::default'

node.default['kafka-cluster']['config']['properties'][''] = node['ipaddress'].rpartition('.').last
node.default['kafka-cluster']['config']['properties']['zookeeper.connect'] = bag['ensemble'].map { |m| "#{m}:2181"}.join(',').concat('/kafka')
include_recipe 'kafka-cluster::default'

In the above example the Zookeeper ensemble configuration is read in
from a data bag. This is our suggested method for deploying using our
Zookeeper Cluster cookbook. But if you already have your
Zookeeper ensemble feel free to format the string zookeeper.connect
string appropriately.

Dependent cookbooks

java >= 0.0.0
libartifact ~> 1.3
poise ~> 2.0
poise-service >= 0.0.0
selinux >= 0.0.0
sysctl >= 0.0.0
ulimit >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

Foodcritic Metric

1.1.0 failed this metric

FC031: Cookbook without metadata file: /tmp/cook/0d7f53aeb8cc8ebf0eb6ab72/kafka-cluster/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/0d7f53aeb8cc8ebf0eb6ab72/kafka-cluster/metadata.rb:1