diff --git a/doc/puppet_classes/puppet_cd_3A_3Afirewall_3A_3Aiptables.html b/doc/puppet_classes/puppet_cd_3A_3Afirewall_3A_3Aiptables.html index e269b4f..93485cf 100644 --- a/doc/puppet_classes/puppet_cd_3A_3Afirewall_3A_3Aiptables.html +++ b/doc/puppet_classes/puppet_cd_3A_3Afirewall_3A_3Aiptables.html @@ -166,9 +166,9 @@ class puppet_cd::firewall::iptables ( jump => 'accept', } if $pt_use_r10k_webhook == true { - firewall { '38080 open port 8080': + firewall { '38088 open port 8088': proto => 'tcp', - dport => '8080', + dport => '8088', jump => 'accept', } } diff --git a/doc/puppet_classes/puppet_cd_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/puppet_cd_3A_3Amain_3A_3Aconfig.html index 8c9b42d..00f8d54 100644 --- a/doc/puppet_classes/puppet_cd_3A_3Amain_3A_3Aconfig.html +++ b/doc/puppet_classes/puppet_cd_3A_3Amain_3A_3Aconfig.html @@ -128,10 +128,10 @@ class puppet_cd::main::config ( include puppet_cd::puppetdb::service } -# if $pt_use_r10k == true { -# include puppet_cd::r10k::install -# include puppet_cd::r10k::webhook -# } + if $pt_use_r10k == true { + include puppet_cd::r10k::install + include puppet_cd::r10k::webhook + } } diff --git a/doc/puppet_classes/puppet_cd_3A_3Aparams.html b/doc/puppet_classes/puppet_cd_3A_3Aparams.html index 5c6da7a..0b36cf0 100644 --- a/doc/puppet_classes/puppet_cd_3A_3Aparams.html +++ b/doc/puppet_classes/puppet_cd_3A_3Aparams.html @@ -1803,7 +1803,7 @@ class puppet_cd::params ( $pt_puppetdb_var_dir = '/opt/puppetlabs/server/data/puppetdb' ## r10k $pt_r10k_dir = "${pt_main_dir}/r10k" - $pt_r10k_webhook_dir = '/opt/r10k-webhook' + $pt_r10k_webhook_dir = '/etc/r10k-webhook' # files ## puppet @@ -1836,8 +1836,8 @@ class puppet_cd::params ( $pt_r10k_webhook_erb = 'puppet_cd/r10k/webhook.py.erb' $pt_r10k_req_file = "${pt_r10k_webhook_dir}/requirements.txt" $pt_r10k_req_erb = 'puppet_cd/r10k/requirements.txt.erb' - $pt_r10k_wh_service_file = '/etc/systemd/system/r10k-webhook.service' - $pt_r10k_wh_service_erb = 'puppet_cd/r10k/r10k_webhook_service.erb' + $pt_r10k_wh_config_file = "${pt_r10k_webhook_dir}/config.json" + $pt_r10k_wh_config_erb = 'puppet_cd/r10k/r10k_webhook_config.erb' # service $pt_server_service = 'puppetserver' diff --git a/doc/puppet_classes/puppet_cd_3A_3Ar10k_3A_3Awebhook.html b/doc/puppet_classes/puppet_cd_3A_3Ar10k_3A_3Awebhook.html index ac3c328..d51ba97 100644 --- a/doc/puppet_classes/puppet_cd_3A_3Ar10k_3A_3Awebhook.html +++ b/doc/puppet_classes/puppet_cd_3A_3Ar10k_3A_3Awebhook.html @@ -173,32 +173,7 @@ 75 76 77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 +78
# File 'manifests/r10k/webhook.pp', line 6
@@ -213,27 +188,17 @@ class puppet_cd::r10k::webhook (
     }
 
     # create the webhook dir
-    file { '/opt/r10k-webhook':
+    file { $pt_r10k_webhook_dir:
       ensure   => directory,
-      path     => $pt_r10k_webhook_dir,
-      owner    => 'puppet',
-      group    => 'puppet',
+      owner    => 'root',
+      group    => 'root',
       mode     => '0755',
       selrange => s0,
       selrole  => object_r,
-      seltype  => puppet_etc_t,
+      seltype  => etc_t,
       seluser  => system_u,
     }
 
-    # create the log file
-    file { '/var/log/r10k-webhook.log':
-      ensure  => file,
-      owner   => 'puppet',
-      group   => 'puppet',
-      mode    => '0644',
-      require => File['/opt/r10k-webhook'],
-    }
-
     # create the requirements file
     file { $pt_r10k_req_file:
       ensure   => file,
@@ -242,26 +207,26 @@ class puppet_cd::r10k::webhook (
       mode     => '0644',
       selrange => s0,
       selrole  => object_r,
-      seltype  => puppet_etc_t,
+      seltype  => etc_t,
       seluser  => system_u,
       content  => template($pt_r10k_req_erb),
-      require  => File['/var/log/r10k-webhook.log'],
     }
 
-    # create the binary file
-    file { $pt_r10k_webhook_file:
+    # create the webhook config file
+    file { $pt_r10k_wh_config_file:
       ensure   => file,
-      owner    => 'puppet',
-      group    => 'puppet',
+      owner    => 'root',
+      group    => 'root',
       mode     => '0644',
       selrange => s0,
       selrole  => object_r,
-      seltype  => puppet_etc_t,
+      seltype  => etc_t,
       seluser  => system_u,
-      content  => template($pt_r10k_webhook_erb),
-      require  => File['/opt/r10k-webhook'],
+      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',
@@ -278,26 +243,11 @@ class puppet_cd::r10k::webhook (
       refreshonly => true,
     }
 
-    # install systemd service file
-    file { $pt_r10k_wh_service_file:
-      ensure   => file,
-      owner    => 'root',
-      group    => 'root',
-      mode     => '0644',
-      selrange => s0,
-      selrole  => object_r,
-      seltype  => systemd_unit_file_t,
-      seluser  => system_u,
-      content  => template($pt_r10k_wh_service_erb),
-      notify   => Exec['systemctl_daemon_reload'],
-    }
-
     # manage service
     service { 'r10k-webhook':
       ensure    => 'running',
       enable    => true,
-      require   => File[$pt_r10k_wh_service_file],
-      subscribe => File[$pt_r10k_webhook_file],
+      subscribe => File[$pt_r10k_wh_config_file],
     }
   }
 }
diff --git a/manifests/firewall/iptables.pp b/manifests/firewall/iptables.pp index 7f4b8b0..d52c19e 100644 --- a/manifests/firewall/iptables.pp +++ b/manifests/firewall/iptables.pp @@ -18,9 +18,9 @@ class puppet_cd::firewall::iptables ( jump => 'accept', } if $pt_use_r10k_webhook == true { - firewall { '38080 open port 8080': + firewall { '38088 open port 8088': proto => 'tcp', - dport => '8080', + dport => '8088', jump => 'accept', } } diff --git a/manifests/main/config.pp b/manifests/main/config.pp index 68ce0df..69027ae 100644 --- a/manifests/main/config.pp +++ b/manifests/main/config.pp @@ -12,8 +12,8 @@ class puppet_cd::main::config ( include puppet_cd::puppetdb::service } -# if $pt_use_r10k == true { -# include puppet_cd::r10k::install -# include puppet_cd::r10k::webhook -# } + if $pt_use_r10k == true { + include puppet_cd::r10k::install + include puppet_cd::r10k::webhook + } } diff --git a/manifests/params.pp b/manifests/params.pp index 3027126..de0641c 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -203,7 +203,7 @@ class puppet_cd::params ( $pt_puppetdb_var_dir = '/opt/puppetlabs/server/data/puppetdb' ## r10k $pt_r10k_dir = "${pt_main_dir}/r10k" - $pt_r10k_webhook_dir = '/opt/r10k-webhook' + $pt_r10k_webhook_dir = '/etc/r10k-webhook' # files ## puppet @@ -236,8 +236,8 @@ class puppet_cd::params ( $pt_r10k_webhook_erb = 'puppet_cd/r10k/webhook.py.erb' $pt_r10k_req_file = "${pt_r10k_webhook_dir}/requirements.txt" $pt_r10k_req_erb = 'puppet_cd/r10k/requirements.txt.erb' - $pt_r10k_wh_service_file = '/etc/systemd/system/r10k-webhook.service' - $pt_r10k_wh_service_erb = 'puppet_cd/r10k/r10k_webhook_service.erb' + $pt_r10k_wh_config_file = "${pt_r10k_webhook_dir}/config.json" + $pt_r10k_wh_config_erb = 'puppet_cd/r10k/r10k_webhook_config.erb' # service $pt_server_service = 'puppetserver' diff --git a/manifests/r10k/webhook.pp b/manifests/r10k/webhook.pp index be78c05..3a5e9ef 100644 --- a/manifests/r10k/webhook.pp +++ b/manifests/r10k/webhook.pp @@ -13,27 +13,17 @@ class puppet_cd::r10k::webhook ( } # create the webhook dir - file { '/opt/r10k-webhook': + file { $pt_r10k_webhook_dir: ensure => directory, - path => $pt_r10k_webhook_dir, - owner => 'puppet', - group => 'puppet', + owner => 'root', + group => 'root', mode => '0755', selrange => s0, selrole => object_r, - seltype => puppet_etc_t, + seltype => etc_t, seluser => system_u, } - # create the log file - file { '/var/log/r10k-webhook.log': - ensure => file, - owner => 'puppet', - group => 'puppet', - mode => '0644', - require => File['/opt/r10k-webhook'], - } - # create the requirements file file { $pt_r10k_req_file: ensure => file, @@ -42,26 +32,26 @@ class puppet_cd::r10k::webhook ( mode => '0644', selrange => s0, selrole => object_r, - seltype => puppet_etc_t, + seltype => etc_t, seluser => system_u, content => template($pt_r10k_req_erb), - require => File['/var/log/r10k-webhook.log'], } - # create the binary file - file { $pt_r10k_webhook_file: + # create the webhook config file + file { $pt_r10k_wh_config_file: ensure => file, - owner => 'puppet', - group => 'puppet', + owner => 'root', + group => 'root', mode => '0644', selrange => s0, selrole => object_r, - seltype => puppet_etc_t, + seltype => etc_t, seluser => system_u, - content => template($pt_r10k_webhook_erb), - require => File['/opt/r10k-webhook'], + 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', @@ -78,26 +68,11 @@ class puppet_cd::r10k::webhook ( refreshonly => true, } - # install systemd service file - file { $pt_r10k_wh_service_file: - ensure => file, - owner => 'root', - group => 'root', - mode => '0644', - selrange => s0, - selrole => object_r, - seltype => systemd_unit_file_t, - seluser => system_u, - content => template($pt_r10k_wh_service_erb), - notify => Exec['systemctl_daemon_reload'], - } - # manage service service { 'r10k-webhook': ensure => 'running', enable => true, - require => File[$pt_r10k_wh_service_file], - subscribe => File[$pt_r10k_webhook_file], + subscribe => File[$pt_r10k_wh_config_file], } } } diff --git a/templates/r10k/r10k_webhook_config.erb b/templates/r10k/r10k_webhook_config.erb new file mode 100644 index 0000000..7028563 --- /dev/null +++ b/templates/r10k/r10k_webhook_config.erb @@ -0,0 +1,8 @@ +{ + "flush_env_cache": false, + "branch_to_env_map": { + "master": "production", + "^env_(.*)$": "\g<1>" + }, + "allowed_branches": "^(env_[\w]+|master)$" +} \ No newline at end of file diff --git a/templates/r10k/requirements.txt.erb b/templates/r10k/requirements.txt.erb index 992201c..4d50e5b 100644 --- a/templates/r10k/requirements.txt.erb +++ b/templates/r10k/requirements.txt.erb @@ -1,3 +1,4 @@ -fastapi==0.115.0 -uvicorn==0.30.6 -pydantic==2.8.2 \ No newline at end of file +#fastapi==0.115.0 +#uvicorn==0.30.6 +#pydantic==2.8.2 +r10k-webhook \ No newline at end of file