diff --git a/manifests/config.pp b/manifests/config.pp index 00b568b..b485316 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -13,6 +13,7 @@ $authenticator, $authorizer, $rpc_address, + $rpc_broadcast_address, $rpc_port, $rpc_server_type, $rpc_min_threads, diff --git a/manifests/init.pp b/manifests/init.pp index bc214b8..23e98f2 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -25,6 +25,7 @@ $start_native_transport = $cassandra::params::start_native_transport, $start_rpc = $cassandra::params::start_rpc, $rpc_address = $cassandra::params::rpc_address, + $rpc_broadcast_address = $cassandra::params::rpc_broadcast_address, $rpc_port = $cassandra::params::rpc_port, $rpc_server_type = $cassandra::params::rpc_server_type, $rpc_min_threads = $cassandra::params::rpc_min_threads, @@ -128,6 +129,10 @@ fail('rpc_address must be an IP address') } + if(!empty($rpc_broadcast_address) and !is_ip_address($rpc_broadcast_address)) { + fail('rpc_broadcast_address must be an IP address') + } + if(!is_integer($rpc_port)) { fail('rpc_port must be a port number between 1 and 65535') } @@ -200,6 +205,7 @@ authenticator => $authenticator, authorizer => $authorizer, rpc_address => $rpc_address, + rpc_broadcast_address => $rpc_broadcast_address, rpc_port => $rpc_port, rpc_server_type => $rpc_server_type, rpc_min_threads => $rpc_min_threads, diff --git a/manifests/params.pp b/manifests/params.pp index 64b4db8..ac05189 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -153,6 +153,11 @@ default => $::cassandra_rpc_address, } + $rpc_broadcast_address = $::cassandra_rpc_broadcast_address ? { + undef => '', + default => $::cassandra_rpc_broadcast_address, + } + $rpc_port = $::cassandra_rpc_port ? { undef => 9160, default => $::cassandra_rpc_port, diff --git a/templates/cassandra2.1.yaml.erb b/templates/cassandra2.1.yaml.erb index 777192f..cafb3be 100644 --- a/templates/cassandra2.1.yaml.erb +++ b/templates/cassandra2.1.yaml.erb @@ -428,6 +428,9 @@ rpc_port: <%= @rpc_port %> # rpc_address. If rpc_address is set to 0.0.0.0, broadcast_rpc_address must # be set. # broadcast_rpc_address: 1.2.3.4 +<% unless @rpc_broadcast_address.nil? || @rpc_broadcast_address.empty? %> +broadcast_rpc_address: <%= @rpc_broadcast_address %> +<% end %> # enable or disable keepalive on rpc/native connections rpc_keepalive: true