3
0

Merge branch 'jenkins-build-27' into 'master'

Auto-merge for build 27

See merge request puppet/puppet_cd!23
This commit is contained in:
2025-10-23 19:22:59 +00:00
6 changed files with 162 additions and 28 deletions

View File

@@ -1674,7 +1674,11 @@
242
243
244
245</pre>
245
246
247
248
249</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/params.pp', line 88</span>
@@ -1797,6 +1801,7 @@ class puppet_cd::params (
$pt_puppetdb_var_dir = &#39;/opt/puppetlabs/server/data/puppetdb&#39;
## r10k
$pt_r10k_dir = &quot;${pt_main_dir}/r10k&quot;
$pt_r10k_webhook_dir = &#39;/etc/r10k-webhook&#39;
# files
## puppet
@@ -1826,12 +1831,15 @@ class puppet_cd::params (
$pt_r10k_file = &quot;${pt_r10k_dir}/r10k.yaml&quot;
$pt_r10k_erb = &#39;puppet_cd/r10k/r10k.yaml.erb&#39;
$pt_r10k_hook_file = &#39;/usr/local/bin/webhook&#39;
$pt_r10k_hook_config_file = &quot;${pt_r10k_webhook_dir}/hooks.json&quot;
$pt_r10k_hook_config_erb = &#39;puppet_cd/r10k/hook_config.erb&#39;
$pt_r10k_hook_service_file = &#39;/etc/systemd/system/webhook.service&#39;
$pt_r10k_hook_service_erb = &#39;puppet_cd/r10k/r10k_webhook_service.erb&#39;
# service
$pt_server_service = &#39;puppetserver&#39;
$pt_agent_service = &#39;puppet&#39;
$pt_db_service = &#39;puppetdb&#39;
$pt_r10k_wb_service = &#39;r10k-webhook&#39;
#
# includes must be last

View File

@@ -125,7 +125,43 @@
27
28
29
30</pre>
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'manifests/r10k/webhook.pp', line 6</span>
@@ -147,12 +183,48 @@ class puppet_cd::r10k::webhook (
source =&gt; &#39;puppet:///modules/puppet_cd/webhook&#39;,
}
# # manage service
# service { &#39;r10k-webhook&#39;:
# ensure =&gt; &#39;running&#39;,
# enable =&gt; true,
# subscribe =&gt; File[$pt_r10k_wh_config_file],
# }
# create the webhook config dir
file { $pt_r10k_webhook_dir:
ensure =&gt; directory,
owner =&gt; &#39;root&#39;,
group =&gt; &#39;root&#39;,
mode =&gt; &#39;0755&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; etc_t,
seluser =&gt; system_u,
}
# create webhook config
file { $pt_r10k_hook_config_file:
owner =&gt; &#39;root&#39;,
group =&gt; &#39;root&#39;,
mode =&gt; &#39;0644&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; etc_t,
seluser =&gt; system_u,
content =&gt; template($pt_r10k_hook_config_erb),
}
# create service config
file { $pt_r10k_hook_config_file:
owner =&gt; &#39;root&#39;,
group =&gt; &#39;root&#39;,
mode =&gt; &#39;0644&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; systemd_unit_file_t,
seluser =&gt; system_u,
content =&gt; template($pt_r10k_hook_service_erb),
}
# manage service
service { &#39;r10k-webhook&#39;:
ensure =&gt; &#39;running&#39;,
enable =&gt; true,
subscribe =&gt; File[$pt_r10k_hook_config_file],
}
}
}</pre>
</td>

View File

@@ -203,6 +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 = '/etc/r10k-webhook'
# files
## puppet
@@ -232,12 +233,15 @@ class puppet_cd::params (
$pt_r10k_file = "${pt_r10k_dir}/r10k.yaml"
$pt_r10k_erb = 'puppet_cd/r10k/r10k.yaml.erb'
$pt_r10k_hook_file = '/usr/local/bin/webhook'
$pt_r10k_hook_config_file = "${pt_r10k_webhook_dir}/hooks.json"
$pt_r10k_hook_config_erb = 'puppet_cd/r10k/hook_config.erb'
$pt_r10k_hook_service_file = '/etc/systemd/system/webhook.service'
$pt_r10k_hook_service_erb = 'puppet_cd/r10k/r10k_webhook_service.erb'
# service
$pt_server_service = 'puppetserver'
$pt_agent_service = 'puppet'
$pt_db_service = 'puppetdb'
$pt_r10k_wb_service = 'r10k-webhook'
#
# includes must be last

View File

@@ -20,11 +20,47 @@ class puppet_cd::r10k::webhook (
source => 'puppet:///modules/puppet_cd/webhook',
}
# # manage service
# service { 'r10k-webhook':
# ensure => 'running',
# enable => true,
# subscribe => File[$pt_r10k_wh_config_file],
# }
# create the webhook config 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 webhook config
file { $pt_r10k_hook_config_file:
owner => 'root',
group => 'root',
mode => '0644',
selrange => s0,
selrole => object_r,
seltype => etc_t,
seluser => system_u,
content => template($pt_r10k_hook_config_erb),
}
# create service config
file { $pt_r10k_hook_config_file:
owner => 'root',
group => 'root',
mode => '0644',
selrange => s0,
selrole => object_r,
seltype => systemd_unit_file_t,
seluser => system_u,
content => template($pt_r10k_hook_service_erb),
}
# manage service
service { 'r10k-webhook':
ensure => 'running',
enable => true,
subscribe => File[$pt_r10k_hook_config_file],
}
}
}

View File

@@ -0,0 +1,18 @@
[
{
"id": "r10k-deploy",
"execute-command": "/usr/local/bin/r10k",
"command-working-directory": "/etc/puppetlabs/code",
"pass-arguments-to-command": [
{ "source": "string", "name": "deploy" },
{ "source": "string", "name": "environment" },
{ "source": "string", "name": "-pv" }
],
"trigger-rule": {
"match": {
"type": "payload-hash-sha1",
"secret": "your_webhook_secret"
}
}
}
]

View File

@@ -1,19 +1,15 @@
[Unit]
Description=r10k Webhook Server
After=network.target haproxy.service
Description=Webhook Service for r10k Deployment
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/webhook -hooks /etc/webhook/hooks.json -port 8088
Restart=always
User=puppet
Group=puppet
WorkingDirectory=/opt/r10k-webhook
ExecStart=/usr/bin/python3 /opt/r10k-webhook/webhook_server.py
Restart=always
RestartSec=5
Environment=R10K_WEBHOOK_SECRET=YOUR_SECRET_HERE
LimitNOFILE=65536
StandardOutput=journal
StandardError=journal
WorkingDirectory=/etc/puppetlabs/code
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target