Skip to content

Latest commit

 

History

History
92 lines (68 loc) · 1.56 KB

vultr.md

File metadata and controls

92 lines (68 loc) · 1.56 KB

Vultr Integration

OPS works perfectly fine with Vultr.

For most operations you'll want to use the following config and you'll need access to your API key and the access key and secret access key found in your portal:

{
  "CloudConfig": {
    "Zone": "ewr1",
    "BucketName": "nanos-test"
  }
}
package main

import (
  "fmt"
  "net/http"
)

func main() {
  fmt.Println("hello world!")

  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Welcome to my website!")
  })

  fs := http.FileServer(http.Dir("static/"))
  http.Handle("/static/", http.StripPrefix("/static/", fs))

  http.ListenAndServe("0.0.0.0:8080", nil)
}

Image Operations

Create Image

VULTR_TOKEN=my_api_token \
VULTR_ACCESS=my_access_token \
VULTR_SECRET=my_vultr_secret \
ops image create <elf_file|program> -i <image_name> -c config.json -z ewr1 -t vultr

List Images

VULTR_TOKEN=my_api_token \
VULTR_ACCESS=my_access_token \
VULTR_SECRET=my_vultr_secret \
ops image list -z ewr1 -t vultr

Delete Image

Instance Operations

Create Instance

VULTR_TOKEN=my_api_token \
VULTR_ACCESS=my_access_token \
VULTR_SECRET=my_vultr_secret \
ops instance create 6f5e4eebdf761 -z ewr1 -t vultr

You may assign a static ("reserved ip") using the following config:

"CloudConfig": {
    "StaticIP": "1.2.3.4"
}

List Instances

VULTR_TOKEN=my_api_token \
VULTR_ACCESS=my_access_token \
VULTR_SECRET=my_vultr_secret \
ops instance list -z ewr1 -t vultr

Get Logs for Instance

Delete Instance