Forklift: an API application developed with go that enables virtual server migration from vcenter virtualization environment to openstack environment

Overview

forklift

What is the Forklift?

Forklift is an API application developed with go that enables virtual server migration from vcenter virtualization environment to openstack environment.

It's exports the vmdk file of a virtual server from the vcenter environment and converts it to QCOW2, which is the format that the KVM virtualization environment can understand. Then, in the openstack environment, it first creates an image, then creates a volume from this image and an instance from this volume. In the last step, it makes the instance accessible in the openstack environment by assigning a floating ip.

Environment

  • Rabbitmq: Forklift works asynchronously. When a request is received from the API, the message is queued and it performs the migration tasks in a certain order.
  • Mongodb: Forklift writes them to the database in order to keep the states of the migration tasks and to be able to store the history.
  • Vault: Forklift designed to read sensitive data such as vcenter passwords from the vault.

Api Doc

Swagger is used for api documentation. It can be accessed at /api/swagger/index.html when the application is run.

You might also like...
Don't get surprised by your environment variables.

checkenv Don't get surprised by your environment variables. Rationale At Bugout, we configure our applications using environment variables. This follo

Manage internal technical documentation that is enriched with live data accreted from your environment.

Manage internal technical documentation that is enriched with live data accreted from your environment.

Phalanx is a cloud-native full-text search and indexing server written in Go built on top of Bluge that provides endpoints through gRPC and traditional RESTful API.

Phalanx Phalanx is a cloud-native full-text search and indexing server written in Go built on top of Bluge that provides endpoints through gRPC and tr

Basic-api-with-go - A basic api with golang

I am creating my first API with GO. Install go get -u github.com/Yefhem/basic-ap

Go API wrapper for Greenhouse.io API

Greenhouse IO A Go interface to Greenhouse.io's API Useage Creating the Client NewClient accepts: A context; used for any HTTP requests made using the

Simple application to manage basic deployments

Simple application to manage basic deployments Usage You need to create a deployment yaml file (sample). then run the binary file with --config flag t

An example event-driven application using Atmo and NATS

Atmo + NATS Example Project This repo is an example of using Atmo with NATS as a streaming messaging layer. In this example, Atmo connects to NATS and

A golang application to mock the billing system

mock-billing-cli A golang application to mock the billing system in super markets Features View all items & items with filter Refill items with admin

Application to learn and demo Tekton pipelines

Tekton sample Application to learn and demo Tekton pipelines Building $ go test ./pkg/api && go build Running it locally $ podman-compose up --force-r

Owner
Ali
DevOps Engineer
Ali
Fishfindr - An application that is being developed to help me figure out the best places to fish based on my catch history

fishfindr Fishfindr is an application that is being developed to help me figure out the best places to fish based on my catch history. The front-end p

Jake Correnti 2 Feb 10, 2022
Year-end-review - enables those want to look back on PRs at the end of year to review PRs and the comments as single Markdown file.

year-end-review year-end-review enables those want to look back on PRs at the end of year to review PRs and the comments as single Markdown file. HOW

Satoru Kitaguchi 0 Dec 31, 2021
An Elasticsearch Migration Tool.

An Elasticsearch Migration Tool Elasticsearch cross version data migration. Dec 3rd, 2020: [EN] Cross version Elasticsearch data migration with ESM Fe

Medcl 736 Dec 19, 2022
Wprecon, is a vulnerability recognition tool in CMS Wordpress, 100% developed in Go.

WPrecon (Wordpress Recon) Hello! Welcome. Wprecon (Wordpress Recon), is a vulnerability recognition tool in CMS Wordpress, 100% developed in Go. Featu

blackbinn 272 Dec 25, 2022
Developed Code for the Fulfillment of the technical task given by Appointy using Go

INSTAGRAM BACKEND API BY KUNAL KULKARNI Table of Contents About The Project Built With Getting Started Prerequisites Installation Usage License Contac

Kunal Kulkarni 1 Oct 10, 2021
Lima launches Linux virtual machines on macOS, with automatic file sharing, port forwarding, and containerd.

Lima: Linux-on-Mac ("macOS subsystem for Linux", "containerd for Mac")

Akihiro Suda 10.3k Jan 8, 2023
Person is a simple CRUD application written in go which exposes API endpoint to create the person.

Person Person is a simple CRUD application written in go which exposes API endpoint to create the person. Installation Install docker in your local sy

null 0 Oct 18, 2021
Easy environment variables for Go

env Easy environment variables for Go Usage import "github.com/darkhelmet/env" ... s := env.String("USER") // Will panic if USER is not present sd :

Daniel Huckstep 11 Dec 21, 2018
:runner:runs go generate recursively on a specified path or environment variable and can filter by regex

Package generate Package generate runs go generate recursively on a specified path or environment variable like $GOPATH and can filter by regex Why wo

Go Playgound 28 Sep 27, 2022
Load environment variables from `.env` or `io.Reader` in Go.

gotenv Load environment variables from .env or io.Reader in Go. Usage Put the gotenv package on your import statement: import "github.com/subosito/got

Alif Rachmawadi 243 Dec 30, 2022