Skip to content
This repository has been archived by the owner on Feb 6, 2019. It is now read-only.

drish/hyperb

Repository files navigation

Unfortunately this project is being archived since hyper.sh shutdown

Hyperb

Hyperb is a Hyper.sh API ruby gem.


This gem is under active development.

Installation

Add this line to your application"s Gemfile:

gem "hyperb"

And then execute:

$ bundle

Or install it yourself as:

$ gem install hyperb

Configuration

Hyper.sh requires you to create credentials on their dashboard, after that you can configure your client as following:

client = Hyperb::Client.new(access_key: "ak", secret_key: "sk", region: "us-west-1")

or

client = Hyperb::Client.new do |client|
  client.secret_key = "secret_key"
  client.access_key = "access_key"
  client.region = "eu-central-1"
end

If region is not set, us-west-1 is set by default.

Usage Examples

After configuring a client, you can run the following examples.

get api version

client.version

fetch all images

client.images

remove an image

client.remove_image id: "id-or-name"

create an image (pull)

client.create_image from_image: "busybox"

pull an image from gcr (using service account)

client.create_image from_image: "gcr.io/project/owner/gcr", x_registry_auth: { username: "_json_key", password: File.new("./path/service-account.json"), email: "e@e.com", serveraddress: "https://gcr.io" }

create container (defaults to s1 size)

client.create_container name: "nginx-container", image: "nginx"

create container with specific size

client.create_container name: "nginx-container", image: "nginx", labels: { sh_hyper_instancetype: "m1" }

start container

client.start_container name: "nginx-container"

container logs

logs = client.container_logs id: "nginx", stdout: true, stderr: true, follow: true

while body = logs.readpartial(1024)
  puts body
end

allocate an floating ip

ips = client.fip_allocate count: 2
puts ips
#["8.8.8.8", "5.5.5.5"]

For more usage examples, please see the full documentation.

APIs (v1.23) Covered

API

Images

  • inspect image
  • create image
  • list images
  • remove images

Volumes

  • list volumes
  • inspect volume
  • create volume
  • remove volume

Containers

  • create container (not all arguments supported yet)
  • start container
  • stop container
  • kill container
  • get container logs
  • get container stats
  • remove containers
  • rename container

Network

  • floating ip allocate
  • floating ip release
  • floating ip list
  • floating ip attach
  • floating ip detach
  • floating ip name

Compose

  • compose create
  • compose up
  • compose down
  • compose rm

Snapshot

  • create snapshot

Service

  • create service
  • remove service
  • inspect service
  • list services

Func (beta)

  • create func
  • remove func
  • list funcs
  • func status
  • call func

Misc.

  • version
  • info

Security Groups

wip

Event

wip

Cron (beta)

wip

Contributing

Bug reports and pull requests are welcome at https://github.com/drish/hyperb.

License

The gem is available as open source under the terms of the MIT License.