All Projects → jsiebens → nomad-droplets-autoscaler

jsiebens / nomad-droplets-autoscaler

Licence: MIT license
DigitalOcean Droplets target plugin for HashiCorp Nomad Autoscaler

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to nomad-droplets-autoscaler

libra
A Nomad auto scaler
Stars: ✭ 72 (+71.43%)
Mutual labels:  hashicorp, nomad, autoscaling, hashicorp-nomad
Replicator
Automated Cluster and Job Scaling For HashiCorp Nomad
Stars: ✭ 166 (+295.24%)
Mutual labels:  hashicorp, nomad, autoscaling
Sherpa
Sherpa is a highly available, fast, and flexible horizontal job scaling for HashiCorp Nomad. It is capable of running in a number of different modes to suit different requirements, and can scale based on Nomad resource metrics or external sources.
Stars: ✭ 165 (+292.86%)
Mutual labels:  hashicorp, nomad, autoscaling
rundeck-nomad-plugin
Rundeck plugin running jobs on Nomad cluster.
Stars: ✭ 17 (-59.52%)
Mutual labels:  hashicorp, nomad, hashicorp-nomad
Awesome Nomad
A curated list of amazingly awesome Nomad tools and shiny things.
Stars: ✭ 530 (+1161.9%)
Mutual labels:  hashicorp, nomad
Levant
An open source templating and deployment tool for HashiCorp Nomad jobs
Stars: ✭ 510 (+1114.29%)
Mutual labels:  hashicorp, nomad
Hashi Ui
A modern user interface for @hashicorp Consul & Nomad
Stars: ✭ 1,119 (+2564.29%)
Mutual labels:  hashicorp, nomad
Nomadfiles
A collection of Nomad job files for deploying applications to a cluster
Stars: ✭ 89 (+111.9%)
Mutual labels:  hashicorp, nomad
Python Nomad
Client library Hashicorp Nomad
Stars: ✭ 90 (+114.29%)
Mutual labels:  hashicorp, nomad
Nomad Firehose
Firehose all nomad job, allocation, nodes and evaluations changes to rabbitmq, kinesis or stdout
Stars: ✭ 96 (+128.57%)
Mutual labels:  hashicorp, nomad
Hashi Up
bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute
Stars: ✭ 113 (+169.05%)
Mutual labels:  hashicorp, nomad
Ansible Nomad
⌚️ Ansible role for Nomad
Stars: ✭ 157 (+273.81%)
Mutual labels:  hashicorp, nomad
nomad-toast
A tool for receiving notifications based on HashiCorp Nomad events.
Stars: ✭ 40 (-4.76%)
Mutual labels:  hashicorp, nomad
nomad-consult-ansible-centos
Deploy nomad & consult on centos with ansible
Stars: ✭ 17 (-59.52%)
Mutual labels:  hashicorp, nomad
Trek
Trek is a CLI/ncurses explorer for HashiCorp Nomad clusters.
Stars: ✭ 26 (-38.1%)
Mutual labels:  hashicorp, nomad
vim-hcl
Syntax highlighting for HashiCorp Configuration Language (HCL)
Stars: ✭ 83 (+97.62%)
Mutual labels:  hashicorp, nomad
nomad
Dockerized Nomad
Stars: ✭ 33 (-21.43%)
Mutual labels:  hashicorp, nomad
hashidays-london
Code used for the demo of Going Multi-Cloud with Terraform and Nomad
Stars: ✭ 20 (-52.38%)
Mutual labels:  hashicorp, nomad
Nomad Helper
Useful tools for working with @hashicorp Nomad at scale
Stars: ✭ 96 (+128.57%)
Mutual labels:  hashicorp, nomad
scalr
Autoscaling for Clouds
Stars: ✭ 17 (-59.52%)
Mutual labels:  digitalocean, autoscaling

Nomad DigitalOcean Droplets Autoscaler

The do-droplets target plugin allows for the scaling of the Nomad cluster clients via creating and destroying DigitalOcean Droplets.

Requirements

  • nomad autoscaler 0.3.0+
  • DigitalOcean account

Documentation

Agent Configuration Options

To use the do-droplets target plugin, the agent configuration needs to be populated with the appropriate target block. Currently, Personal Access Token (PAT) is the only method of authenticating with the API. You can manage your tokens at the DigitalOcean Control Panel Applications Page.

target "do-droplets" {
  driver = "do-droplets"
  config = {
    token = "local/token"
  }
}
  • token (string: "") - a DigitalOcean API token or a path to a file containing a token. Alternatively, this can also be specified using environment variables ordered by precedence:
    • DIGITALOCEAN_TOKEN
    • DIGITALOCEAN_ACCESS_TOKEN

Policy Configuration Options

check "hashistack-allocated-cpu" {
  # ...
  target "do-droplets" {
    name                = "hashi-worker"
    region              = "nyc1"
    size                = "s-1vcpu-1gb"
    snapshot_id         = 84589509
    user_data           = "local/hashi-worker-user-data.sh"
    tags                = "hashi-stack"
    node_class          = "hashistack"
    node_drain_deadline = "5m"
    node_purge          = "true"
  }
  # ...
}
  • name (string: <required>) - A logical name of a Droplet "group". Every managed Droplet will be tagged with this value and its name is this value with a random suffix

  • region (string: <required>) - The region to start in.

  • vpc_uuid (string: <required>) - The ID of the VPC where the Droplet will be located.

  • size (string: <required>) - The unique slug that indentifies the type of Droplet. You can find a list of available slugs on DigitalOcean API documentation.

  • snapshot_id (string: <required>) - The Droplet image ID.

  • user_data (string: "") - A string of the desired User Data for the Droplet or a path to a file containing the User Data

  • ssh_keys (string: "") - A comma-separated list of SSH fingerprints to enable

  • tags (string: "") - A comma-separated list of additional tags to be applied to the Droplets.

  • datacenter (string: "") - The Nomad client datacenter identifier used to group nodes into a pool of resource. Conflicts with node_class.

  • node_class (string: "") - The Nomad client node class identifier used to group nodes into a pool of resource. Conflicts with datacenter.

  • node_drain_deadline (duration: "15m") The Nomad drain deadline to use when performing node draining actions. Note that the default value for this setting differs from Nomad's default of 1h.

  • node_drain_ignore_system_jobs (bool: "false") A boolean flag used to control if system jobs should be stopped when performing node draining actions.

  • node_purge (bool: "false") A boolean flag to determine whether Nomad clients should be purged when performing scale in actions.

  • node_selector_strategy (string: "least_busy") The strategy to use when selecting nodes for termination. Refer to the node selector strategy documentation for more information.

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].