Questions? Feedback? powered by Olark live chat software

Converge

The converge function can be used to adjust node counts and to apply phases. The :bootstrap phase is the first phase applied to any new node that is started, and :configure is always applied. Additional phases may also be specified. If the :configure phase is not explicitly passed, then it will always be applied as the first phase (or second, after :bootstrap on new nodes).

In this example we define a function that changes the number of running nodes for the “mygroup” group.

  (require 'pallet.core)

  (defn scale-cluster [n]
    (pallet.core/converge
      (pallet.core/group-spec "mygroup" :count n)
      :compute (pallet.compute/service "aws")))

converge also accepts a :prefix keyword argument, which is applied to the group names in the call. This can be used to build job specific clusters. In this example we scale load-balancer, web app and database nodes using a single load balancer and twice as many web app frontends as database backends.

  (require 'pallet.core)
  (def load-balancer (pallet.core/group-spec "lb"))
  (def web-app (pallet.core/group-spec "webapp"))
  (def database (pallet.core/group-spec "db"))

  (defn scale-cluster [prefix n]
    (pallet.core/converge
       {load-balancer 1
        web-app n
        database (inc (/ n 2))}
       :prefix prefix
       :compute (pallet.compute/service "aws")))

Lift

The lift function is used to apply phases but does not change node counts. The :configure phase is run by default only if no phases are explicitly specified.

Is this document broken? Are there missing pieces? Is it unclear? Help us fix it! Report an issue or read up on how to provide a fix.

If you found this document interesting and think others could benefit from it, please consider sharing it!

Thanks!

blog comments powered by Disqus