diff --git a/README.md b/README.md index 32e6fa48..669ce8b5 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,15 @@ class { 'redis::sentinel': } ``` +If installation without redis-server is desired, set `contain_redis` parameter to false, i.e +```puppet +class { 'redis::sentinel': + ... + contain_redis => false, + ... +} +``` + ### Soft dependency When managing the repo, it needs [puppetlabs/apt](https://forge.puppet.com/puppetlabs/apt). diff --git a/REFERENCE.md b/REFERENCE.md index c2b5a708..2ad2f015 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -1554,6 +1554,7 @@ The following parameters are available in the `redis::sentinel` class: * [`client_reconfig_script`](#-redis--sentinel--client_reconfig_script) * [`acls`](#-redis--sentinel--acls) * [`service_ensure`](#-redis--sentinel--service_ensure) +* [`require_redis`](#-redis--sentinel--require_redis) ##### `auth_pass` @@ -1895,10 +1896,18 @@ Default value: `[]` Data type: `Stdlib::Ensure::Service` - +Specify if the server should be running. Default value: `'running'` +##### `require_redis` + +Data type: `Boolean` + +Require redis base class. If set to false, sentinel is installed without redis server. + +Default value: `true` + ## Defined types ### `redis::instance` diff --git a/manifests/sentinel.pp b/manifests/sentinel.pp index 2813802b..b03aff31 100644 --- a/manifests/sentinel.pp +++ b/manifests/sentinel.pp @@ -133,7 +133,7 @@ # @param acls # This is a way to pass an array of raw ACLs to Sentinel. The ACLs must be # in the form of: -# +# # user USERNAME [additional ACL options] # # @example Basic inclusion @@ -145,48 +145,54 @@ # log_file => '/var/log/redis/sentinel.log', # } # +# @param service_ensure +# Specify if the server should be running. +# @param require_redis +# Require redis base class. If set to false, sentinel is installed without redis server. +# class redis::sentinel ( - Optional[Variant[String[1], Sensitive[String[1]]]] $auth_pass = undef, - Stdlib::Absolutepath $config_file = $redis::params::sentinel_config_file, - Stdlib::Absolutepath $config_file_orig = $redis::params::sentinel_config_file_orig, - Stdlib::Filemode $config_file_mode = '0644', - String[1] $conf_template = 'redis/redis-sentinel.conf.erb', - Boolean $daemonize = $redis::params::sentinel_daemonize, - Boolean $protected_mode = true, - Integer[1] $down_after = 30000, - Integer[1] $failover_timeout = 180000, - Redis::LogLevel $log_level = 'notice', - Stdlib::Absolutepath $log_file = $redis::params::sentinel_log_file, - String[1] $master_name = 'mymaster', - Stdlib::Host $redis_host = '127.0.0.1', - Stdlib::Port $redis_port = 6379, - Optional[String[1]] $requirepass = undef, - String[1] $package_name = $redis::params::sentinel_package_name, - String[1] $package_ensure = 'installed', - Integer[0] $parallel_sync = 1, - Stdlib::Absolutepath $pid_file = $redis::params::sentinel_pid_file, - Integer[1] $quorum = 2, - Optional[Enum['yes', 'no']] $sentinel_announce_hostnames = undef, - Optional[Stdlib::Host] $sentinel_announce_ip = undef, + Optional[Variant[String[1], Sensitive[String[1]]]] $auth_pass = undef, + Stdlib::Absolutepath $config_file = $redis::params::sentinel_config_file, + Stdlib::Absolutepath $config_file_orig = $redis::params::sentinel_config_file_orig, + Stdlib::Filemode $config_file_mode = '0644', + String[1] $conf_template = 'redis/redis-sentinel.conf.erb', + Boolean $daemonize = $redis::params::sentinel_daemonize, + Boolean $protected_mode = true, + Integer[1] $down_after = 30000, + Integer[1] $failover_timeout = 180000, + Redis::LogLevel $log_level = 'notice', + Stdlib::Absolutepath $log_file = $redis::params::sentinel_log_file, + String[1] $master_name = 'mymaster', + Stdlib::Host $redis_host = '127.0.0.1', + Stdlib::Port $redis_port = 6379, + Optional[String[1]] $requirepass = undef, + String[1] $package_name = $redis::params::sentinel_package_name, + String[1] $package_ensure = 'installed', + Integer[0] $parallel_sync = 1, + Stdlib::Absolutepath $pid_file = $redis::params::sentinel_pid_file, + Integer[1] $quorum = 2, + Optional[Enum['yes', 'no']] $sentinel_announce_hostnames = undef, + Optional[Stdlib::Host] $sentinel_announce_ip = undef, Variant[Undef, Stdlib::IP::Address, Array[Stdlib::IP::Address]] $sentinel_bind = undef, - Stdlib::Port $sentinel_port = 26379, - Optional[Enum['yes', 'no']] $sentinel_resolve_hostnames = undef, - Optional[Stdlib::Port::Unprivileged] $sentinel_tls_port = undef, - String[1] $service_group = 'redis', - String[1] $service_name = $redis::params::sentinel_service_name, - Stdlib::Ensure::Service $service_ensure = 'running', - Boolean $service_enable = true, - String[1] $service_user = 'redis', - Optional[Stdlib::Absolutepath] $tls_cert_file = undef, - Optional[Stdlib::Absolutepath] $tls_key_file = undef, - Optional[Stdlib::Absolutepath] $tls_ca_cert_file = undef, - Optional[Stdlib::Absolutepath] $tls_ca_cert_dir = undef, - Enum['yes', 'no', 'optional'] $tls_auth_clients = 'no', - Boolean $tls_replication = false, - Stdlib::Absolutepath $working_dir = $redis::params::sentinel_working_dir, - Optional[Stdlib::Absolutepath] $notification_script = undef, - Optional[Stdlib::Absolutepath] $client_reconfig_script = undef, - Array[String[1]] $acls = [], + Stdlib::Port $sentinel_port = 26379, + Optional[Enum['yes', 'no']] $sentinel_resolve_hostnames = undef, + Optional[Stdlib::Port::Unprivileged] $sentinel_tls_port = undef, + String[1] $service_group = 'redis', + String[1] $service_name = $redis::params::sentinel_service_name, + Stdlib::Ensure::Service $service_ensure = 'running', + Boolean $service_enable = true, + String[1] $service_user = 'redis', + Optional[Stdlib::Absolutepath] $tls_cert_file = undef, + Optional[Stdlib::Absolutepath] $tls_key_file = undef, + Optional[Stdlib::Absolutepath] $tls_ca_cert_file = undef, + Optional[Stdlib::Absolutepath] $tls_ca_cert_dir = undef, + Enum['yes', 'no', 'optional'] $tls_auth_clients = 'no', + Boolean $tls_replication = false, + Stdlib::Absolutepath $working_dir = $redis::params::sentinel_working_dir, + Optional[Stdlib::Absolutepath] $notification_script = undef, + Optional[Stdlib::Absolutepath] $client_reconfig_script = undef, + Array[String[1]] $acls = [], + Boolean $require_redis = true, ) inherits redis::params { $auth_pass_unsensitive = if $auth_pass =~ Sensitive { $auth_pass.unwrap @@ -194,13 +200,17 @@ $auth_pass } - contain 'redis' + if $require_redis { + contain 'redis' + } if $package_name != $redis::package_name { ensure_packages([$package_name], { ensure => $package_ensure }) - Package[$package_name] -> Class['redis'] + if $require_redis { + Package[$package_name] -> Class['redis'] + } } Package[$package_name] -> File[$config_file_orig]