puppet-prod/site/profiles/manifests/gitea/runner.pp
Ben Vincent 73b6ac1986
All checks were successful
Build / precommit (pull_request) Successful in 6m48s
feat: act runner updates
saving artifacts are breaking in some actions as the runner will switch
between different git hosts. using haproxy will ensure the same backend
is always hit via stick-tables and cookies

- ensure runners use haproxy to reach git

we now package act_runner now, lets use the rpm

- change installation method to rpm instead of curl + untar
- add capability to versionlock act_runner
- fix paths to act_runner
- remove manually installed act_runner
2026-01-03 20:45:55 +11:00

76 lines
1.7 KiB
Puppet

# profiles::gitea::init
class profiles::gitea::runner (
String $registration_token,
String $user = 'runner',
String $group = 'runner',
Stdlib::Absolutepath $home = '/data/runner',
Hash $config = {},
Stdlib::HTTPSUrl $instance = 'https://git.query.consul',
String $version = 'latest',
) {
group { $group:
ensure => 'present',
}
user { $user:
ensure => 'present',
home => $home,
managehome => true,
forcelocal => true,
groups => ['docker'],
gid => $group,
require => Group[$group],
}
file { "${home}/config.yaml":
ensure => file,
content => to_yaml($config),
owner => $user,
group => $group,
require => User[$user],
}
unless $version in ['latest', 'present'] {
# versionlock act
yum::versionlock{ 'act_runner':
ensure => present,
version => $version,
before => Package['act_runner'],
}
}
# install act
package { 'act_runner':
ensure => $version,
}
# remove manually installed act_runner
file { '/usr/local/bin/act_runner':
ensure => absent,
}
exec { 'register_act_runner':
command => "/usr/bin/act_runner register \
--no-interactive \
--instance ${instance} \
--token ${registration_token} \
--name ${facts['networking']['hostname']} \
--config ${home}/config.yaml",
creates => "${home}/.runner",
cwd => $home,
user => $user,
group => $group,
require => [
Package['act_runner'],
File["${home}/config.yaml"],
],
}
systemd::unit_file { 'act_runner.service':
enable => true,
active => true,
content => template('profiles/gitea/act_runner.service.erb'),
}
}