feat: create stalwart module (#418)
- add stalwart module - add psql database on the shared patroni instance - add ceph-rgw credentials to eyaml - ensure psql pass and s3 access key are converted to sensitive Reviewed-on: #418
This commit was merged in pull request #418.
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# @summary Manages Stalwart Mail Server configuration
|
||||
#
|
||||
# @api private
|
||||
class stalwart::config {
|
||||
assert_private()
|
||||
|
||||
# Create base directories (package creates user/group and base dirs)
|
||||
file { [$stalwart::config_dir, $stalwart::data_dir, $stalwart::webadmin_unpack_path]:
|
||||
ensure => directory,
|
||||
owner => 'stalwart',
|
||||
group => 'stalwart',
|
||||
mode => '0750',
|
||||
}
|
||||
|
||||
# Ensure log directory exists
|
||||
file { '/var/log/stalwart':
|
||||
ensure => directory,
|
||||
owner => 'stalwart',
|
||||
group => 'stalwart',
|
||||
mode => '0755',
|
||||
}
|
||||
|
||||
# Main configuration file
|
||||
file { "${stalwart::config_dir}/config.toml":
|
||||
ensure => file,
|
||||
owner => 'stalwart',
|
||||
group => 'stalwart',
|
||||
mode => '0640',
|
||||
content => epp('stalwart/config.toml.epp', {
|
||||
'cluster_size' => $stalwart::cluster_size,
|
||||
'other_cluster_members' => $stalwart::other_cluster_members,
|
||||
'effective_node_id' => $stalwart::effective_node_id,
|
||||
'bind_address' => $stalwart::bind_address,
|
||||
'advertise_address' => $stalwart::advertise_address,
|
||||
'postgresql_host' => $stalwart::postgresql_host,
|
||||
'postgresql_port' => $stalwart::postgresql_port,
|
||||
'postgresql_database' => $stalwart::postgresql_database,
|
||||
'postgresql_user' => $stalwart::postgresql_user,
|
||||
'postgresql_password' => $stalwart::postgresql_password.unwrap,
|
||||
'postgresql_ssl' => $stalwart::postgresql_ssl,
|
||||
's3_endpoint' => $stalwart::s3_endpoint,
|
||||
's3_bucket' => $stalwart::s3_bucket,
|
||||
's3_region' => $stalwart::s3_region,
|
||||
's3_access_key' => $stalwart::s3_access_key,
|
||||
's3_secret_key' => $stalwart::s3_secret_key.unwrap,
|
||||
's3_key_prefix' => $stalwart::s3_key_prefix,
|
||||
'domains' => $stalwart::domains,
|
||||
'postfix_relay_host' => $stalwart::postfix_relay_host,
|
||||
'enable_imap' => $stalwart::enable_imap,
|
||||
'enable_imap_tls' => $stalwart::enable_imap_tls,
|
||||
'enable_http' => $stalwart::enable_http,
|
||||
'data_dir' => $stalwart::data_dir,
|
||||
'tls_cert' => $stalwart::tls_cert,
|
||||
'tls_key' => $stalwart::tls_key,
|
||||
'log_level' => $stalwart::log_level,
|
||||
'fallback_admin_user' => $stalwart::fallback_admin_user,
|
||||
'fallback_admin_password' => $stalwart::fallback_admin_password,
|
||||
'webadmin_unpack_path' => $stalwart::webadmin_unpack_path,
|
||||
'webadmin_resource_url' => $stalwart::webadmin_resource_url,
|
||||
'webadmin_auto_update' => $stalwart::webadmin_auto_update,
|
||||
'node_facts' => $facts,
|
||||
}),
|
||||
notify => Service['stalwart'],
|
||||
}
|
||||
|
||||
# Create directories for storage
|
||||
file { "${stalwart::data_dir}/queue":
|
||||
ensure => directory,
|
||||
owner => 'stalwart',
|
||||
group => 'stalwart',
|
||||
mode => '0750',
|
||||
}
|
||||
|
||||
file { "${stalwart::data_dir}/reports":
|
||||
ensure => directory,
|
||||
owner => 'stalwart',
|
||||
group => 'stalwart',
|
||||
mode => '0750',
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user