All Projects → cloudlibz → Gocloud

cloudlibz / Gocloud

Licence: apache-2.0
☁️ Go API for open cloud

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gocloud

Manageiq
ManageIQ Open-Source Management Platform
Stars: ✭ 1,089 (+872.32%)
Mutual labels:  aws, cloud, azure, google-cloud
Skyark
SkyArk helps to discover, assess and secure the most privileged entities in Azure and AWS
Stars: ✭ 526 (+369.64%)
Mutual labels:  aws, cloud, azure
Terraformer
CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code
Stars: ✭ 6,316 (+5539.29%)
Mutual labels:  aws, cloud, google-cloud
Go Cloud
The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go.
Stars: ✭ 8,124 (+7153.57%)
Mutual labels:  aws, cloud, azure
Midway
🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 🌈
Stars: ✭ 5,080 (+4435.71%)
Mutual labels:  aws, cloud, azure
Terracognita
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Stars: ✭ 452 (+303.57%)
Mutual labels:  aws, cloud, azure
Learning Cloud
List of resources - courses, sample code, articles and screencasts for learning AWS, Azure, GCP and Alibaba Cloud
Stars: ✭ 100 (-10.71%)
Mutual labels:  aws, cloud, azure
Leapp
Leapp is the tool to access your cloud; It securely stores your access information and generates temporary credential sets to access your cloud ecosystem from your local machine.
Stars: ✭ 306 (+173.21%)
Mutual labels:  aws, cloud, azure
Typhoon
Minimal and free Kubernetes distribution with Terraform
Stars: ✭ 1,397 (+1147.32%)
Mutual labels:  aws, azure, google-cloud
Pulumi
Pulumi - Developer-First Infrastructure as Code. Your Cloud, Your Language, Your Way 🚀
Stars: ✭ 10,887 (+9620.54%)
Mutual labels:  aws, cloud, azure
Terratag
Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources
Stars: ✭ 385 (+243.75%)
Mutual labels:  aws, cloud, azure
Terrastack
This project is archived, but the idea of Terrastack lives on in the Terraform CDK. - https://github.com/hashicorp/terraform-cdk
Stars: ✭ 71 (-36.61%)
Mutual labels:  aws, azure, google-cloud
Cloud Custodian
Rules engine for cloud security, cost optimization, and governance, DSL in yaml for policies to query, filter, and take actions on resources
Stars: ✭ 3,926 (+3405.36%)
Mutual labels:  aws, cloud, azure
Cloudsploit
Cloud Security Posture Management (CSPM)
Stars: ✭ 1,338 (+1094.64%)
Mutual labels:  aws, cloud, azure
Docker Android
Android in docker solution with noVNC supported and video recording
Stars: ✭ 4,042 (+3508.93%)
Mutual labels:  aws, cloud, azure
Cloudcomparer
Compare the various managed cloud services offered by the major public cloud providers in the market.
Stars: ✭ 678 (+505.36%)
Mutual labels:  aws, cloud, azure
Scoutsuite
Multi-Cloud Security Auditing Tool
Stars: ✭ 3,803 (+3295.54%)
Mutual labels:  aws, cloud, azure
Arvados
An open source platform for managing and analyzing biomedical big data
Stars: ✭ 274 (+144.64%)
Mutual labels:  aws, cloud, azure
Docker Swarm
🐳🐳🐳 This repository is part of a blog series on Docker Swarm example using VirtualBox, OVH Openstack, Azure and Amazon Web Services AWS
Stars: ✭ 43 (-61.61%)
Mutual labels:  aws, cloud, azure
Cloud Portal
Self service web portal for different Cloud platforms like Azure, AWS and VMWare vSphere.
Stars: ✭ 60 (-46.43%)
Mutual labels:  aws, cloud, azure

GoCloud Logo

Codacy Badge Build Status Gitter docs

gocloud

GoCloud is a golang library which hides the difference between different APIs provided by varied cloud providers (AWS, GCP, OpenStack etc.) and allows you to manage different cloud resources through a unified and easy to use API.

Service Types

Compute -- Allows you to manage cloud and virtual servers.

Compute Storage -- Allows you to manage Compute storage.

Container -- Allows users to install and deploy containers onto container based virtualization platforms.

Load balancer -- Allows you to manager Load Balancer service.

DNS -- Allows you to manage DNS service.

Service Providers

AWS

Google

DigitalOcean

Ali-cloud

Vultr

Currently, implementations for other cloud providers are being worked on.

Install

Linux (Ubuntu)

  1. Install golang.

    $ sudo apt-get update -y
    $ sudo apt-get install golang -y
    
  2. Set GOPATH environment variable. Run gedit ~/.bashrc.
    Copy the following in your .bashrc file:

export GOPATH=$HOME/gopath
export GOBIN=$HOME/gopath/bin
  1. Test your installation by copying the following piece of code in a file. Save the file as gotest.go. Run the file using the command go run gotest.go. If that command returns “Hello World!”, then Go is successfully installed and functional.
package main
import "fmt"
func main() {
    fmt.Printf("Hello World!\n")
}
  1. Now we need to fetch the gocloud repository and other necessary packages. Run the following commands in order:
$ go get github.com/cloudlibz/gocloud
$ go get golang.org/x/oauth2
$ go get cloud.google.com/go/compute/metadata
  1. Create a directory called .gocloud in your HOME directory. Download your AWS, Google and DigitalOcean access credentials and store them in a file in your .gocloud folder.

    AWS:

    Save your AWS credentials in a file named amazoncloudconfig.json.

    {
      "AWSAccessKeyID": "xxxxxxxxxxxx",
      "AWSSecretKey": "xxxxxxxxxxxx"
    }
    

    Google Cloud Services:

    Save your Google Cloud credentials in a file named googlecloudconfig.json. The file is downloaded in the required format.

    DigitalOcean:

    Save your DigitalOcean credentials in a file named digioceancloudconfig.json.

    {
      "DigiOceanAccessToken": "xxxxxxxxxxxx"
    }
    

    Ali-cloud:

    Save your Ali-cloud credentials in a file named alicloudconfig.json.

    {
      "AliAccessKeyID":"xxxxxxxxxxxx",
      "AliAccessKeySecret":"xxxxxxxxxxxx"
    }
    

    Vultr:

    Save your Vultr credentials in a file named vultrconfig.json.

    {
      "VultrAPIKey":"xxxxxxxxxxxx"
    }
    

    You can also set your credentials as environment variables.

    AWS:

    export AWSAccessKeyID =  "xxxxxxxxxxxx"
    export AWSSecretKey = "xxxxxxxxxxxx"
    

    Google Cloud Services:

    export PrivateKey =  "xxxxxxxxxxxx"
    export Type =  "xxxxxxxxxxxx"
    export ProjectID = "xxxxxxxxxxxx"
    export PrivateKeyID = "xxxxxxxxxxxx"
    export ClientEmail = "xxxxxxxxxxxx"
    export ClientID = "xxxxxxxxxxxx"
    export AuthURI = "xxxxxxxxxxxx"
    export TokenURI = "xxxxxxxxxxxx"
    export AuthProviderX509CertURL = "xxxxxxxxxxxx"
    export ClientX509CertURL =  "xxxxxxxxxxxx"
    

    DigitalOcean:

    export DigiOceanAccessToken =  "xxxxxxxxxxxx"
    

    Ali-cloud:

    export AliAccessKeyID =  "xxxxxxxxxxxx"
    export AliAccessKeySecret =  "xxxxxxxxxxxx"
    

    Vultr:

    export VultrAPIKey =  "xxxxxxxxxxxx"
    
  2. You are all set to use gocloud! Check out the following YouTube videos for more information and usage examples: https://youtu.be/4LxsAeoonlY?list=PLOdfztY25UNnxK_0KRRHSngJIyVLDKZxq&t=3

Development setup

$ git clone https://github.com/cloudlibz/gocloud
$ cd gocloud

Unit tests

$ cd gocloud
$ go test -v ./...

Please make sure to delete all your instances, storage blocks, load balancers, containers, and DNS settings once you run the tests by visiting the respective web portals of the cloud providers.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].