• Stars
    star
    279
  • Rank 147,967 (Top 3 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 11 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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 ([email protected])

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/[email protected]

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.

More Repositories

1

bsdgames-osx

The classic bsdgames of yore, for Mac OS X.
C
67
star
2

vsop87

VSOP87 files
Fortran
21
star
3

modern-xiafs

A port of the xiafs filesystem to modern Linux kernels.
C
17
star
4

xv6

Personal xv6 branch.
C
15
star
5

dwarf_fortress

A Chef cookbook for installing Dwarf Fortress.
Ruby
5
star
6

chef-lighttpd

Chef cookbook for lighttpd
Ruby
5
star
7

jovian-noise

A program to forecast Jupiter decameter radio storms.
Go
5
star
8

homebrew-ctdk

Some homebrew formulae for programs I've written.
Ruby
4
star
9

schob

The client for running goiardi shovey jobs.
Go
4
star
10

octopress-image-popup

Octopress plugin, adapted from bmc/octopress-plugins, to make image modal popups with resized thumbnails.
Ruby
3
star
11

chef_lang

A Chef recipe for the Chef programming language.
Ruby
2
star
12

knife-goiardi-event-log

A knife plugin for viewing goiardi's event log.
Ruby
2
star
13

sbinfo

Golang library that collects information from a filesystem's superblock. Ext2/3/4 only at the moment.
Go
2
star
14

vimconfig

My vim config.
Vim Script
2
star
15

moxoncalc

A command-line calculator for Moxon antennas, written in Java.
Java
2
star
16

shovey-jobs

A cookbook to install and configure goiardi shovey jobs on a node.
Ruby
2
star
17

ghastly

Go
2
star
18

knife-goiardi-reporting

Knife plugin for goiardi's version of chef reporting, forked from Chef's knife-reporting.
Ruby
2
star
19

lighttpd-1.5-ct

Lighttpd, plus mod_mcpage and the updated mod_extforward patch
C
1
star
20

knife-shove

A knife plugin for managing goiardi shovey jobs.
Ruby
1
star
21

goiardi-docker

Docker stuff for goiardi
1
star
22

chefcrypto

Various cryptographic routines for communicating with chef servers for golang programs and libraries.
Go
1
star
23

scoop-dk

The Daily Kos version of Scoop, finally
Perl
1
star
24

goiardi-schema

SQL database schemas for goiardi.
PLpgSQL
1
star
25

lighttpd-1.4.x

lighttpd 1.4 svn git clone. The ct_custom branch contains chunked encoding and mod_deflate backported from 1.5, and the mod_mcpage module for caching fully rendered pages in memcached.
C
1
star
26

gosudar

Golang system profiler that spits out a JSON representation of your system. Still in progress.
Go
1
star