# == Class: octavia::controller # # === Parameters # # [*heartbeat_key*] # (required) Key to validate amphora messages. # Defaults to undef # # [*amp_active_retries*] # (optional) Retry attempts to wait for Amphora to become active. # Defaults to $facts['os_service_default'] # # [*amp_active_wait_sec*] # (optional) Seconds to wait between checks on whether an Amphora has # become active. # Defaults to $facts['os_service_default'] # # [*amp_flavor_id*] # (optional) Nova instance flavor id for the Amphora. # Note: since we set manage_nova_flavor to True by default, we need # to set a valid amp_flavor_id by default, 65 was picked randomly. # Defaults to '65'. # # [*amp_image_tag*] # Glance image tag for Amphora image. Allows the Amphora image to be # referred to by a tag instead of an ID, allowing the Amphora image to # be updated without requiring reconfiguration of Octavia. # Defaults to $facts['os_service_default'] # # [*amp_image_owner_id*] # Restrict glance image selection to a specific owner ID. This is a # recommended security setting. # Defaults to $facts['os_service_default'] # # [*amp_secgroup_list*] # List of security groups to use for Amphorae. # Defaults to $facts['os_service_default'] # # [*amp_boot_network_list*] # List of networks to attach to Amphorae. # Defaults to $facts['os_service_default'] # # [*loadbalancer_topology*] # (optional) Load balancer topology configuration # Defaults to $facts['os_service_default'] # # [*amphora_driver*] # (optional) Name of driver for communicating with amphorae # Defaults to $facts['os_service_default'] # # [*compute_driver*] # (optional) Name of driver for managing amphorae VMs # Defaults to $facts['os_service_default'] # # [*network_driver*] # (optional) Name of network driver for configuring networking # for amphorae. # Defaults to $facts['os_service_default'] # # [*volume_driver*] # (optional) Name of volume driver for managing amphora volumes # Defaults to $facts['os_service_default'] # # [*image_driver*] # (optional) Name of volume driver for managing amphora image # Defaults to $facts['os_service_default'] # # [*amp_timezone*] # (optional) Defines the timezone to use as represented in # /usr/share/zoneinfo. # Defaults to $facts['os_service_default'] # # [*amphora_delete_retries*] # (optional) Number of times an amphora delete should be retried. # Defaults to $facts['os_service_default'] # # [*amphora_delete_retry_interval*] # (optional) Time, in seconds, between amphora delete retries. # Defaults to $facts['os_service_default'] # # [*event_notifications*] # (optional) Enable octavia event notifications. # Defaults to $facts['os_service_default'] # # [*amp_ssh_key_name*] # (optional) Name of Openstack SSH keypair for communicating with amphora # Defaults to 'octavia-ssh-key' # # [*enable_ssh_access*] # (optional) Enable SSH key configuration for amphorae. Note that setting # to false disables configuration of SSH key related properties. # Defaults to true # # [*timeout_client_data*] # (optional) Frontend client inactivity timeout. # Defaults to $facts['os_service_default'] # # [*timeout_member_connect*] # (optional) Backend member connection timeout. # Defaults to $facts['os_service_default'] # # [*timeout_member_data*] # (optional) Backend member inactivity timeout.' # Defaults to $facts['os_service_default'] # # [*timeout_tcp_inspect*] # (optional) Time to wait for TCP packets for content inspection. # Defaults to $facts['os_service_default'] # # [*connection_max_retries*] # (optional) Maximum number of retries when contacting amphora. # Defaults to $facts['os_service_default'] # # [*connection_retry_interval*] # (optional) Number of seconds to wait between connection attempts to amphora. # Defaults to $facts['os_service_default'] # # [*active_connection_max_retries*] # (optional) Retry threshold for connecting to active amphorae. # Defaults to $facts['os_service_default'] # # [*active_connection_retry_interval*] # (optional) Retry timeout between connection attempts in seconds for active # amphora. # Defaults to $facts['os_service_default'] # # [*failover_connection_max_retries*] # (optional) Retry threshold for connecting to an amphora in failover. # Defaults to $facts['os_service_default'] # # [*failover_connection_retry_interval*] # (optional) Retry timeout between connection attempts in seconds for amphora # in failover. # Defaults to $facts['os_service_default'] # # [*connection_logging*] # (optional) When false, disables logging of tenant connection flows. This # includes storing them locally and sending them to the tenant syslog # endpoints. # Defaults to $facts['os_service_default'] # # [*build_rate_limit*] # (optional) Number of amphorae that could be build per controller worker, # simultaneously. # Defaults to $facts['os_service_default'] # # [*build_active_retries*] # (optional) Retry threshold for waiting for a build slot for an amphorae. # Defaults to $facts['os_service_default'] # # [*build_retry_interval*] # (optional) Retry timeout between build attempts in seconds. # Defaults to $facts['os_service_default'] # # [*default_connection_limit*] # (optional) Default connection_limit for listeners. # Defaults to $facts['os_service_default'] # # [*agent_request_read_timeout*] # (optional) The time in seconds to allow a request from the controller to # run before terminating the socket. # Defaults to $facts['os_service_default'] # # [*agent_tls_protocol*] # (optional) Minimum TLS protocol for communication with the amphora agent. # Defaults to $facts['os_service_default'] # # [*admin_log_targets*] # (optional) The list of syslog endpoints, host:port comma separated list, # to receive administrative log messages. # Defaults to $facts['os_service_default'] # # [*administrative_log_facility*] # (optional) The syslog "LOG_LOCAL" facility to use for the administrative # log messages. # Defaults to $facts['os_service_default'] # # [*forward_all_logs*] # (optional) When true, all log messages from the amphora will be forwarded # to the administrative log endpoints, including non-load balancing related # logs. # Defaults to $facts['os_service_default'] # # [*tenant_log_targets*] # (optional) The list of syslog endpoints, host:port comma separated list, # to receive tenant traffic flow log messages. # Defaults to $facts['os_service_default'] # # [*user_log_facility*] # (optional) The syslog "LOG_LOCAL" facility to use for the tenant traffic # flow log messages. # Defaults to $facts['os_service_default'] # # [*user_log_format*] # (optional) The tenant traffic flow log format string. # Defaults to $facts['os_service_default'] # # [*log_protocol*] # (optional) The log forwarding transport protoocl. One of UDP or TCP. # Defaults to $facts['os_service_default'] # # [*log_retry_count*] # (optional) The maximum attempts to retry connecting to the logging host. # Defaults to $facts['os_service_default'] # # [*log_retry_interval*] # (optional) The time, in seconds, to wait between retries connecting to # the logging host. # Defaults to $facts['os_service_default'] # # [*log_queue_size*] # (optional) The queue size (messages) to buffer log messages. # Defaults to $facts['os_service_default'] # # [*logging_template_override*] # (optional) Custom logging configuration template. # Defaults to $facts['os_service_default'] # # [*disable_local_log_storage*] # (optional) When true, logs will not be stored on the amphora filesystem. # This includes all kernel, system, and security logs. # Defaults to $facts['os_service_default'] # # [*vrrp_advert_int*] # (optional) Amphora role and priority advertisement internal in seconds. # Defaults to $facts['os_service_default'] # # [*vrrp_check_interval*] # (optional) VRRP health check script run interval in seconds. # Defaults to $facts['os_service_default'] # # [*vrrp_fail_count*] # (optional) Number of successive failures before transition to a fail rate. # Defaults to $facts['os_service_default'] # # [*vrrp_success_count*] # (optional) Number of consecutive successes before transition to a success rate. # Defaults to $facts['os_service_default'] # # [*vrrp_garp_refresh_interval*] # (optional) Time in seconds between gratuitous ARP announcements from the MASTER. # Defaults to $facts['os_service_default'] # # [*vrrp_garp_refresh_count*] # (optional) Number of gratuitous ARP announcements to make on each refresh interval. # Defaults to $facts['os_service_default'] # # [*controller_ip_port_list*] # (optional) The list of controllers in a host:port comma separated # list if multiple. This is added to the amphora config and is used # when it connects back to the controllers to report its health. # Defaults to $facts['os_service_default'] # # [*heartbeat_interval*] # (optional) Sleep time between sending heartbeats. # Defaults to undef # class octavia::controller ( String[1] $heartbeat_key, $amp_active_retries = $facts['os_service_default'], $amp_active_wait_sec = $facts['os_service_default'], String[1] $amp_flavor_id = '65', $amp_image_tag = $facts['os_service_default'], $amp_image_owner_id = $facts['os_service_default'], $amp_secgroup_list = $facts['os_service_default'], $amp_boot_network_list = $facts['os_service_default'], $loadbalancer_topology = $facts['os_service_default'], $amphora_driver = $facts['os_service_default'], $compute_driver = $facts['os_service_default'], $network_driver = $facts['os_service_default'], $volume_driver = $facts['os_service_default'], $image_driver = $facts['os_service_default'], $amp_timezone = $facts['os_service_default'], $amphora_delete_retries = $facts['os_service_default'], $amphora_delete_retry_interval = $facts['os_service_default'], $event_notifications = $facts['os_service_default'], Boolean $enable_ssh_access = true, String[1] $amp_ssh_key_name = 'octavia-ssh-key', $timeout_client_data = $facts['os_service_default'], $timeout_member_connect = $facts['os_service_default'], $timeout_member_data = $facts['os_service_default'], $timeout_tcp_inspect = $facts['os_service_default'], $connection_max_retries = $facts['os_service_default'], $connection_retry_interval = $facts['os_service_default'], $connection_logging = $facts['os_service_default'], $active_connection_max_retries = $facts['os_service_default'], $active_connection_retry_interval = $facts['os_service_default'], $failover_connection_max_retries = $facts['os_service_default'], $failover_connection_retry_interval = $facts['os_service_default'], $build_rate_limit = $facts['os_service_default'], $build_active_retries = $facts['os_service_default'], $build_retry_interval = $facts['os_service_default'], $default_connection_limit = $facts['os_service_default'], $agent_request_read_timeout = $facts['os_service_default'], $agent_tls_protocol = $facts['os_service_default'], $admin_log_targets = $facts['os_service_default'], $administrative_log_facility = $facts['os_service_default'], $forward_all_logs = $facts['os_service_default'], $tenant_log_targets = $facts['os_service_default'], $user_log_facility = $facts['os_service_default'], $user_log_format = $facts['os_service_default'], $log_protocol = $facts['os_service_default'], $log_retry_count = $facts['os_service_default'], $log_retry_interval = $facts['os_service_default'], $log_queue_size = $facts['os_service_default'], $logging_template_override = $facts['os_service_default'], $disable_local_log_storage = $facts['os_service_default'], $vrrp_advert_int = $facts['os_service_default'], $vrrp_check_interval = $facts['os_service_default'], $vrrp_fail_count = $facts['os_service_default'], $vrrp_success_count = $facts['os_service_default'], $vrrp_garp_refresh_interval = $facts['os_service_default'], $vrrp_garp_refresh_count = $facts['os_service_default'], $controller_ip_port_list = $facts['os_service_default'], $heartbeat_interval = $facts['os_service_default'], ) inherits octavia::params { include octavia::deps include octavia::db if ! is_service_default($loadbalancer_topology) and ! ($loadbalancer_topology in ['SINGLE', 'ACTIVE_STANDBY']) { fail('load balancer topology must be one of SINGLE or ACTIVE_STANDBY') } if $enable_ssh_access { octavia_config { 'controller_worker/amp_ssh_key_name' : value => $amp_ssh_key_name; } } else { octavia_config { 'controller_worker/amp_ssh_key_name' : value => $facts['os_service_default'] } } octavia_config { 'controller_worker/amp_active_retries' : value => $amp_active_retries; 'controller_worker/amp_active_wait_sec' : value => $amp_active_wait_sec; 'controller_worker/amp_flavor_id' : value => $amp_flavor_id; 'controller_worker/amp_image_tag' : value => $amp_image_tag; 'controller_worker/amp_image_owner_id' : value => $amp_image_owner_id; 'controller_worker/amp_secgroup_list' : value => join(any2array($amp_secgroup_list), ','); 'controller_worker/amp_boot_network_list' : value => join(any2array($amp_boot_network_list), ','); 'controller_worker/loadbalancer_topology' : value => $loadbalancer_topology; 'controller_worker/amphora_driver' : value => $amphora_driver; 'controller_worker/compute_driver' : value => $compute_driver; 'controller_worker/network_driver' : value => $network_driver; 'controller_worker/volume_driver' : value => $volume_driver; 'controller_worker/image_driver' : value => $image_driver; 'controller_worker/amp_timezone' : value => $amp_timezone; 'controller_worker/amphora_delete_retries' : value => $amphora_delete_retries; 'controller_worker/amphora_delete_retry_interval' : value => $amphora_delete_retry_interval; 'controller_worker/event_notifications' : value => $event_notifications; 'haproxy_amphora/timeout_client_data' : value => $timeout_client_data; 'haproxy_amphora/timeout_member_connect' : value => $timeout_member_connect; 'haproxy_amphora/timeout_member_data' : value => $timeout_member_data; 'haproxy_amphora/timeout_tcp_inspect' : value => $timeout_tcp_inspect; 'haproxy_amphora/connection_max_retries' : value => $connection_max_retries; 'haproxy_amphora/connection_retry_interval' : value => $connection_retry_interval; 'haproxy_amphora/connection_logging' : value => $connection_logging; 'haproxy_amphora/active_connection_max_retries' : value => $active_connection_max_retries; 'haproxy_amphora/active_connection_retry_interval' : value => $active_connection_retry_interval; 'haproxy_amphora/failover_connection_max_retries' : value => $failover_connection_max_retries; 'haproxy_amphora/failover_connection_retry_interval' : value => $failover_connection_retry_interval; 'haproxy_amphora/build_rate_limit' : value => $build_rate_limit; 'haproxy_amphora/build_active_retries' : value => $build_active_retries; 'haproxy_amphora/build_retry_interval' : value => $build_retry_interval; 'haproxy_amphora/default_connection_limit' : value => $default_connection_limit; 'amphora_agent/agent_request_read_timeout' : value => $agent_request_read_timeout; 'amphora_agent/agent_tls_protocol' : value => $agent_tls_protocol; 'amphora_agent/admin_log_targets' : value => join(any2array($admin_log_targets), ','); 'amphora_agent/administrative_log_facility' : value => $administrative_log_facility; 'amphora_agent/forward_all_logs' : value => $forward_all_logs; 'amphora_agent/tenant_log_targets' : value => join(any2array($tenant_log_targets), ','); 'amphora_agent/user_log_facility' : value => $user_log_facility; 'haproxy_amphora/user_log_format' : value => $user_log_format; 'amphora_agent/log_protocol' : value => $log_protocol; 'amphora_agent/log_retry_count' : value => $log_retry_count; 'amphora_agent/log_retry_interval' : value => $log_retry_interval; 'amphora_agent/log_queue_size' : value => $log_queue_size; 'amphora_agent/logging_template_override' : value => $logging_template_override; 'amphora_agent/disable_local_log_storage' : value => $disable_local_log_storage; 'keepalived_vrrp/vrrp_advert_int' : value => $vrrp_advert_int; 'keepalived_vrrp/vrrp_check_interval' : value => $vrrp_check_interval; 'keepalived_vrrp/vrrp_fail_count' : value => $vrrp_fail_count; 'keepalived_vrrp/vrrp_success_count' : value => $vrrp_success_count; 'keepalived_vrrp/vrrp_garp_refresh_interval' : value => $vrrp_garp_refresh_interval; 'keepalived_vrrp/vrrp_garp_refresh_count' : value => $vrrp_garp_refresh_count; 'health_manager/controller_ip_port_list' : value => join(any2array($controller_ip_port_list), ','); 'health_manager/heartbeat_key' : value => $heartbeat_key, secret => true; 'health_manager/heartbeat_interval' : value => $heartbeat_interval; } }