heroku-confluent-buildpack

by heroku

GitHub Readme.md

Note: This buildpack is not currently maintained.

However, that doesn't mean that it won't work, or that we won't take and apply pull requests for those interested in contributing. If you're using this buildpack and would like to become the maintainer, we would be happy to bless your fork as superceding this version, provided you're doing so in good faith.

Heroku Confluent Buildpack

Installs the Confluent distribution on Heroku. While you won't be able to run ZooKeeper or Kafka on it, you could in theory run Kafka Rest on it, which is the primary purpose of this buildpack.

Setup

$ heroku create -b https://github.com/heroku/heroku-confluent-buildpack.git
Creating vast-woodland-9430... done, stack is cedar-14
Buildpack set. Next release on vast-woodland-9430 will use https://github.com/heroku/heroku-confluent-buildpack.git.
https://vast-woodland-9430.herokuapp.com/ | https://git.heroku.com/vast-woodland-9430.git
Git remote heroku added

Now that you have an app, you can download and "install" a version by setting up CONFLUENT_VERSION=1.0.1, and deploying an app that makes use of confluent.

$ heroku config:set CONFLUENT_VERSION=1.0.1
Setting config vars and restarting vast-woodland-9430... done, v3
CONFLUENT_VERSION: 1.0.1

Setting CONFLUENT_COMPONENT=(kafka-rest|schema-registry) will also create a bin/run-confluent script, which will perform the following steps:

  • If you have an executable at the root of your app named properties-generate, it will run it, with no arguments, and redirect STDOUT to confluent.properties.

  • It will setup a trap to run bin/$CONFLUENT_COMPONENT}-stop on SIGINT, or SIGTERM.

  • It will then substitute %PORT% for the value of the environment variable $PORT (this enables static configuration).

  • It will then launch bin/${CONFLUENT_COMPONENT}-start confluent.properties

This provides ultimate flexibility in generating your properties file from the heroku config, or through a static config file which is part of your app.

Your app's Procfile

$ cat Procfile
web: bin/run-confluent