diff --git a/data/common/kafka.yaml b/data/common/kafka.yaml --- a/data/common/kafka.yaml +++ b/data/common/kafka.yaml @@ -26,6 +26,9 @@ kafka::scala_version: '2.13' kafka::mirror_url: https://mirrors.ircam.fr/pub/apache/ +# Add the directories needed to create the logdirs +# In production, /srv/kafka is a mount points so it doesnt'd need to be managed by puppet +kafka::logdirs::roots: [] kafka::logdirs: - /srv/kafka/logdir kafka::broker_config: @@ -119,5 +122,3 @@ plaintext_port: 9092 public_tls_port: 9093 internal_tls_port: 9094 - - diff --git a/data/deployments/staging/common.yaml b/data/deployments/staging/common.yaml --- a/data/deployments/staging/common.yaml +++ b/data/deployments/staging/common.yaml @@ -89,6 +89,11 @@ rocquencourt: '1': journal0.internal.staging.swh.network +# on production the logdirs are in mount point so they don't need to be created +# by puppet. On vagrant and staging, they are not and have to be created by puppet +kafka::logdirs::roots: + - /srv/kafka + kafka::clusters: rocquencourt: zookeeper::chroot: '/kafka/softwareheritage' diff --git a/site-modules/profile/manifests/kafka/broker.pp b/site-modules/profile/manifests/kafka/broker.pp --- a/site-modules/profile/manifests/kafka/broker.pp +++ b/site-modules/profile/manifests/kafka/broker.pp @@ -51,13 +51,23 @@ $heap_opts = $kafka_cluster_config['broker::heap_opts'] + $kafka_logdirs_roots = lookup('kafka::logdirs::roots', Array, ) $kafka_logdirs = lookup('kafka::logdirs', Array) + + $kafka_logdirs_roots.each |$root| { + file {$root: + ensure => directory, + owner => 'root', + group => 'root', + mode => '0750', + } + } $kafka_logdirs.each |$logdir| { file {$logdir: - ensure => directory, - owner => 'kafka', - group => 'kafka', - mode => '0750', + ensure => directory, + owner => 'kafka', + group => 'kafka', + mode => '0750', } -> Service['kafka'] }