Developing runners for OpenNebula and AWS

Hello there,

I am currently working on 2 runners: one for OpenNebula and one for AWS (ec2).
I don’t have a lot of experience with those 2 cloud platforms (and don’t have the ability to use them very often) and I have only started to ‘seriously’ learn Go 3 weeks ago.

You can see the results here:


I used the drone-runner-digitalocean as a basis and implemented the following features:

  • OpenNebula:

    • image or template instantiation
    • can choose or update the cpu, vcpu, memory, disk size, etc. of the instance
    • can attach an existing or a pre-defined security group
    • can use a privkey file or create one, on-the-fly for each instance
    • default or custom Network
  • AWS (ec2):

    • on-demand or spot instances
    • can attach an existing or pre-defined security group
    • can use an existing ssh keypair or create a new one (from a privkey file or created on-the-fly for each instance)
    • default or custom VPC/subnet

Not everything is well tested and there are some bugs (ie. I have not yet read the chapter about channels and I have a bug with pipeline cancelation…). And I’ve probably missed a lot of things to rightly implement the drone code.

I am planning to add the ability to run services (others instances, AWS RDS, …) if I can find some time.

Any suggestions or comments are welcome!

and here are some screenshots: https://www.t18s.fr/blobs/drone_runners.zip