Hi all,

A few of us have been discussing off-list the idea of making it simpler to attach Brooklyn to already-existing machines in a user-friendly way. The use case is roughly:

As a user I want to get Brooklyn to manage and monitor a set of machines I already own. I want to apply policies to these machines. I (probably) do not want Brooklyn to manage their lifecycle. I want to do this in the web UI.

Of course, all of this is already possible if you deploy an app to a BYON location. For example, to connect Brooklyn to three machines at 10.9.1.1, 2 and 3 you can write:

name: MyApp
location: byon:(hosts="[email protected].{1,2,3}")
services:
- type: brooklyn.entity.machine.MachineEntity
- type: brooklyn.entity.machine.MachineEntity
- type: brooklyn.entity.machine.MachineEntity

The immediate question is whether it would be useful to provide a jsgui-interface for constructing these applications without needing to write YAML or learn the BYON spec.

If the answer to that is yes then follow up questions include:
* How hard do we try to map the resultant application to Brooklyn's entity hierarchy? Do we make a flat set of MachineEntities or try to let the user incorporate clusters and other relationships?
* Is MachineEntity the right entity type? Should it be customisable?
* How do we manage SSH keys? Do we always _need_ to manage SSH keys? It's straightforward to imagine an app that monitors a set of machines without ever having to SSH to them (e.g. by polling some URL).

For a simple first pass I imagine adding a tab to the 'Create Application' wizard. It will present a basic form of inputs for user/host that are pieced together into YAML like that above and POSTed to the ApplicationResource, as text entered into the YAML tab is currently.

Any thoughts or other questions?

Sam

Reply via email to