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:
- 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
- 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!