Hacker News new | ask | show | jobs
by aelsabbahy 3391 days ago
I posted goss to show HN a year ago, but a lot has changed since.

Changes since my initial post:

* Goss is now primarily YAML based (was JSON originally)

* Goss supports golang's text/template to allow tests to be dynamic https://github.com/aelsabbahy/goss/blob/master/docs/manual.m...

* Goss can expose test results as a /healthz endpoint

* Goss can sleep/retry until system is in a passing state, useful for docker waits, see: (https://medium.com/@aelsabbahy/docker-1-12-kubernetes-simpli...)

* Many enhancements and bug fixes

1 comments

Some high level differences from serverspec/testinfra:

* Goss is self contained binary, no python/ruby needed

* Goss is YAML, not python/ruby DSL

* Goss can generate tests from system state using add/autoadd

* Goss can expose tests as a http health endpoint

* Goss can sleep/retry until a system is in a good state, this is useful in docker. See blog

* It runs extremely fast benchmark showing 1,000 tests running under 100ms

Some limitations:

* Goss has to run on the system locally, self-contained binary makes it simple to install.

* DSL will always have more flexibility in what you can do, but it's much simpler. So depends on what you're looking for.