Skip to content

Commit e730f31

Browse files
committed
Use Valkey in RHEL 10 family
In RHEL 10 family operating systems (such as CentOS Stream 10), redis was replaced by valkey. Signed-off-by: Takashi Kajinami <[email protected]>
1 parent f4af8fe commit e730f31

21 files changed

+333
-139
lines changed

REFERENCE.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class { 'redis':
8484

8585
The following parameters are available in the `redis` class:
8686

87+
* [`provider`](#-redis--provider)
8788
* [`activerehashing`](#-redis--activerehashing)
8889
* [`aof_load_truncated`](#-redis--aof_load_truncated)
8990
* [`aof_rewrite_incremental_fsync`](#-redis--aof_rewrite_incremental_fsync)
@@ -232,6 +233,14 @@ The following parameters are available in the `redis` class:
232233
* [`acls`](#-redis--acls)
233234
* [`manage_service_file`](#-redis--manage_service_file)
234235

236+
##### <a name="-redis--provider"></a>`provider`
237+
238+
Data type: `String[1]`
239+
240+
Name of the redis server implementation.
241+
242+
Default value: `$redis::params::provider`
243+
235244
##### <a name="-redis--activerehashing"></a>`activerehashing`
236245

237246
Data type: `Boolean`
@@ -495,7 +504,7 @@ Data type: `String`
495504
Specify file where to write log entries. Relative paths will be prepended
496505
with log_dir but absolute paths are also accepted.
497506

498-
Default value: `'redis.log'`
507+
Default value: `$redis::params::log_file`
499508

500509
##### <a name="-redis--log_level"></a>`log_level`
501510

@@ -863,7 +872,7 @@ Data type: `String[1]`
863872

864873
Specify which group to run as.
865874

866-
Default value: `'redis'`
875+
Default value: `$redis::params::service_group`
867876

868877
##### <a name="-redis--service_name"></a>`service_name`
869878

@@ -879,7 +888,7 @@ Data type: `String[1]`
879888

880889
Specify which user to run as.
881890

882-
Default value: `'redis'`
891+
Default value: `$redis::params::service_user`
883892

884893
##### <a name="-redis--service_timeout_start"></a>`service_timeout_start`
885894

@@ -1147,7 +1156,7 @@ Data type: `Variant[Stdlib::Absolutepath, Enum['']]`
11471156

11481157
Define unix socket path
11491158

1150-
Default value: `'/var/run/redis/redis.sock'`
1159+
Default value: `$redis::params::unixsocket`
11511160

11521161
##### <a name="-redis--unixsocketperm"></a>`unixsocketperm`
11531162

@@ -1802,7 +1811,7 @@ Data type: `String[1]`
18021811

18031812
The group of the config file.
18041813

1805-
Default value: `'redis'`
1814+
Default value: `$redis::params::service_group`
18061815

18071816
##### <a name="-redis--sentinel--service_name"></a>`service_name`
18081817

@@ -1818,7 +1827,7 @@ Data type: `String[1]`
18181827

18191828
The owner of the config file.
18201829

1821-
Default value: `'redis'`
1830+
Default value: `$redis::params::service_user`
18221831

18231832
##### <a name="-redis--sentinel--service_enable"></a>`service_enable`
18241833

@@ -2323,7 +2332,7 @@ Data type: `String`
23232332
Specify file where to write log entries. Relative paths will be prepended
23242333
with log_dir but absolute paths are also accepted.
23252334

2326-
Default value: `"redis-server-${name}.log"`
2335+
Default value: `"${redis::provider}-server-${name}.log"`
23272336

23282337
##### <a name="-redis--instance--log_level"></a>`log_level`
23292338

@@ -2443,7 +2452,7 @@ Data type: `Stdlib::Absolutepath`
24432452

24442453
Where to store the pid.
24452454

2446-
Default value: `"/var/run/${service_name}/redis.pid"`
2455+
Default value: `"/var/run/${service_name}/${redis::provider}.pid"`
24472456

24482457
##### <a name="-redis--instance--port"></a>`port`
24492458

@@ -2564,7 +2573,7 @@ Data type: `String[1]`
25642573

25652574
The service name for this instance
25662575

2567-
Default value: `"redis-server-${name}"`
2576+
Default value: `"${redis::provider}-server-${name}"`
25682577

25692578
##### <a name="-redis--instance--service_enable"></a>`service_enable`
25702579

@@ -2864,7 +2873,7 @@ Data type: `Variant[Stdlib::Absolutepath, Enum['']]`
28642873

28652874
Define unix socket path
28662875

2867-
Default value: `"/var/run/${service_name}/redis.sock"`
2876+
Default value: `"/var/run/${service_name}/${redis::provider}.sock"`
28682877

28692878
##### <a name="-redis--instance--unixsocketperm"></a>`unixsocketperm`
28702879

@@ -2881,7 +2890,7 @@ Data type: `Stdlib::Absolutepath`
28812890
The DB will be written inside this directory, with the filename specified
28822891
above using the 'dbfilename' configuration directive.
28832892

2884-
Default value: `"${redis::workdir}/redis-server-${name}"`
2893+
Default value: `"${redis::workdir}/${redis::provider}-server-${name}"`
28852894

28862895
##### <a name="-redis--instance--workdir_mode"></a>`workdir_mode`
28872896

lib/facter/redis_server_version.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@
1313
# Redis server version 2.4.10 (00000000:0)
1414
match = redis_server_version_output.match(%r{Redis server (?:version|v=)(?<version>[\w.]+).+})
1515
match ? match[:version] : nil
16+
elsif Facter::Util::Resolution.which('valkey-server')
17+
redis_server_version_output = Facter::Util::Resolution.exec('valkey-server -v')
18+
# Possible output:
19+
# Valkey server v=2.8.17 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=4c1d5710660b9479
20+
# Valkey server version 2.4.10 (00000000:0)
21+
match = redis_server_version_output.match(%r{Valkey server (?:version|v=)(?<version>[\w.]+).+})
22+
match ? match[:version] : nil
1623
end
1724
end
1825
end

manifests/init.pp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
# bind => [],
2020
# }
2121
#
22+
# @param provider
23+
# Name of the redis server implementation.
2224
# @param activerehashing
2325
# Enable/disable active rehashing.
2426
# @param aof_load_truncated
@@ -354,6 +356,7 @@
354356
# Determine if the systemd service file should be managed
355357
#
356358
class redis (
359+
String[1] $provider = $redis::params::provider,
357360
Boolean $activerehashing = true,
358361
Boolean $aof_load_truncated = true,
359362
Boolean $aof_rewrite_incremental_fsync = true,
@@ -388,7 +391,7 @@
388391
Integer[0] $list_max_ziplist_value = 64,
389392
Stdlib::Absolutepath $log_dir = $redis::params::log_dir,
390393
Stdlib::Filemode $log_dir_mode = $redis::params::log_dir_mode,
391-
String $log_file = 'redis.log',
394+
String $log_file = $redis::params::log_file,
392395
Redis::LogLevel $log_level = 'notice',
393396
Boolean $manage_service_file = false,
394397
Boolean $manage_package = true,
@@ -432,10 +435,10 @@
432435
Hash $save_db_to_disk_interval = { '900' => '1', '300' => '10', '60' => '10000' },
433436
Boolean $service_enable = true,
434437
Stdlib::Ensure::Service $service_ensure = 'running',
435-
String[1] $service_group = 'redis',
438+
String[1] $service_group = $redis::params::service_group,
436439
Boolean $service_manage = true,
437440
String[1] $service_name = $redis::params::service_name,
438-
String[1] $service_user = 'redis',
441+
String[1] $service_user = $redis::params::service_user,
439442
Optional[Integer[0]] $service_timeout_start = undef,
440443
Optional[Integer[0]] $service_timeout_stop = undef,
441444
Integer[0] $set_max_intset_entries = 512,
@@ -465,7 +468,7 @@
465468
Optional[String[1]] $tls_ciphersuites = undef,
466469
Optional[String[1]] $tls_protocols = undef,
467470
Boolean $tls_prefer_server_ciphers = false,
468-
Variant[Stdlib::Absolutepath, Enum['']] $unixsocket = '/var/run/redis/redis.sock',
471+
Variant[Stdlib::Absolutepath, Enum['']] $unixsocket = $redis::params::unixsocket,
469472
Variant[Stdlib::Filemode, Enum['']] $unixsocketperm = '0755',
470473
Integer[0] $ulimit = 65536,
471474
Boolean $ulimit_managed = true,

manifests/instance.pp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -392,17 +392,17 @@
392392
Integer[0] $cluster_slave_validity_factor = $redis::cluster_slave_validity_factor,
393393
Boolean $cluster_require_full_coverage = $redis::cluster_require_full_coverage,
394394
Integer[0] $cluster_migration_barrier = $redis::cluster_migration_barrier,
395-
String[1] $service_name = "redis-server-${name}",
395+
String[1] $service_name = "${redis::provider}-server-${name}",
396396
Stdlib::Ensure::Service $service_ensure = $redis::service_ensure,
397397
Boolean $service_enable = $redis::service_enable,
398398
String[1] $service_group = $redis::service_group,
399399
Optional[Integer[0]] $service_timeout_start = $redis::service_timeout_start,
400400
Optional[Integer[0]] $service_timeout_stop = $redis::service_timeout_stop,
401401
Boolean $manage_service_file = true,
402-
String $log_file = "redis-server-${name}.log",
403-
Stdlib::Absolutepath $pid_file = "/var/run/${service_name}/redis.pid",
404-
Variant[Stdlib::Absolutepath, Enum['']] $unixsocket = "/var/run/${service_name}/redis.sock",
405-
Stdlib::Absolutepath $workdir = "${redis::workdir}/redis-server-${name}",
402+
String $log_file = "${redis::provider}-server-${name}.log",
403+
Stdlib::Absolutepath $pid_file = "/var/run/${service_name}/${redis::provider}.pid",
404+
Variant[Stdlib::Absolutepath, Enum['']] $unixsocket = "/var/run/${service_name}/${redis::provider}.sock",
405+
Stdlib::Absolutepath $workdir = "${redis::workdir}/${redis::provider}-server-${name}",
406406
Optional[Integer[1]] $io_threads = $redis::io_threads,
407407
Optional[Boolean] $io_threads_do_reads = $redis::io_threads_do_reads,
408408
Optional[Boolean] $cluster_allow_reads_when_down = $redis::cluster_allow_reads_when_down,
@@ -465,6 +465,7 @@
465465
content => epp(
466466
'redis/service_templates/redis.service.epp',
467467
{
468+
provider => $redis::provider,
468469
bin_path => $redis::bin_path,
469470
instance_title => $name,
470471
port => $port,

0 commit comments

Comments
 (0)