## puppet_cd::r10k::webhook.pp # Module name: puppet_cd # Author: Arne Teuke (arne_teuke@confdroid) # @summary Class manages r10k webhook settings for the puppet_cd module. ############################################################################### class puppet_cd::r10k::webhook ( ) inherits puppet_cd::params { if ($pt_pm_fqdn == $fqdn) and ($pt_use_r10k_webhook == true) { # install packages package { $pt_r10k_webhook_pkg: ensure => $pt_pkg_ensure, } # create the webhook dir file { $pt_r10k_webhook_dir: ensure => directory, owner => 'root', group => 'root', mode => '0755', selrange => s0, selrole => object_r, seltype => etc_t, seluser => system_u, } # create the requirements file file { $pt_r10k_req_file: ensure => file, owner => 'puppet', group => 'puppet', mode => '0644', selrange => s0, selrole => object_r, seltype => etc_t, seluser => system_u, content => template($pt_r10k_req_erb), } # create the webhook config file file { $pt_r10k_wh_config_file: ensure => file, owner => 'root', group => 'root', mode => '0644', selrange => s0, selrole => object_r, seltype => etc_t, seluser => system_u, content => template($pt_r10k_wh_config_erb), require => File[$pt_r10k_webhook_dir], } # install pip dependencies exec { 'pip_install_r10k_webhook': command => 'pip3 install --user -r /opt/r10k-webhook/requirements.txt', user => 'puppet', require => [Package[$pt_r10k_webhook_pkg],File[$pt_r10k_req_file]], unless => 'pip3 show fastapi', # Idempotent check } # establish exec systemd reload exec { 'systemctl_daemon_reload': command => 'systemctl daemon-reload', path => ['/bin', '/usr/bin'], require => Exec['pip_install_r10k_webhook'], refreshonly => true, } # manage service service { 'r10k-webhook': ensure => 'running', enable => true, subscribe => File[$pt_r10k_wh_config_file], } } }