os_nova plugin for Nomad autoscaler enhanced

Ein kleines Highlight in dieser Woche: Vor zwei Wochen hatte ich bei Jorge Marey - dem Entwickler des Nomad nova autoscaler plugins - nachgefragt, ob es nicht möglich wäre, optional neuen - vom Autoscaler erzeugten - Instanzen gleich eine Floating IP-Adresse zuzuweisen.

Er wollte sich die Sache ansehen und hat sich gestern zurückgemeldet. Nach kurzem Austausch hat der die Funktion dann eingebaut.

In meiner Testumgebung für den Autoscaler habe ich einfach die neue Option floatingip_pool_name hinzugefügt:

scaling "worker_pool_policy" {
  enabled = true
  min     = 2
  max     = 5

  policy {
    cooldown            = "2m"
    evaluation_interval = "1m"

    check "cpu_allocated_percentage" {
      source = "nomad-apm"
      query  = "percentage-allocated_cpu"
      strategy "target-value" {
        target = 40
      }
    }

    check "mem_allocated_percentage" {
      source = "nomad-apm"
      query  = "percentage-allocated_memory"
      strategy "target-value" {
        target = 20
      }
    }

    target "os-nova" {
      dry-run = false

#     evenly_split_azs     = true
      stop_first           = true
      image_id             = "efb0d9ac-2d17-4e5c-8ee6-5b2ec7af9c9d"
      flavor_name          = "2C-2GB-20GB"
      pool_name            = "nom-pool"
      name_prefix          = "nom-"
      network_id           = "9e7bd5ca-eba3-49b6-a522-9d2ea6cc52a5"
#     user_data_template   = "user-data.gotxt"
      security_groups      = "default"
      floatingip_pool_name = "ext01"
      availability_zones   = "az1"
      tags                 = "nom-pool,ubuntu-minimal"

      node_class                    = "nom-pool"
      node_drain_deadline           = "1h"
      node_drain_ignore_system_jobs = false
      node_purge                    = true
      node_selector_strategy        = "least_busy"
    }
  }
}

So sieht das dann im Log aus (genau wie vorher):

2024-06-27T12:42:11.166Z [INFO]  policy_eval.worker: scaling target: id=bcad7594-51f0-93dd-4d52-a465980e464f policy_id=3f30b57b-7267-0206-739a-f7cf75173d60 queue=cluster target=os-nova from=1 to=2 reason="scaling up because current count 1 is lower than policy min value of 2" meta=map[]
2024-06-27T12:42:23.706Z [INFO]  external_plugin.os-nova: successfully performed and verified scaling out: action=scale_out desired_count=1 pool_name=nom-pool timestamp=2024-06-27T12:42:23.705Z

Neu erzeugte Instanzen bekommen jetzt automatisch eine Floating IP-Adresse zugewiesen.