___ ___ ____ ____ ____ ___ ___ ____ ____ ______
| | || || \ | || | | / || \| |
| _ _ | | | | _ | | | | _ _ || o || D ) |
| \_/ | | | | | | | | | \_/ || || /|_| |_|
| | | | | | | | | | | | || _ || \ | |
| | | | | | | | | | | | || | || . \ | |
|___|___||____||__|__||____||___|___||__|__||__|\_| |__|
For when you don't need a whole Supermarket...
What?
Minimart 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, Minimart may be for you.
How
go get github.com/ewr/minimart
minimart --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?
Who
Minimart was written by Eric Richardson, to scratch an
itch felt at Southern California Public Radio.