Drivers - adobe/aquarium-fish GitHub Wiki

Aquarium Fish drivers are serving one purpose - to onboard as much resource providers as possible.

You can read about each driver on it's own wiki page, those are started with prefix "Driver: " - so if you need details about specific driver configuration - please go ahead and use those.

The drivers are separated from the Fish codebase (lives as subdirs in /lib/drivers directory) by strict interface to interact with them. So it's really easy to prepare your own driver even if you know nothing about the Aquarium Fish itself: just copy and rename the driver folder you like, modify it to serve your needs and build your own version of Fish, then you can create a Label with your driver to use it.

Driver could utilize local resources (like VM's or docker containers) that you running on the same node or could exploit remote resources (like AWS cloud or remote docker server). For local resources drivers shares the local node resources counter - CPU, RAM and Disk for example. So VMX will not harm Docker, when Docker said that those CPU's are used - but it really depends on the drivers and labels configurations, so it's up to the driver to decide will it support overbook and use multi-tenancy or not.

Drivers has tasks interface, which allows to do actions with resources - it's useful when you need to snapshot the VM for example or build a new image from it.

If the Fish is running with no configuration - the drivers are starting with default configuration. It's enough for VMX & Docker, but sometimes not that great for more complicated drivers like AWS & Native. So for such drivers you can specify config in Fish config, for example:

node_name: supernode
node_location: sf
default_resource_lifetime: 1h30m

drivers:
  - name: aws
    cfg:
      region: us-west-2
      key_id: YOUR_KEY_ID
      secret_key: YOUR_SECRET_KEY
      instance_tags:
        ResourceManager: AquariumFish

  # You can also specify driver with suffix - so it will have unique configuration and you will be able to switch
  # between such aws driver instances in Label by using "driver: aws/dev" or "driver: aws" in this config case
  - name: aws/dev
    cfg:
      region: us-west-1
      key_id: YOUR_KEY_ID_2
      secret_key: YOUR_SECRET_KEY_2
      instance_tags:
        ResourceManager: AquariumFish

So the drivers could be utilized in multiple configurations with different suffixes separated from the driver name by /, but by default they will use just driver name.

⚠️ **GitHub.com Fallback** ⚠️