diff --git a/engine/resources/deploy_tar.go b/engine/resources/deploy_tar.go index 02cd007f..3b5648c7 100644 --- a/engine/resources/deploy_tar.go +++ b/engine/resources/deploy_tar.go @@ -61,6 +61,8 @@ func init() { // TODO: support send/recv to send the output instead of writing to a file? // TODO: This resource is very similar to the tar resource. Update that one if // this changes, or consider porting this to use that as a composite resource. +// TODO: consider using a `deploy.get_archive()` function to make a .tar, and a +// file resource to store those contents on disk with whatever mode we want... type DeployTar struct { traits.Base // add the base methods without re-implementation diff --git a/examples/lang/deploy-tar.mcl b/examples/lang/deploy-tar.mcl index 767d3dc0..b6653fa7 100644 --- a/examples/lang/deploy-tar.mcl +++ b/examples/lang/deploy-tar.mcl @@ -1,3 +1,30 @@ -# This builds a tar archive with a copy of our deploy. -deploy:tar "/tmp/somedeploy.tar" { +import "deploy" + +file "/tmp/mgmt/" { + state => $const.res.file.state.exists, + recurse => true, # XXX: BUG: deploy:tar is purged without a file tag + purge => true, + #owner => "root", + #group => "root", + #mode => "u=rwx,g=rx,o=", # dir } + +# This builds a tar archive with a copy of our deploy. +deploy:tar "/tmp/mgmt/somedeploy1.tar" { + + Depend => File["/tmp/mgmt/"], # make the dir first! +} + +# Tag this so that the folder purge doesn't remove it. +file "/tmp/mgmt/somedeploy1.tar" { + mode => "u=rw,g=rw,o=rw", # file + + Meta:retry => -1, # changing the mode on this file can be racy +} + +# Alternatively: +#file "/tmp/mgmt/somedeploy2.tar" { +# state => $const.res.file.state.exists, +# content => deploy.get_archive(), # TODO: implement me +# mode => "u=rw,g=rw,o=rw", # file +#}