diff --git a/Gemfile b/Gemfile index c132a7e..b5ba432 100644 --- a/Gemfile +++ b/Gemfile @@ -11,11 +11,12 @@ def location_for(place, fake_version = nil) end group :development, :unit_tests do + gem 'nokogiri', '1.6.8.1', :require => false gem 'rspec-puppet', '~> 2.4', :require => false gem 'fast_gettext', '1.1.0', :require => false gem 'rspec-core', '3.5', :require => false gem 'puppetlabs_spec_helper', '1.1.1', :require => false - gem 'puppet-lint', '>= 0.3.2', :require => false + gem 'puppet-lint', '2.0.2', :require => false gem 'metadata-json-lint', :require => false gem 'faraday', :require => false # addressable 2.5.0 pulls in public_suffix >= 2.0 requires ruby >= 2.0 @@ -26,6 +27,7 @@ end group :system_tests do + gem 'beaker-hostgenerator', '0.8.1' gem 'beaker' , '< 3.0.0' if beaker_version = ENV['BEAKER_VERSION'] ## TODO - Remove hardcoded version as soon as BKR-885 is fixed @@ -38,8 +40,8 @@ group :system_tests do gem 'beaker-rspec', :require => false end - gem 'serverspec', :require => false - gem 'beaker-puppet_install_helper', :require => false + gem 'serverspec', '2.37.2', :require => false + gem 'beaker-puppet_install_helper' ,'0.5.0', :require => false gem 'r10k', :require => false end diff --git a/manifests/analytics.pp b/manifests/analytics.pp index e8ad187..091e388 100644 --- a/manifests/analytics.pp +++ b/manifests/analytics.pp @@ -43,6 +43,22 @@ # If you want to run calliope on a custom port, specify it # Default: false # +# [*midonet_version*] +# Version of midonet +# Default: '5.2' +# +# [*elk_bind_ip*] +# Where to bind elk instance +# Default: 'undef' , will bind to $::ipaddress +# +# [*elk_cluster_name*] +# Name of elk cluster +# Default: 'elasticsearch' +# +# [*elk_hosts*] +# List of elk seeds +# Default: ['$::ipaddress'] +# # Please note that Keystone port is not mandatory and defaulted to 35537. # # === Examples @@ -90,23 +106,46 @@ class midonet::analytics ( $allinone = false, $curator_version = '3.5', $calliope_port = undef, + $midonet_version = undef, + $elk_bind_ip = undef, + $elk_cluster_name = 'elasticsearch', + $elk_hosts = [$::ipaddress] ) { + include ::stdlib + $logstash_version = versioncmp($midonet_version,'5.2') ? {'1' => '5.x', default => '1.5'} + $elastic_version = versioncmp($midonet_version,'5.2') ? {'1' => '5.x', default => '1.7'} + $real_analytics_package_name = versioncmp($midonet_version,'5.2') ? {'1' => 'midonet-elk', default => 'midonet-analytics'} + if versioncmp($midonet_version,'5.2') > 0 + { + $ins_service_name = 'elasticsearch-es-01' + $config = { 'network.host' => ['_local_',$elk_bind_ip], + 'cluster.name' => $elk_cluster_name, + 'discovery.zen.ping.unicast.hosts' => $elk_hosts, + 'discovery.zen.minimum_master_nodes' => (size($elk_hosts)/2)+1} - class { 'logstash': - manage_repo => true, - java_install => true, - repo_version => '1.5', - } - contain logstash + } + else { + $config = undef + $ins_service_name = 'elasticsearch-instance-es-01' + } class { 'elasticsearch': manage_repo => true, - repo_version => '1.7', + repo_version => $elastic_version, + config => $config, require => Class['::logstash'] } contain elasticsearch + class { 'logstash': + manage_repo => true, + repo_version => $logstash_version, + } + contain logstash + + + elasticsearch::instance { 'es-01': require => Class['::logstash','::elasticsearch'] } @@ -151,8 +190,9 @@ class midonet::analytics ( } class { 'midonet::analytics::services': - calliope_port => $calliope_port, - require => [ + calliope_port => $calliope_port, + midonet_version => $midonet_version, + require => [ Class['::logstash','::elasticsearch'], Elasticsearch::Instance['es-01'], Anchor['curator-end'] @@ -160,9 +200,17 @@ class midonet::analytics ( } unless $allinone { - class { 'midonet::analytics::quickstart': - zookeeper_hosts => $zookeeper_hosts, - notify => Service['midonet-analytics'] + if versioncmp($midonet_version,'5.2') > 0 + { + class { 'midonet::analytics::quickstart': + zookeeper_hosts => $zookeeper_hosts, + } + } + else { + class { 'midonet::analytics::quickstart': + zookeeper_hosts => $zookeeper_hosts, + notify => Service[$real_analytics_package_name] + } } } @@ -187,7 +235,7 @@ class midonet::analytics ( line => "ES_HEAP_SIZE='${heap_size_gb}g'", match => '^ES_HEAP_SIZE.*$', require => Package['elasticsearch'], - notify => Service['elasticsearch-instance-es-01'], + notify => Service[$ins_service_name], } } if $::osfamily == 'RedHat' { @@ -204,7 +252,7 @@ class midonet::analytics ( line => "ES_HEAP_SIZE='${heap_size_gb}g'", match => '^ES_HEAP_SIZE.*$', require => Package['elasticsearch'], - notify => Service['elasticsearch-instance-es-01'], + notify => Service[$ins_service_name], } } -} + } diff --git a/manifests/analytics/services.pp b/manifests/analytics/services.pp index 1c56306..f986c04 100644 --- a/manifests/analytics/services.pp +++ b/manifests/analytics/services.pp @@ -10,24 +10,24 @@ # For making mn-conf command available in the Analytics Node # Default: midonet-analytics # -# [*midonet-tools*] +# [*tools_package_name*] # For making mn-conf command available in the Analytics Node # Default: midonet-tools # +# [*elk_package_name*] +# Name of the elk package +# Default: midonet-elk +# +# [*calliope_port*] +# Port where calliope listens to +# +# [*midonet_version*] +# Port where calliope listens to +# # === Authors # # Midonet (http://midonet.org) # -# === Parameters -# [*analytics_package_name*] -# Package name for analytics -# Default: 'midonet-analytics' -# -# [*tools_package_name*] -# Midonet Tools package name -# -# [*calliope_port*] -# Port where calliope listens to # # === Copyright # @@ -49,36 +49,81 @@ class midonet::analytics::services ( $analytics_package_name = 'midonet-analytics', $tools_package_name = 'midonet-tools', + $elk_package_name = 'midonet-elk', $calliope_port = '8080', + $midonet_version = '5.2' ) { + include ::stdlib + $real_analytics_package_name = versioncmp($midonet_version,'5.2') ? {'1' => $elk_package_name, default => $analytics_package_name} - package { $tools_package_name: - ensure => present, - name => $tools_package_name, + if $::osfamily == 'Debian' and $::lsbdistrelease == '14.04' + { + $logstash_command = 'initctl restart logstash' + } + else { + $logstash_command = 'service logstash restart' } - package { $analytics_package_name: - ensure => present, - name => $analytics_package_name, - } -> + if versioncmp($midonet_version,'5.2') > 0 { - exec {'service logstash restart': - path => ['/usr/bin', '/usr/sbin',], - before => Service[$analytics_package_name], - } - - unless $calliope_port == '8080' { - exec { "echo calliope.service.ws_port : ${calliope_port} | mn-conf set -t default": - path => ['/usr/bin', '/bin'], - before => Service[$analytics_package_name], + if $::osfamily == 'Debian' { + exec {'update-ca-certificates -f': + path => ['/usr/bin', '/usr/sbin','/bin'], + before => Package[$tools_package_name], + } } + package { $tools_package_name: + ensure => present, + name => $tools_package_name, + } + + package { $real_analytics_package_name: + ensure => present, + name => $real_analytics_package_name, + } -> + + exec { $logstash_command: + path => ['/usr/bin', '/usr/sbin','/sbin'], + require => Package[$real_analytics_package_name], + } + + exec {'service elasticsearch-es-01 restart': + path => ['/usr/bin', '/usr/sbin',], + require => Package[$real_analytics_package_name], + } + } - service { $analytics_package_name: - ensure => 'running', - name => $analytics_package_name, - enable => true, - require => Package[$analytics_package_name], + else { + package { $tools_package_name: + ensure => present, + name => $tools_package_name, + } + + package { $real_analytics_package_name: + ensure => present, + name => $real_analytics_package_name, + } -> + + exec { $logstash_command: + path => ['/usr/bin', '/usr/sbin','/sbin'], + before => Service[$real_analytics_package_name], + } + + unless $calliope_port == '8080' { + exec { "echo calliope.service.ws_port : ${calliope_port} | mn-conf set -t default": + path => ['/usr/bin', '/bin'], + before => Service[$real_analytics_package_name], + } + } + + service { $real_analytics_package_name: + ensure => 'running', + name => $real_analytics_package_name, + enable => true, + require => Package[$real_analytics_package_name], + } + } diff --git a/manifests/cluster.pp b/manifests/cluster.pp index 3b10789..d88e18c 100644 --- a/manifests/cluster.pp +++ b/manifests/cluster.pp @@ -68,7 +68,52 @@ # [*analytics_ip*] # IP of the Analytics node # Default: undef - +# [*midonet_version*] +# Version of Midonet +# Default: '5.2' +# [*elk_seeds*] +# List of elk seeds , in the form "ip1,ip2,ip3" +# Default: '5.2' +# [*cluster_api_address*] +# IP Address that is publicly exposed for the REST Api . Usually this will be the same as +# the cluster_host but you might want to configure it in some cases, such as using an haproxy +# on the front +# Default: '$::ipaddress' +# [*cluster_api_port*] +# Port Address that is publicly exposed for the REST Api . Usually this will be the same as +# the cluster_host but you might want to configure it in some cases, such as using an haproxy +# on the front. Usually you don't want to modify this +# Default: '8181' +# [*elk_cluster_name*] +# Elasticsearch cluster name. Not needed if running in single-elk-node mode +# Default: 'undef' +# [*elk_target_endpoint*] +# Configures the elk target endpoint +# Default: 'undef' +# [*endpoint_host*] +# Where the unified endpoint will bind to +# Default: 'undef' +# [*endpoint_port*] +# Where the unified endpoint will bind to ( port ) +# Default: 'undef' +# [*ssl_source_type*] +# SSL Source type. 'autosigned' , 'keystore' , 'certificate' +# Default: 'undef' +# [*ssl_cert_path*] +# SSL certificate path +# Default: 'undef' +# [*ssl_privkey_path*] +# SSL private key path +# Default: 'undef' +# [*ssl_privkey_pwd*] +# SSL private key password +# Default: 'undef' +# [*flow_history_port*] +# Port for flow history endpoint +# Default: 'undef' +# [*jarvis_enabled*] +# Should enable jarvis? +# Default: 'undef' # # === Examples # @@ -138,6 +183,22 @@ class midonet::cluster ( $is_insights = undef, $insights_ssl = undef, $analytics_ip = undef, + $midonet_version = '5.2', + $elk_seeds = undef, + $cluster_api_address = $::ipaddress, + $cluster_api_port = '8181', + $elk_cluster_name = undef, + $elk_target_endpoint = undef, + $endpoint_host = undef, + $endpoint_port = undef, + $ssl_source_type = undef, + $ssl_cert_path = undef, + $ssl_privkey_path = undef, + $ssl_privkey_pwd = undef, + $ssl_keystore_path = undef, + $ssl_keystore_pwd = undef, + $flow_history_port = undef, + $jarvis_enabled = undef, ) { class { 'midonet::cluster::install': @@ -165,15 +226,31 @@ class midonet::cluster ( keystone_port => $keystone_port, keystone_tenant_name => $keystone_tenant_name, keystone_protocol => $keystone_protocol, - keystone_user_name => undef, - keystone_user_password => undef, - keystone_domain_name => 'Default', - keystone_domain_id => 'default', - keystone_keystone_version => '3', + keystone_user_name => $keystone_user_name, + keystone_user_password => $keystone_user_password, + keystone_domain_name => $keystone_domain_name, + keystone_domain_id => $keystone_domain_id, + keystone_keystone_version => $keystone_keystone_version, is_insights => $is_insights, insights_ssl => $insights_ssl, analytics_ip => $analytics_ip, package_ensure => $package_ensure, + midonet_version => $midonet_version, + elk_seeds => $elk_seeds, + cluster_api_address => $cluster_api_address, + cluster_api_port => $cluster_api_port, + elk_cluster_name => $elk_cluster_name, + elk_target_endpoint => $elk_target_endpoint, + endpoint_host => $endpoint_host, + endpoint_port => $endpoint_port, + ssl_source_type => $ssl_source_type, + ssl_cert_path => $ssl_cert_path, + ssl_privkey_path => $ssl_privkey_path, + ssl_privkey_pwd => $ssl_privkey_pwd, + ssl_keystore_path => $ssl_keystore_path, + ssl_keystore_pwd => $ssl_keystore_pwd, + flow_history_port => $flow_history_port, + jarvis_enabled => $jarvis_enabled, require => Class['midonet::cluster::install'] } contain midonet::cluster::run diff --git a/manifests/cluster/run.pp b/manifests/cluster/run.pp index a33d209..e9acff2 100644 --- a/manifests/cluster/run.pp +++ b/manifests/cluster/run.pp @@ -63,6 +63,55 @@ # [*analytics_ip*] # IP of the Analytics node # Default: undef +# [*midonet_version*] +# Version of Midonet +# Default: '5.2' +# [*elk_seeds*] +# List of elk seeds , in the form "ip1,ip2,ip3" +# Default: '$::ipaddress' +# [*cluster_api_address*] +# IP Address that is publicly exposed for the REST Api . Usually this will be the same as +# the cluster_host but you might want to configure it in some cases, such as using an haproxy +# on the front +# Default: '$::ipaddress' +# [*cluster_api_port*] +# Port Address that is publicly exposed for the REST Api . Usually this will be the same as +# the cluster_host but you might want to configure it in some cases, such as using an haproxy +# on the front. Usually you don't want to modify this +# Default: '8181' +# [*elk_cluster_name*] +# Elasticsearch cluster name. Not needed if running in single-elk-node mode +# Default: 'undef' +# [*elk_target_endpoint*] +# Configures the elk target endpoint +# Default: 'undef' +# [*endpoint_host*] +# Where the unified endpoint will bind to +# Default: '$::ipaddress' +# [*endpoint_port*] +# Where the unified endpoint will bind to ( port ) +# Default: '8888' +# [*ssl_source_type*] +# SSL Source type. 'autosigned' , 'keystore' , 'certificate' +# Default: 'undef' +# [*ssl_cert_path*] +# SSL certificate path +# Default: 'undef' +# [*ssl_privkey_path*] +# SSL private key path +# Default: 'undef' +# [*ssl_privkey_pwd*] +# SSL private key password +# Default: 'undef' +# [*flow_history_port*] +# Port for flow history endpoint +# Default: '5001' +# [*jarvis_enabled*] +# Should enable jarvis? +# Default: 'undef' +# [*midonet_version*] +# Midoent Version +# Default: '5.2' # === Authors # # Midonet (http://midonet.org) @@ -116,8 +165,30 @@ class midonet::cluster::run ( $calliope_service_ws_port = undef, $insights_ssl = undef, $analytics_ip = undef, + $elk_seeds = $::ipaddress, + $cluster_api_address = $::ipaddress, + $cluster_api_port = '8181', + $elk_cluster_name = '', + $elk_target_endpoint = $::ipaddress, + $endpoint_host = $::ipaddress, + $endpoint_port = '8888', + $ssl_source_type = undef, + $ssl_cert_path = undef, + $ssl_privkey_path = undef, + $ssl_privkey_pwd = undef, + $ssl_keystore_path = undef, + $ssl_keystore_pwd = undef, + $flow_history_port = '5001', + $jarvis_enabled = true, + $midonet_version = '5.2' ) { + include ::stdlib + + $api_proto = $insights_ssl? {true => 'https://' , default => 'http://'} + $mem_login_host = "${api_proto}${cluster_api_address}:${cluster_api_port}/midonet-api" + $new_api = versioncmp($midonet_version,'5.2') ? {'1' => true, default => false} + if $package_ensure != 'absent' { file { '/tmp/mn-cluster_config.sh': ensure => present, @@ -158,6 +229,21 @@ class midonet::cluster::run ( content => template('midonet/analytics/analytics_settings.sh.erb'), } -> exec { '/bin/bash /tmp/analytics_settings.sh': } + if versioncmp($midonet_version,'5.2') > 0 + { + file { 'analytics_settings_local': + ensure => present, + path => '/tmp/analytics_settings_local.conf', + content => template('midonet/analytics/analytics_settings_local.erb'), + } -> + file { 'analytics_settings_script local': + ensure => present, + path => '/tmp/analytics_settings_local.sh', + content => template('midonet/analytics/analytics_settings.sh.erb'), + require => Exec['/bin/bash /tmp/analytics_settings.sh'] + } -> + exec { '/bin/bash /tmp/analytics_settings_local.sh': } + } } file { '/etc/midonet/subscriptions': diff --git a/manifests/mem.pp b/manifests/mem.pp index 54a80a5..6118222 100644 --- a/manifests/mem.pp +++ b/manifests/mem.pp @@ -118,6 +118,10 @@ # [mem_fabric_port] # The port where the midonet fabric service is listening # Default: '8009' +# +# [api_ssl] +# Is midonet api using SSL? +# Default: false # == Examples # # The minimum parameters required are @@ -163,10 +167,13 @@ class midonet::mem( $mem_analytics_port = ':8080', $mem_subscription_port = ':8007', $mem_fabric_port = ':8009', + $api_ssl = false, ) inherits midonet::params { - $mem_ws = $insights_ssl? {true => 'wss://' , default => 'ws://'} + $mem_ws = $insights_ssl? {true => 'wss://' , default => 'ws://'} + $api_proto = $api_ssl? {true => 'https://' , default => 'http://'} + validate_bool($mem_api_token) validate_bool($mem_poll_enabled) @@ -178,10 +185,10 @@ class midonet::mem( validate_string($mem_config_file) validate_string($mem_agent_config_api_namespace) - $mem_login_host = "http://${cluster_ip}${mem_api_port}" - $mem_trace_api_host = "http://${cluster_ip}${mem_api_port}" + $mem_login_host = "${api_proto}${cluster_ip}${mem_api_port}" + $mem_trace_api_host = "${api_proto}${cluster_ip}${mem_api_port}" $mem_traces_ws_url = "${$mem_ws}${cluster_ip}${mem_trace_port}/${mem_trace_namespace}" - $mem_api_host = "http://${cluster_ip}${mem_api_port}" + $mem_api_host = "${api_proto}${cluster_ip}${mem_api_port}" $mem_analytics_ws_api_url = "${$mem_ws}${analytics_ip}${mem_analytics_port}/${mem_analytics_namespace}" $mem_subscriptions_ws_api_url = "${$mem_ws}${cluster_ip}${mem_subscription_port}/subscription" $mem_fabric_ws_api_url = "${$mem_ws}${cluster_ip}${mem_fabric_port}/fabric" diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb index e17ecc6..c54d0c2 100644 --- a/spec/spec_helper_acceptance.rb +++ b/spec/spec_helper_acceptance.rb @@ -18,6 +18,7 @@ RSpec.configure do |c| # install git install_package host, 'git' + install_package host, 'ruby' zuul_ref = ENV['ZUUL_REF'] zuul_branch = ENV['ZUUL_BRANCH'] diff --git a/templates/analytics/analytics_settings.erb b/templates/analytics/analytics_settings.erb index 61537ca..7cc0fe1 100644 --- a/templates/analytics/analytics_settings.erb +++ b/templates/analytics/analytics_settings.erb @@ -1,22 +1,46 @@ -clio.enabled : true -clio.service.udp_port : <% if !@clio_service_udp_port %>5001<% else %><%= @clio_service_udp_port %><% end %>, -clio.service.encoding : "binary" -clio.target.udp_endpoint : "<%= @analytics_ip %>:<% if !@clio_target_udp_port %>5000<% else %><%= @clio_target_udp_port %><% end %>", -clio.data.fields : [ "cookie", "devices", "host_uuid", "in_port", "in_tenant", "out_ports", "out_tenant", "match_eth_src", "match_eth_dst", "match_ethertype", "match_network_dst", "match_network_src", "match_network_proto", "match_src_port", "match_dst_port", "action_drop", "action_arp_sip", "action_arp_tip", "action_arp_op", "rules", "sim_result", "final_eth_src", "final_eth_dst", "final_net_src", "final_net_dst", "final_transport_src", "final_transport_dst", "timestamp", "type" ] -calliope.enabled : true -calliope.service.ws_port : <% if !@calliope_service_ws_port %>8080<% else %><%= @calliope_service_ws_port %><% end %> -calliope.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> -jmxscraper.enabled : true -jmxscraper.target.udp_endpoint : "<%= @analytics_ip %>:<% if !@jmxscraper_target_udp_endpoint %>5000<% else %><%= @jmxscraper_target_udp_endpoint %><% end %>" -mem_cluster.flow_tracing.enabled : true -mem_cluster.flow_tracing.service.ws_port : <% if !@flow_tracing_service_ws_port %>8460<% else %><%= @flow_tracing_service_ws_port %><% end %> -mem_cluster.flow_tracing.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> -mem_cluster.subscription.service.port : <% if !@cluster_subscription_service_port %>8007<% else %><%= @cluster_subscription_service_port %><% end %> -mem_cluster.subscription.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> -mem_cluster.fabric.enabled : true -mem_cluster.fabric.api.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> -mem_cluster.fabric.api.port : <% if !@cluster_fabric_api_port %>8009<% else %><%= @cluster_fabric_api_port %><% end %> -mem_cluster.fabric.mfc.port : <% if !@cluster_fabric_mfc_port %>8005<% else %><%= @cluster_fabric_mfc_port %><% end %> -agent.flow_history.enabled : true -agent.flow_history.encoding : "binary" -agent.flow_history.udp_endpoint : "<%= @analytics_ip %>:<% if !@agent_flow_history_udp_endpoint %>5001<% else %><%= @agent_flow_history_udp_endpoint %><% end %>" +<% if @new_api %> + agent.flow_history.enabled : true + agent.flow_history.encoding : "binary" + insights.jmxscraper.enabled : true + insights.jmxscraper.target.endpoint : "<%= @elk_target_endpoint %>" + insights.elasticsearch.seeds : [<%= @elk_seeds %>] + <% if @elk_cluster_name %>insights.elasticsearch.cluster_name : "<%= @elk_cluster_name %>"<% end %> + insights.endpoint.service.host : "<%= @endpoint_host %>" + insights.endpoint.service.port : <%= @endpoint_port %> + <% if @elk_target_endpoint %>insights.flow_history.target.endpoint : "<%= @elk_target_endpoint %>"<% end %> + insights.flow_history.service.host : "<%= @endpoint_host %>" + insights.flow_history.service.port : <%= @flow_history_port %> + insights.jarvis.enabled : <%= @jarvis_enabled %> + insights.jarvis.rest_api.uri : "<%= @mem_login_host %>" + insights.endpoint.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> + <% if @ssl_source_type %>insights.endpoint.auth.ssl.source : <%= @ssl_source_type %><% end %> + <% if @ssl_keystore_path %>insights.endpoint.auth.ssl.keystore_path : <%= @ssl_keystore_path %><% end %> + <% if @ssl_keystore_pwd %>insights.endpoint.auth.ssl.keystore_password : <%= @ssl_keystore_pwd %><% end %> + <% if @ssl_cert_path %>insights.endpoint.ssl.certificate_path : <%= @ssl_cert_path %><% end %> + <% if @ssl_privkey_path %>insights.endpoint.ssl.privatekey_path : <%= @ssl_privkey_path %><% end %> + <% if @ssl_privkey_pwd %>insights.endpoint.ssl.privatekey_password : <%= @ssl_privkey_pwd %><% end %> + +<% else %> + clio.enabled : true + clio.service.udp_port : <% if !@clio_service_udp_port %>5001<% else %><%= @clio_service_udp_port %><% end %>, + clio.service.encoding : "binary" + clio.target.udp_endpoint : "<%= @analytics_ip %>:<% if !@clio_target_udp_port %>5000<% else %><%= @clio_target_udp_port %><% end %>", + clio.data.fields : [ "cookie", "devices", "host_uuid", "in_port", "in_tenant", "out_ports", "out_tenant", "match_eth_src", "match_eth_dst", "match_ethertype", "match_network_dst", "match_network_src", "match_network_proto", "match_src_port", "match_dst_port", "action_drop", "action_arp_sip", "action_arp_tip", "action_arp_op", "rules", "sim_result", "final_eth_src", "final_eth_dst", "final_net_src", "final_net_dst", "final_transport_src", "final_transport_dst", "timestamp", "type" ] + calliope.enabled : true + calliope.service.ws_port : <% if !@calliope_service_ws_port %>8080<% else %><%= @calliope_service_ws_port %><% end %> + calliope.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> + jmxscraper.enabled : true + jmxscraper.target.udp_endpoint : "<%= @analytics_ip %>:<% if !@jmxscraper_target_udp_endpoint %>5000<% else %><%= @jmxscraper_target_udp_endpoint %><% end %>" + mem_cluster.flow_tracing.enabled : true + mem_cluster.flow_tracing.service.ws_port : <% if !@flow_tracing_service_ws_port %>8460<% else %><%= @flow_tracing_service_ws_port %><% end %> + mem_cluster.flow_tracing.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> + mem_cluster.subscription.service.port : <% if !@cluster_subscription_service_port %>8007<% else %><%= @cluster_subscription_service_port %><% end %> + mem_cluster.subscription.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> + mem_cluster.fabric.enabled : true + mem_cluster.fabric.api.auth.ssl.enabled : <% if !@insights_ssl %>false<% else %><%= @insights_ssl %><% end %> + mem_cluster.fabric.api.port : <% if !@cluster_fabric_api_port %>8009<% else %><%= @cluster_fabric_api_port %><% end %> + mem_cluster.fabric.mfc.port : <% if !@cluster_fabric_mfc_port %>8005<% else %><%= @cluster_fabric_mfc_port %><% end %> + agent.flow_history.enabled : true + agent.flow_history.encoding : "binary" + agent.flow_history.udp_endpoint : "<%= @analytics_ip %>:<% if !@agent_flow_history_udp_endpoint %>5001<% else %><%= @agent_flow_history_udp_endpoint %><% end %>" +<% end %> diff --git a/templates/analytics/analytics_settings_local.erb b/templates/analytics/analytics_settings_local.erb new file mode 100644 index 0000000..f967b09 --- /dev/null +++ b/templates/analytics/analytics_settings_local.erb @@ -0,0 +1,2 @@ +insights.endpoint.service.host : "<%= @endpoint_host %>" +insights.endpoint.service.port : <%= @endpoint_port %> diff --git a/templates/analytics/analytics_settings_local.sh.erb b/templates/analytics/analytics_settings_local.sh.erb new file mode 100644 index 0000000..cbe163d --- /dev/null +++ b/templates/analytics/analytics_settings_local.sh.erb @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +which mn-conf > /dev/null || { + echo "'mn-conf' cannot be found in \$PATH" >&2 + exit 1 +} + +mn-conf set < /tmp/analytics_settings_local.conf + +exit 0