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