Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 08 03:32
    lock[bot] locked #1820
  • Sep 05 18:32
    teknofire opened #1823
  • Sep 05 07:17
    ppodbielski opened #1822
  • Sep 02 08:31
    lock[bot] locked #1819
  • Aug 09 14:00
    masikmos closed #1821
  • Aug 06 12:06
    masikmos opened #1821
  • Jul 12 19:40
    lock[bot] locked #1817
  • Jul 10 03:21
    lamont-granquist closed #1820
  • Jul 10 03:21
    lamont-granquist edited #1820
  • Jul 10 02:30
    lamont-granquist synchronize #1820
  • Jul 10 01:28
    lamont-granquist synchronize #1820
  • Jul 10 00:59
    lamont-granquist synchronize #1820
  • Jul 10 00:27
  • Jul 10 00:25
    lamont-granquist synchronize #1820
  • Jul 10 00:13
    lamont-granquist synchronize #1820
  • Jul 10 00:09
  • Jul 09 23:54
    lamont-granquist synchronize #1820
  • Jul 09 23:51
  • Jul 09 23:37
    lamont-granquist synchronize #1820
  • Jul 09 22:05
Dan DeLeo
@danielsdeleo
@reset I think that behavior must have changed for some unrelated reason, chef-client is definitely not evaluating the metadata.rb, it's using the in-memory copy of the metadata it got from the server
The code path for chef-client doesn't hit CookbookVersionLoader now anywhere that I see
Jamie Winsor
@reset
That’s good news for the latest versions of Chef then
Pretty much ALL codepaths which attempt to evaluate metadata should be looking at compiled instead of raw. The CookbookVersionerLoader was the one that I had found a while back which is what made me open that ticket
Dan DeLeo
@danielsdeleo
Anyway, the point of all this is that the metadata handling is still insane, trying to get a handle on what the shape of "sane" looks like
Jamie Winsor
@reset
Ya the code base seems to be inconsistent in a lot of places where Ruby compiles into JSON. I think a general rule of thumb should be to write it all with the Ruby DSL and let tools compile and compare the JSON (or whatever the fuck format)
This will let tools developers generate non-Ruby tools to work with Chef artifacts
@danielsdeleo thanks so much for taking an interest in this piece of the picture. It’s extremely important for tools developers
Also, I linked you to an article that I want you to read on supermarket 701. It’s how Bundler’s new index works
This is also the route we decided to take in the Elixir language with our package manager
Dan DeLeo
@danielsdeleo
yeah, so a very long time ago, we always compiled to metadata.json on-disk then uploaded that
Jamie Winsor
@reset
Yeah I remember those days. It was confusing as all hell
Dan DeLeo
@danielsdeleo
that sucked for SVN users, since svn sucks at ignoring files
Jamie Winsor
@reset
I started using Chef in 0.8 and one of the biggest oddities was when to use the Ruby DSL and when to use JSON.
Dan DeLeo
@danielsdeleo
yeah, you could also just have a metadata.json and no .rb
Jamie Winsor
@reset
That’s what my very first chef-repo looked like
It wasn’t until things got more complex that I realized I didn’t want to be writing the JSON myself
Dan DeLeo
@danielsdeleo
@reset anyway, y'know, I'd read that article about the rubygems index format thing, totally spaced it. Anyway, how does the elixir repo publish updates within a cluster of index servers?
Jamie Winsor
@reset
Hex is the Elixir package manager and this is the approach which is being adopted. First steps are in on downloading the entire universe cache and then diffing will come second when necessary.
A leader election could be used if we need a central place to actually build the updated universe and then additional nodes ontop of that would exist to do the serving of the cache
I imagine there are a number of different ways to tackle this
Dan DeLeo
@danielsdeleo
I was just thinking, if it's backed by a RDBMS, using sequential IDs, and finding the max ID is cheap, then
individual servers can rebuild the log on their own
but, I'm not sure how you handle yanks/deletions in that case
Jamie Winsor
@reset
@danielsdeleo you could create a new entry in the DB which is the yank kind of like how Git creates a new commit for a revert?
Dan DeLeo
@danielsdeleo
@reset it'd be a little weird in the DB as far as uniqueness constraints and the like but doable, I think
or you'd have a separate table for the index/append-only log
Jamie Winsor
@reset
ya you could totally do that too
Dan DeLeo
@danielsdeleo
just would be good to keep all the coordination/synchronization/consistency issues in one place, doing it in the RBDMS is pretty well understood and scalable enough for most scenarios
Jamie Winsor
@reset
@danielsdeleo ya any solution where there is a central agreement is a great one. I think RBDMS is a simple and easy one ;)
Dan DeLeo
@danielsdeleo
@reset hrm, wondering if version number should be required also... right now it defaults to 0.0.0 which is maybe okay enough
/cc @sersut
Jamie Winsor
@reset
@danielsdeleo I think version number should be required
Dan DeLeo
@danielsdeleo
@reset I agree, need to check w/ rest of team. Groundwork is there, though
Seth Chisamore
@schisamo
@reset @sethvargo Any chance we could get a 3.2.4 release. Mainly for this fix berkshelf/berkshelf#1380 which is needed by Delivery (delivery-truck uses a berks vendor).
Jamie Winsor
@reset
@schisamo oh wow I didn't get this message until pretty late...
Zoltan Chovan
@nezuvian
hi! newbie here, is there a tutorial/doc about setting up a mysql server with vagrant+berkshelf? I've been hacking around for a few hours with not much to show for it :/
Nitheesh Poojary
@nitheeshp
@nezuvian include_recipe "mysql::server” in your cookbook
and add this in metadata.eb
depends 'mysql'
if you are berkshelf it will download mysql receipe for you
nukepuppy
@nukepuppy
@nezuvian i can give you an example but its vagrant using kitchen-vagrant
which i suggest you
nukepuppy
@nukepuppy
@nezuvian https://github.com/nukepuppy/berksmysql just run 'kitchen converge' assuming you have chefdk / vagrant setup
Arie Bro
@arieb
hey guys, do you know if i can access the dependency graph information from ruby code written inside the berksfile?
i want to make it so all cookbook that start with a specific prefix are loaded from a 'path', however i dont want all the cookbooks, but rather only the ones that are actually needed
Roberto Leibman
@rleibman
Hey... is there any way to pass to "berks vendor" a list of recipes WITH versions (something like "berks vendor -r recipe[one@1.4.2, two@1.7.1]"
I need to create a package with all of my recipes (at a given version #) and their dependencies to deploy at a client site that has no internet access.
nukepuppy
@nukepuppy
@rleibman not sure i get the full requirement there? but wouldnt just specifying those versions in berksfile do that?
or metadata.rb for that matter
nm long ago :)