# 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'), } }