ctdk / goiardi

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
http://goiardi.gl
Apache License 2.0
280 stars 39 forks source link

Follow chef RFC041: Chef Server API Versioning #58

Closed julian7 closed 6 years ago

julian7 commented 6 years ago

Chef clients 13-14 are requiring a JSON-formatted answer to their X-Ops-Server-API-Version header query. So far client-side v1/v0detection happens regardless of this setting.

see RFC-041

julian7 commented 6 years ago

See #51

ctdk commented 6 years ago

I'll give this PR a whirl - I just need to make sure it doesn't re-introduce anything like the previous problem where the newer knife was breaking horribly. Out of curiosity, does this fix those issues with the newer clients/knife/etc.? Because that would be awesome.

Real chef server 12 support is slowly (and sadly rather slowly indeed - I've been slogging through redoing the Chef 12 RBAC code and it sucks) coming along still, and this would be useful for that no matter what.

julian7 commented 6 years ago

I haven't tried user creation yet, but I think this is a critical point where feature degradation has been solved with extra care. It is successfully running on a handful of nodes with chef-client 14 for about a day now, but I understand this is not a comprehensive test.