4 ms·
I don't know why projects like this don't use libcloud which allows you to use the many cloud platforms [1] through one API. [1] https://libcloud.readthedocs.i
by hackerboos 10y ago
I don't know why projects like this don't use libcloud which allows you to use the many cloud platforms [1] through one API.
[1] https://libcloud.readthedocs.io/en/latest/compute/supported_providers.html https://libcloud.readthedocs.io/en/latest/compute/supported_...
- justinsb 10y agoWell I can't answer for other projects, but libcloud specifically is in Python, and kops is in golang. But you raise a valid question: why not use a cloud abstraction library like libcloud - for example embedding terraform. It would definitely short-cut things, but the trickier piece IMO is figuring out what cloud resources to create, rather than making the API calls. Embedding terraform might save a little time up front, but would also make it harder where terraform didn't work quite the way we wanted it to (the state store), or even if we hit any bugs. The Kubernetes experience with Salt was not overly positive in this regard (though this was likely more because of how we were using it than Salt itself). It is possible to build a kops cloud implementation that doesn't do direct-to-cloud-API-calls, but instead just outputs terraform - that would be faster - but you would still have to figure out the right way to run Kubernetes on cloud X. Most of the work is in doing that!
- hackerboos 10y agoI understand your point - just the vendor lock-in of AWS/GCP can be frustrating if you do not host with them. There are also golang alternatives to libcloud one of them ->https://github.com/apcera/libretto https://github.com/apcera/libretto
- grkvlt 10y agoThis is basically what we do at Cloudsoft. For the Kubernetes cluster deployment in Clocker [1] we use the features of Apache jclouds [2] and Brooklyn to support pretty much any cloud, public or private. At the moment, Clocker can deploy a Kubernetes cluster with an HAProxy load-balanced set of masters and an auto-scalable cluster of workers, using Canal (Flannel and Calico) [3] for networking. 1. https://github.com/brooklyncentral/clocker https://github.com/brooklyncentral/clocker 2. http://jclouds.apache.org/ http://jclouds.apache.org/ 3. https://github.com/tigera/canal https://github.com/tigera/canal