module Kumonos::Envoy
Generate envoy configuration.
Constants
- DEFAULT_HTTP_FILTERS
- EnvoyConfig
Public Class Methods
generate(definition, cluster:, node:)
click to toggle source
# File lib/kumonos/envoy.rb, line 9 def generate(definition, cluster:, node:) EnvoyConfig.build(definition, cluster: cluster, node: node).to_h end
Public Instance Methods
to_h()
click to toggle source
Calls superclass method
# File lib/kumonos/envoy.rb, line 46 def to_h h = super h.delete(:version) h.delete(:discovery_service) h.delete(:sds) h.delete(:statsd) h.delete(:listener) h.delete(:cluster) h.delete(:node) h.delete(:runtime) h[:admin] = admin.to_h h[:runtime] = runtime.to_h if runtime h[:static_resources] = { listeners: [listener.to_h], clusters: [discovery_service.cluster.to_h, sds.cluster.to_h] } h[:dynamic_resources] = { cds_config: { api_config_source: { cluster_names: [discovery_service.cluster.name], refresh_delay: { seconds: discovery_service.refresh_delay_ms / 1000.0 } } }, deprecated_v1: { sds_config: { api_config_source: { cluster_names: [sds.cluster.name], refresh_delay: { seconds: sds.refresh_delay_ms / 1000.0 } } } } } if statsd statsd_address, statsd_port = statsd.split(':') h[:stats_sinks] = [ { name: 'envoy.dog_statsd', config: { address: { socket_address: { protocol: 'UDP', address: statsd_address, port_value: Integer(statsd_port) } } } } ] h[:stats_config] = { use_all_default_tags: true, stats_tags: [ { tag_name: 'service-cluster', fixed_value: cluster }, { tag_name: 'service-node', fixed_value: node } ] } end h end