polydawn / repeatr

Repeatr: Reproducible, hermetic Computation. Provision containers from Content-Addressable snapshots; run using familiar containers (e.g. runc); store outputs in Content-Addressable form too! JSON API; connect your own pipelines! (Or, use github.com/polydawn/stellar for pipelines!)
https://repeatr.io
Apache License 2.0
68 stars 5 forks source link

Runc executor #63

Closed warpfork closed 9 years ago

warpfork commented 9 years ago

Add a new executor plugin, this time backed by containers powered by runc!

Also, there's an asset management and bootstrapping tool wedged in there, which is used to obtain a well known version of a runc executable (e.g. exact same as we used when testing) in a safe integrity-guaranteed way.

kkroening commented 9 years ago

Getting test failures if I don't run as root:

  * /home/vagrant/src/repeatr/io/placer/assembler_test.go 
  Line 290: - FSError: IO Error: lchown /tmp/repeatr-test/2015.10.22..04.14.14..1421227418/repeatr-test/089626112/material/alpha: operation not permitted

...

  * /home/vagrant/src/repeatr/io/placer/assembler_test.go 
  Line 309: - FSError: IO Error: lchown /tmp/repeatr-test/2015.10.22..04.14.14..1421227418/repeatr-test/104251186/material/alpha: operation not permitted

...

  * /home/vagrant/src/repeatr/io/placer/assembler_test.go 
  Line 328: - FSError: IO Error: lchown /tmp/repeatr-test/2015.10.22..04.14.14..1421227418/repeatr-test/296492852/material/alpha: operation not permitted
warpfork commented 9 years ago

Hm, that sucks... those should be fenced in a testutil.RequiresRoot requirement. But it's not from this PR; I'll fix it in another PR shortly, thanks.

kkroening commented 9 years ago

Other than that, LGTM