Skip to content
forked from praiskup/resalloc

Allocator and manager for (expensive) resources

License

Notifications You must be signed in to change notification settings

FrostyX/resalloc

 
 

Repository files navigation

Resource Allocator
------------------

This project aims to help with taking care of (rather expensive)
resources, for example several ephemeral virtual machines for the purposes
of your CI.

Overview
--------

Server side allows you to:
  - automatically allocate resources
  - periodically check that the resources are working properly
  - and once the resource is not needed anymore, dispose it

The client side let's your users:
  - request particular resource type
  - wait till the resource is available
  - release the resource

Such allocation of resource might be time consuming, so to not let your
users wait too much -- the server side is able to pre-allocate several
instances in advance.  For more info, have a look at ./config/pools.yaml
configuration example.

Typical client use-cases
------------------------

1. get the resource, and wait till it is ready

    $ ticket=$(resalloc ticket --tag x86_64 --tag jenkins_vm)
    $ output=$(resalloc ticket-wait $ticket)

2. get the resource, and periodically check till it is available

    $ ticket=$(resalloc ticket --tag x86_64 --tag jenkins_vm)
    $ while ! resalloc ticket-check $ticket; do true; done
    $ output=$(resalloc ticket-check $ticket)

Then, you can work with the resource:

    $ ip=$output
    $ ssh root@"$ip" -c "do something"
    $ resalloc ticket-close "$ticket"

The $output variable will contain important info from the 'cmd_new'
command run by resalloc server.  If you request VMs, you typically want
'cmd_new' command which outputs an IP of the allocated virtual machine.

Installation
------------

The released versions are installable from Fedora and Fedora EPEL repositories,
just do

    $ sudo dnf install -y resalloc        # clients
    $ sudo dnf install -y resalloc-server # server

Pre-release RPMs are available in testing Copr repositories:
https://copr.fedorainfracloud.org/coprs/praiskup/resalloc/

About

Allocator and manager for (expensive) resources

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 67.2%
  • Shell 22.8%
  • Smarty 7.8%
  • Makefile 1.7%
  • Mako 0.5%