Hi

So, I've managed to get this working. However, not exactly the way I want
it. My charm is made like this:

layer:openvpn
layer:puppet
layer:basic


layer:openvpn provides a Puppetfile that says which dependencies need to be
downloaded by the tactic., This works if I put the tactic in layer:openvpn.
This doesn't work if I put the tactic in layer:puppet because then the
tactic will run before the Puppetfile (from layer:openvpn) is added to the
destination charm.

Downloading puppet dependencies seems to be the responsibility of the
puppet layer. I'd like to be able to put the tactic in there so that layers
using layer:puppet only need to provide the puppetfile and layer:puppet
will take care of the rest. Is there a way for me to specify that a tactic
needs to be run after all other files have been added to the destination
charm?, or is there another way I can solve this issue?

Current implementation:
https://github.com/IBCNServices/tengu-charms/tree/openvpn/charms/layers/openvpn/tactics



Kind regards
Merlijn

2016-11-25 6:56 GMT-05:00 Marco Ceppi <marco.ce...@canonical.com>:

> That we don't have. Best to check then raise an exception if an external
> dependency does not exist (with a nice error message)
>
> On Fri, Nov 25, 2016, 4:42 AM Merlijn Sebrechts <
> merlijn.sebrec...@gmail.com> wrote:
>
>> Wow, that looks really cool!
>>
>> Any best-practices of how the dependencies of a tactic should be
>> installed?
>>
>> 2016-11-25 1:19 GMT+01:00 Marco Ceppi <marco.ce...@canonical.com>:
>>
>> charm build uses tactics during compilation to process files and tasks.
>> These tactics are pluggable, which allows you to create custom tactics in
>> your layer for things like you've desctibed. We have an example of this in
>> the Kubernetes charms, where a custom layer tactic is used to seed static
>> template files at charm build time:
>>
>> Here's the layer.yaml: https://github.com/juju-solutions/kubernetes/
>> pull/84/files#diff-b8894e717eb49b702f8d267d084635c0
>> And here's the tactic: https://github.com/juju-solutions/kubernetes/
>> pull/84/files#diff-7bface8b28f9d781a51d0e302cef9245R74
>>
>> This one is a little more complicated, since it can also be used as a
>> standalone script, which is why there's a bunch of additional code for
>> handling commandline parsing, the "UpdateAddonsTactic" class is the meat of
>> what you're looking for.
>>
>> Marco
>>
>> On Thu, Nov 24, 2016 at 12:02 PM Merlijn Sebrechts <
>> merlijn.sebrec...@gmail.com> wrote:
>>
>> Hi all
>>
>>
>> Is it possible to hook a tool like librarian-puppet
>> <https://github.com/voxpupuli/librarian-puppet> into the `charm build`
>> process so I can download Puppet dependencies at build time and ship them
>> with a Charm?
>>
>>
>>
>> Kind regards
>> Merlijn
>> --
>> Juju mailing list
>> Juju@lists.ubuntu.com
>> Modify settings or unsubscribe at: https://lists.ubuntu.com/
>> mailman/listinfo/juju
>>
>>
>>
-- 
Juju mailing list
Juju@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju

Reply via email to