#Resourcetype for SUNET-Drive-Cache define sunetdrive::cache_type ( $bootstrap = undef, $location = undef, $override_config = undef, $override_compose = undef, $override_redis_conf = undef ) { $environment = sunetdrive::get_environment() $is_multinode = (($override_config != undef) and ($override_compose != undef) and ($override_redis_conf != undef)) # Now we get the corresponding config from group.yaml if $is_multinode { $config = $override_config } else { $config = hiera_hash($environment) $nextcloud_ip = $config['app'] # Pick out the first host to be redis leader $leader_address = $nextcloud_ip[0] } #Static variable defined here $leader_name = 'cache1' if $is_multinode { $redis_config = $override_redis_conf } else { $redis_host_password = safe_hiera('redis_host_password') $replica_of = hiera('replica_of') $announce_address = hiera('announce_address') file { '/opt/redis/server': ensure => directory, recurse => true, } $redis_config = file { '/opt/redis/server/server.conf': ensure => present, content => template('sunetdrive/cache/server.conf.erb'), mode => '0666', require => File['/opt/redis/server'], } file { '/opt/redis/sentinel': ensure => directory, recurse => true, } file { '/opt/redis/sentinel/sentinel.conf': ensure => present, content => template('sunetdrive/cache/sentinel.conf.erb'), mode => '0666', require => File['/opt/redis/sentinel'], } sunet::misc::ufw_allow { 'redis_server_port': from => '0.0.0.0/0', port => 6379, } sunet::misc::ufw_allow { 'redis_sentinel_port': from => '0.0.0.0/0', port => 26379, } } if $is_multinode { $compose = $override_compose } else { $compose = sunet::docker_compose { 'drive_redis_docker_compose': content => template('sunetdrive/cache/docker-compose_cache.yml.erb'), service_name => 'redis', compose_dir => '/opt/', compose_filename => 'docker-compose.yml', description => 'Redis cache cluster', } } }