/bodega

Chef cookbook downloads when you don't need a whole Supermarket

Primary LanguageGoApache License 2.0Apache-2.0


 _______  _______  ______   _______  _______  _______
|  _    ||       ||      | |       ||       ||   _   |
| |_|   ||   _   ||  _    ||    ___||    ___||  |_|  |
|       ||  | |  || | |   ||   |___ |   | __ |       |
|  _   | |  |_|  || |_|   ||    ___||   ||  ||       |
| |_|   ||       ||       ||   |___ |   |_| ||   _   |
|_______||_______||______| |_______||_______||__| |__|

For when you don't need a whole Supermarket...

What?

Bodega is intended to be a light proxy in front of Chef Server, offering a Berkshelf /universe endpoint and proxied cookbook downloads.

Why?

If you just want to be able to resolve your internal cookbooks without providing Chef Server credentials to everyone, but standing up a full Supermarket instance is more than you need, Bodega may be for you.

How

go get github.com/ewr/bodega

bodega --help

Command flags:

  • baseURL: Base to use in our download URLs. Could be "http://localhost:8080" if you're just playing around locally, or some different host/port for network use.
  • chef.server: Chef server URL, including organization path if necessary.
  • chef.client: Chef client name
  • chef.pem: Path to PEM file for Chef client
  • chef.interval: Interval at which to poll for new cookbooks
  • listen: Listening address (":8080" by default)
  • skip-ssl: Skip SSL validation for Chef Server? (defaults to true)

TODO

Everything. This is a barely-working proof-of-concept, but I think it serves a legit need. It will serve up your cookbooks securely (in terms of not giving others access to Chef Server), but you shouldn't expose it to untrusted users.

  • Tests!
  • Concurrent fetches for cookbook version info?
  • Cache cookbook tarballs?

An Alternate Approach

This tool was renamed Bodega after a naming collision with Minimart, another tool that attempts to solve the Supermarket-lite use case. Minimart creates a static representation of the cookbook tree, so it may better support uses with lots of download traffic.

Who

Bodega was written by Eric Richardson, to scratch an itch felt at Southern California Public Radio.