Skip to content
A Chef server written in Go, able to run entirely in memory, with optional persistence with saving the in-memory data to disk or using MySQL or Postgres as the data storage backend. Docs: http://goiardi.readthedocs.io/en/latest/index.html
Go PLpgSQL TSQL Shell Dockerfile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci erm, try linking the artifact directory in Jun 15, 2018
.github Create pull_request_template.md Oct 2, 2019
actor update copyright while I'm thinking of it to 2017 Apr 16, 2017
authentication update copyright while I'm thinking of it to 2017 Apr 16, 2017
chefcrypto update copyright while I'm thinking of it to 2017 Apr 16, 2017
client add 'create_key' to validElements for clients May 13, 2019
config git some go fmt in, which is not only good for the soul but also to e… May 15, 2019
cookbook Made some tweaks to the depsolver to make it a little better. Hand in… Mar 30, 2018
databag
datastore go fmt before pushing up pre2 Jan 15, 2018
depgraph terraform removed depgraph, so vendor depgraph and digraph Nov 16, 2015
digraph terraform removed depgraph, so vendor depgraph and digraph Nov 16, 2015
docs go ahead and start cutting a release from that small clients API chan… May 15, 2019
environment update copyright while I'm thinking of it to 2017 Apr 16, 2017
etc Add purge-sandboxes-after option to sample config file, update help a… May 10, 2018
filestore update copyright while I'm thinking of it to 2017 Apr 16, 2017
gerror Fix function comments based on best practices from Effective Go Feb 18, 2019
indexer
loginfo looks like go test got pickier Apr 28, 2018
node go fmt before pushing up pre2 Jan 15, 2018
packaging move package_cloud gem installation from deploy script to circleci co… May 5, 2018
report go fmt before pushing up pre2 Jan 15, 2018
reqctx Begin adding contexts to requests. Not so useful in this version of g… Apr 15, 2017
role update copyright while I'm thinking of it to 2017 Apr 16, 2017
sandbox feat: sandbox id generation was producing useless cycles. Jun 1, 2020
scripts Add script for migrating files to s3, allow running in s3 mode withou… Sep 14, 2016
search in-mem search index NOT queries broke for a bit, fixing Sep 12, 2017
secret brush up vault tests a little bit Apr 19, 2020
serfin go fmt too Aug 9, 2017
shovey
sql-files fix organizations.sql for mysql 5.7 Nov 23, 2016
user
util chore: s3 should be initialized only on --use-s3 flag, check for erro… Jun 1, 2020
vendor updated the vendor directory to work withh go modules Apr 19, 2020
.gitignore Add schema files to the generated deb Oct 8, 2015
BUGS Update docs, CHANGELOG, BUGS, TODO Jul 30, 2014
CHANGELOG CHANGELOG May 15, 2019
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CONTRIBUTORS credits Nov 16, 2015
Dockerfile update this neglected Dockerfile to use go1.12 May 13, 2019
LICENSE Initial public release Nov 25, 2013
NOTICE update contact email a couple of places Dec 5, 2014
README.md
SECURITY.md Create SECURITY.md Oct 2, 2019
TODO
authenticate_users.go update copyright while I'm thinking of it to 2017 Apr 16, 2017
clients.go opUser from context all rolled out Apr 16, 2017
common.go
cookbooks.go NOT range works with file index now. Needs at minimum more testing, c… Aug 10, 2017
data.go opUser from context all rolled out Apr 16, 2017
doc.go update copyright while I'm thinking of it to 2017 Apr 16, 2017
environments.go logging statements Jun 6, 2017
events.go Merge branch 'master' into auth-1.3 Apr 25, 2017
export.go update copyright while I'm thinking of it to 2017 Apr 16, 2017
file_store.go update copyright while I'm thinking of it to 2017 Apr 16, 2017
go.mod remove specifying the go version; shouldn't be necessary as far as I … Apr 19, 2020
go.sum go.mod and go.sum, for 0.11.x. May make for an interesting merge upst… Apr 19, 2020
goiardi.go
head.go Chef RFC090 has been accepted and numbered Apr 26, 2017
import.go update copyright while I'm thinking of it to 2017 Apr 16, 2017
lists.go
nodes.go
principals.go update copyright while I'm thinking of it to 2017 Apr 16, 2017
reports.go opUser from context all rolled out Apr 16, 2017
roles.go opUser from context all rolled out Apr 16, 2017
sandboxes.go opUser from context all rolled out Apr 16, 2017
search.go Post not range merge cleanup Sep 7, 2017
shovey.go opUser from context all rolled out Apr 16, 2017
status.go opUser from context all rolled out Apr 16, 2017
universe.go update copyright while I'm thinking of it to 2017 Apr 16, 2017
users.go the responses for /user actions need to specifically be StatusNotFound Apr 21, 2017

README.md

Goiardi

Circle CI Documentation Status GoDoc

Goiardi is an implementation of the Chef server (http://www.chef.io) written in Go. It can either run entirely in memory with the option to save and load the in-memory data and search indexes to and from disk, drawing inspiration from chef-zero, or it can use MySQL or PostgreSQL as its storage backend.

DOCUMENTATION

The full goiardi documentation has been moved out of this README because it was getting too big to be easily manageable. It now uses sphinx to manage and format the documentation, which can be found under the docs/ directory. To learn about sphinx-doc, see http://sphinx-doc.org/. The documentation can also be found online at http://goiardi.readthedocs.io/en/latest/.

In addition to the aforementioned Chef documentation at http://docs.chef.io, more documentation specific to goiardi can be viewed with godoc. See here for an explanation of how godoc works. The goiardi godocs can also be viewed online at https://pkg.go.dev/github.com/ctdk/goiardi.

TODO

See the TODO file for an up-to-date list of what needs to be done. There's a lot.

BUGS

There's going to be a lot of these for a while, so we'll just keep those in a BUGS file, won't we?

WHY?

This started as a project to learn Go, and because I thought that an in memory chef server would be handy. Then I found out about chef-zero, but I still wanted a project to learn Go, so I kept it up. Chef 11 Server also only runs under Linux at this time, while Goiardi is developed under Mac OS X and ought to run under any platform Go supports (only partially tested at this time though).

CONTRIBUTING

If you feel like contributing, great! Just fork the repo, make your improvements, and submit a pull request. Tests would, of course, be appreciated. Adding tests where there are no tests currently would be even more appreciated. At least, though, try and not break anything worse than it is. Test coverage has improved, but is still an ongoing concern.

AUTHOR

Jeremy Bingham (jeremy@goiardi.gl)

COPYRIGHT

Copyright (c) 2013-2020, Jeremy Bingham

The depgraph and digraph packages are vendored from terraform and are copyrighted by Hashicorp.

CODE OF CONDUCT

This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to honor this code. [code-of-conduct]: http://todogroup.org/opencodeofconduct/#Goiardi/abuse-coc@goiardi.gl

This code of conduct can also be found in CONDUCT.md in this repository.

LICENSE

Like many Chef ecosystem programs, goairdi is licensed under the Apache 2.0 License. See the LICENSE file for details.

The goiardi documentation in the docs directory is licensed under a Creative Commons Attribution 4.0 International (CC-BY 4.0) License.

Chef is copyright (c) 2008-2020 Chef Software (formerly Opscode, Inc.) and its various contributors.

The depgraph and digraph packages are vendored from Hashicorp's terraform package, and is under the Mozilla Public License version 2.0. The MPL is included in those directories and applies only to those files.

A small part of go-chef/chef is included under the authentication directory to remove a circular dependency with tests between goiardi and go-chef, only enough to make a minimal client sufficient to test authenticating headers. It is copyright 2013-2019, Jesse Nelson under the terms of the Apache 2.0 license.

Thanks go out to the fine folks of Chef Software and the Chef community for all their hard work.

Also, if you were wondering, Ettore Boiardi was the man behind Chef Boyardee. Wakka wakka.

You can’t perform that action at this time.