Topology and Orchestration Specification for Cloud Applications (TOSCA) and Juju
Johannes Wettinger
mail at jowettinger.de
Fri Aug 24 18:46:31 UTC 2012
Hi Dražen,
On Fri, Aug 24, 2012 at 12:00 AM, Dražen Lučanin
<drazen.lucanin at gmail.com> wrote:
> Neither shell nor Python scripts need to be compiled and are therefore not
> binaries. Practically the same shell scripts can run on e.g. Linux and Mac
Of course you're completely right. Those are no binaries, let's just
name them executables. :-)
> (would be possible on Windows too, using MiniGW or some similar emulator, I
> guess) and Python is fully cross-platform. What is meant by conditional
> logic is that you can for example specify some OS-specific properties (such
> as paths) using "if" guards.
That means that Juju's architecture is not designed to directly
include conditional logic based on platform (e.g., in the
manifest.yaml), isn't it? All those conditional logic ("if" guards
etc.) is hidden inside the implementation of a particular hook, right?
Of course that is a nice and clean approach because Juju doesn't have
to be aware of different platforms. But I'm wondering if it makes the
implementation of hooks very complex, especially if many platforms
should be supported. Imho it would be a nice option if Juju provides a
way to define different implementations for a hook, e.g.,
mainfest.yaml
hooks:
install:
install-windows.bat: windows
install-ubuntu.sh: ubuntu
install-centos.sh: centos, redhat
By offering this option, the creator of a particular charm can decide
either to put all the conditional logic into one single hook
implementation or to deliver a number of implementations for different
platforms. Depending on the particular use case, either the one or the
other approach might be more appropriate. What do you think?
Cheers,
Johannes
More information about the Juju
mailing list