Get pubsub nodes from puppetdb
[mirror/dsa-puppet.git] / modules / roles / manifests / pubsub.pp
index 4600665..20554ec 100644 (file)
@@ -4,15 +4,13 @@ class roles::pubsub {
 
   $cluster_cookie  = $roles::pubsub::params::cluster_cookie
 
-  $cc_master       = rainier
-  $cc_secondary    = rapoport
+  # Get the fact named hostname from all nodes in puppetdb with class Roles::Pubsub
+  $query = 'facts { name = "hostname" and resources { type = "Class" and title = "Roles::Pubsub" } }'
+  $cluster_nodes = sort(puppetdb_query($query).map |$value| { $value["value"] })
 
   class { 'rabbitmq':
     config_cluster    => true,
-    cluster_nodes     => [
-      $cc_master,
-      $cc_secondary,
-    ],
+    cluster_nodes     => $cluster_nodes,
     cluster_node_type => 'disc',
     erlang_cookie     => '8r17so6o1s124ns49sr08n0o24342160',
     delete_guest_user => true,
@@ -35,15 +33,9 @@ class roles::pubsub {
     rule        => '&SERVICE_RANGE(tcp, 5671, $HOST_DEBIAN)'
   }
 
-  if $::hostname == $cc_master {
-    $other = join(getfromhash($deprecated::allnodeinfo, "${cc_secondary}.debian.org", 'ipHostNumber'), ' ')
-  } else {
-    $other = join(getfromhash($deprecated::allnodeinfo, "${cc_master}.debian.org", 'ipHostNumber'), ' ')
-  }
-
-  ferm::rule { 'rabbitmq_cluster':
-    domain      => '(ip ip6)',
-    description => 'rabbitmq cluster connections',
-    rule        => "proto tcp mod state state (NEW) saddr (${other}) ACCEPT"
+  @@ferm::rule::simple { "pubsub-cluster-from-${::fqdn}":
+    tag   => 'roles::pubsub::intra-cluster',
+    saddr => $base::public_addresses,
   }
+  Ferm::Rule::Simple <<| tag == 'roles::pubsub::intra-cluster' |>>
 }