On Mon, Sep 21, 2015 at 5:53 AM Herman Bergwerf <hermanbergw...@gmail.com>
wrote:

> I find it quite difficult to understand the semantics of a general juju
> provider (so far juju/environs helped a bit to understand the general
> principle). Is there a place where I can find what I need to write a very
> minimal provider? I don't really have experience with juju, cloudstack or
> cloud computing so I'm not sure if I'm the right person to write a
> cloudstack integration for juju. I think I'll start using juju on a manual
> cluster first or write the integration like
> https://github.com/kapilt/juju-digitalocean (I'm not sure how this code
> integrates with juju, is it just a wrapper around the juju cli?)
>

Hi Herman,

In case you change you later want to write a fully integrated provider,
I've just written some notes about implementing a provider here:
https://github.com/juju/juju/wiki/Implementing-environment-providers. If
you're interested, take a look and let me know if that helps, and what
you're still unclear on.

The approach I would take is:
 1. Implement EnvironProvider and configuration handling first
 2. Implement Environ and Instance, in the following order:
     a. StartInstance
     b. Bootstrap (probably just call common.Bootstrap)
     c. Destroy (probably just call common.Destroy)
     d Instances and StateServerInstances
     e. the rest; no-ops for the firewall-related (*Ports) methods for an
MVP

I'm working on a new Azure provider at the moment, so you can find a fairly
minimal environment implementation here:
https://github.com/axw/juju/tree/d921824ddd7064327c8eab884ecc2e303e9097f0/provider/azure
<https://github.com/axw/juju/tree/azure-next/provider/azure>. It's not
pretty, but it bootstraps.

Cheers,
Andrew

Op za 19 sep. 2015 om 13:44 schreef Nate Finch <nate.fi...@canonical.com>:
>
>> Definitely look at the GCE provider, it's the newest and uses our current
>> best practices. Some of the older providers are not quite as good examples
>> (not that they're wrong, we've just figured out better ways to do structure
>> the code).
>>
>> On Sat, Sep 19, 2015, 6:01 AM Mark Shuttleworth <m...@ubuntu.com> wrote:
>>
>>> On 18/09/15 17:27, Herman Bergwerf wrote:
>>> > Hmm, ok. I'm quite surprised a pretty widely used virtualization stack
>>> such
>>> > as cloudstack is not implemented in juju at all. Are there maybe future
>>> > plans to do this?
>>>
>>> Anybody can write a cloud provider and contribute it to Juju. Canonical
>>> will usually write one as part of the certification process for a large
>>> public cloud (like AWS, Google, Azure) but I'm not aware of any large
>>> CloudStack clouds so it's not on our roadmap. Of course we'd gladly land
>>> the work if someone else does it.
>>>
>>> > By the way, wouldn't it be easier to write a provider directly inside
>>> the
>>> > juju code? I'm not sure if there is any documentation to do this.
>>>
>>> Yes, a "proper" provider is built-in to juju-core and lives in the Go
>>> code of Juju itself.
>>>
>>> As a limited workaround, you can use the Juju client plugin mechanism to
>>> automate some of the "manual" provider work. Essentially, you use your
>>> local cloud tools to launch machines, then register them with Juju
>>> controller using the manual provider mechanisms. If you want to dig into
>>> Go programming, then a cloudstack provider would be a good project. You
>>> would be copying the structure of the OpenStack, GCE, Azure, or AWS
>>> provider, then using the cloudstack operations to do what's necessary
>>> there. A main question would be whether or not their is already an
>>> implementation of the cloudstack API in Go.
>>>
>>> Mark
>>>
>>>
>>> --
>>> 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
>
-- 
Juju mailing list
Juju@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju

Reply via email to