Libretto - Golang library to create Virtual Machines (VMs) on any cloud

  •        328

Libretto is a Golang library to create Virtual Machines (VM) on any cloud and Virtual Machine hosting platforms such as AWS, Azure, OpenStack, vSphere, VMware Workstation/Fusion, Exoscale or VirtualBox. Different providers have different utilities and API interfaces to achieve that, but the abstractions of their interfaces are quite similar.

Supported providers:

  • AWS
  • Azure
  • DigitalOcean
  • Exoscale
  • Google Cloud Platform
  • Openstack (Mirantis)
  • Virtualbox >= 4.3.30
  • VMware Fusion >= 8.0
  • VMware Workstation >= 8.0
  • vSphere > 5.0

https://github.com/apcera/libretto

Tags
Implementation
License
Platform

   




Related Projects

ignite - Ignite a Firecracker microVM

  •    Go

Weave Ignite is an open source Virtual Machine (VM) manager with a container UX and built-in GitOps management. Ignite makes Firecracker easy to use by adopting its developer experience from containers. With Ignite, you pick an OCI-compliant image (Docker image) that you want to run as a VM, and then just execute ignite run instead of docker run. There’s no need to use VM-specific tools to build .vdi, .vmdk, or .qcow2 images, just do a docker build from any base image you want (e.g. ubuntu:18.04 from Docker Hub), and add your preferred contents.

Packer - Build Automated Machine Images

  •    Go

Packer is a tool for building identical machine images for multiple platforms from a single source configuration. It is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel.

Firecracker - Secure and fast microVMs for serverless computing

  •    Rust

Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models. Firecracker runs workloads in lightweight virtual machines, called microVMs, which combine the security and isolation properties provided by hardware virtualization technology with the speed and flexibility of containers.

Mininet - An Instant Virtual Network on your Laptop (or other PC)

  •    Python

Mininet emulates a complete network of hosts, links, and switches on a single machine. It creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command.

Eclipse OpenJ9 - A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput

  •    Java

Eclipse OpenJ9 is an independent implementation of a Java Virtual Machine. "Independent implementation" means it was built using the Java Virtual Machine specification without using any code from any other Java Virtual Machine. The OpenJ9 JVM combines with the Java Class libraries from OpenJDK to create a complete JDK tuned for footprint, performance, and reliability that is well suited for cloud deployments.


open-vm-tools - Official repository of VMware open-vm-tools project

  •    C

open-vm-tools is a set of services and modules that enable several features in VMware products for better management of, and seamless user interactions with, guests. It includes kernel modules for enhancing the performance of virtual machines running Linux or other VMware supported Unix like guest operating systems.

Minio - Open source object storage server compatible with Amazon S3 APIs

  •    Go

Minio is an object storage server, It is compatible with Amazon S3 cloud storage service. It is best suited for storing unstructured data such as photos, videos, log files, backups and container / VM images. Size of an object can range from a few KBs to a maximum of 5TB. Minio server is light enough to be bundled with the application stack, similar to NodeJS, Redis and MySQL.

attention-ocr - A Tensorflow model for text recognition (CNN + seq2seq with visual attention) available as a Python package and compatible with Google Cloud ML Engine

  •    Python

Visual attention-based OCR model for image recognition with additional tools for creating TFRecords datasets and exporting the trained model with weights as a SavedModel or a frozen graph. This project is based on a model by Qi Guo and Yuntian Deng. You can find the original model in the da03/Attention-OCR repository.

Univention Corporate Server - Easy administration of your IT infrastructure

  •    C

Univention Corporate Server is a preconfigured, 100% open source Linux server and IT management system. It is free of charge and perfect for providing Microsoft Server-like services on the cloud or on the premises, to run and operate corporate IT environments with Windows- and Linux-based clients and to extend those environments with proven enterprise software, also either on the cloud or on the premises.

OpenNebula - Data Center Management Solution

  •    C++

OpenNebula provides solution for building and managing virtualized enterprise data centers and cloud infrastructures to enable on-premise IaaS clouds. OpenNebula interoperability makes cloud an evolution by leveraging existing IT assets, protecting your investments, and avoiding vendor lock-in. penNebula was designed to address the requirements of business use cases from leading companies and across multiple industries, such as Hosting, Telecom, eGovernment, Utility Computing and lot more.

OpenStack - Software for building Private and Public Clouds

  •    Python

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

old-vm - (OBSOLETE) Package and Run Virtual Machines as Docker Containers

  •    Go

Package and run KVM images as Kubernetes pods, run at scale. RancherVM allows you to create VMs that run inside of Kubernetes pods, called VM Pods. A VM pod looks and feels like a regular pod. Inside of each VM pod, however, is a container running a virtual machine instance. You can package any QEMU/KVM image as a Docker image, distribute it using any Docker registry such as DockerHub, and run it on RancherVM.

Harmony - Open Source Java SE

  •    Java

Apache Harmony is a modular Java runtime with class libraries and associated tools. One of the goals of the Harmony project is to create a design modular enough so that parts of the VM can be implemented in different languages. This project started in 2005 and it is under active development.

CloudStack - Infrastructure-as-a-Service (IaaS) software platform

  •    Java

CloudStack CE is an open source Infrastructure-as-a-Service (IaaS) software platform, which enables users to build, manage and deploy compute cloud environments.

Synnefo - Open source Cloud Software, Used to create massively scalable IaaS clouds

  •    Python

Synnefo is a complete open source cloud stack written in Python that provides Compute, Network, Image, Volume and Storage services, similar to the ones offered by AWS. Synnefo manages multiple Ganeti clusters at the backend for handling low-level VM operations and uses Archipelago to unify cloud storage. To boost 3rd-party compatibility, Synnefo exposes the OpenStack APIs to users.

vm - Package and Run Virtual Machines as Docker Containers

  •    Python

RancherVM allows you to create a special kind of containers called VM Containers. A VM container looks and feels like a regular container. It can be created from Dockerfile, distributed using DockerHub, managed using docker command line, and networked together using links and port bindings. Inside each VM container, however, is a virtual machine instance. You can package any QEMU/KVM image as RancherVM containers.RancherVM additionally comes with a management container that provides a web UI for managing virtual machines and accessing the VNC console.

pallet - Automates controlling and provisioning cloud server instances. DevOps for the JVM.

  •    Clojure

This is the unstable development branch. See the stable branch for production code. Pallet is used to provision and maintain servers on cloud and virtual machine infrastructure, and aims to solve the problem of providing a consistently configured running image across a range of clouds. It is designed for use from the Clojure REPL, from clojure code, and from the command line.

Clouddiscovery - The tool to help you discover resources in the cloud environment

  •    Python

Cloudiscovery helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. Now this tool only can check resources in AWS, but they are working to expand to other providers. The tool consists of various commands to help you understand the cloud infrastructure. It provides a CLI to easily perform desired actions.

FOSS-Cloud - Virtualization- and Cloud-Services

  •    PHP

The FOSS-Cloud is a Software, which enables you, to build your own Private or your Public-Cloud. The FOSS-Cloud environment (software and hardware) is an integrated and redundant server infrastructure to provide cloud-Services, Windows or Linux based SaaS, Terminal Server, Virtual Desktop Infrastructure (VDI) or virtual server-environmens. It makes virtual machines available, which can be accessed from internally as well as from the Internet.

cloud-hypervisor

  •    Rust

This project is an experiment and should not be used with production workloads. Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) that runs on top of KVM. The project focuses on exclusively running modern, cloud workloads, on top of a limited set of hardware architectures and platforms. Cloud workloads refers to those that are usually run by customers inside a cloud provider. For our purposes this means modern Linux* distributions with most I/O handled by paravirtualised devices (i.e. virtio), no requirement for legacy devices and recent CPUs and KVM.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.