Skip to content

pkinney/libcluster-gce-strategy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Compute Engine Cluster Strategy

Hex.pm

This Cluster Strategy can be used with libcluster to automatically connect nodes running on GCE instances within the same Instance Group.

You can follow the GCP tutorial for setting up an instance group for Elixir. Once up and running, this strategy uses the instance metadata HTTP endpoint and the Google Cloud API to discover other instances within the instance group and will automatically connect with any it finds.

Usage

Add the libcluster_gce_strategy package to your dependencies:

  defp deps do
    [
      {:libcluster_gce_strategy, "~> 0.1"}
    ]
  end

and add the Cluster Supervisor to your application's supervision tree.

defmodule MyApp.Application do
  use Application
  require Logger
  
  def start(_type, _args) do
    topologies = [
      gce: [
        strategy: Cluster.Strategy.GoogleComputeEngine,
        config: [
          release_name: :myapp
        ]
      ]
    ]
  
    children = [
      MyAppWeb.Endpoint,
      {Cluster.Supervisor, [topologies, [name: Ding.ClusterSupervisor]]}
    ]

    Supervisor.start_link(children, [strategy: :one_for_one, name: MyApp.Supervisor])
  end
end

Notes

This implementation was heavily influenced by the GAE Implementation by @alexgaribay.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages