Paul Belanger 79c1421ecf
Delete openstack_project::slave_common
This is no longer needed.

Change-Id: I6e5bbadfa7a0f8bef2ec0d42e1d8098faa44aa4d
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2017-04-17 16:44:06 -04:00

125 lines
3.2 KiB
Puppet

# == Class: openstack_project::slave
#
class openstack_project::slave (
$thin = false,
$certname = $::fqdn,
$ssh_key = '',
$sysadmins = [],
$jenkins_gitfullname = 'OpenStack Jenkins',
$jenkins_gitemail = 'jenkins@openstack.org',
$jenkins_gitpgpkey = 'jenkins@openstack.org',
$jenkins_gerrituser = 'jenkins',
$jenkins_gerritkey = undef,
$project_config_repo = 'https://git.openstack.org/openstack-infra/project-config',
$afs = false,
) {
include openstack_project
include openstack_project::tmpcleanup
class { 'openstack_project::server':
iptables_public_tcp_ports => [19885],
iptables_public_udp_ports => [],
certname => $certname,
sysadmins => $sysadmins,
afs => $afs
}
class { 'jenkins::slave':
ssh_key => $ssh_key,
gitfullname => $jenkins_gitfullname,
gitemail => $jenkins_gitemail,
gitpgpkey => $jenkins_gitpgpkey,
gerrituser => $jenkins_gerrituser,
gerritkey => $jenkins_gerritkey,
}
file { '/etc/sudoers.d/jenkins-sudo-grep':
ensure => present,
source => 'puppet:///modules/openstack_project/jenkins-sudo-grep.sudo',
owner => 'root',
group => 'root',
mode => '0440',
}
include jenkins::cgroups
include ulimit
ulimit::conf { 'limit_jenkins_procs':
limit_domain => 'jenkins',
limit_type => 'hard',
limit_item => 'nproc',
limit_value => '256'
}
class { 'project_config':
url => $project_config_repo,
}
file { '/usr/local/jenkins/common_data':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
recurse => true,
purge => true,
force => true,
require => [File['/usr/local/jenkins'],
$::project_config::config_dir],
source => $::project_config::jenkins_data_dir,
}
file { '/usr/local/jenkins/slave_scripts':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
recurse => true,
purge => true,
force => true,
require => [File['/usr/local/jenkins'],
$::project_config::config_dir],
source => $::project_config::jenkins_scripts_dir,
}
# needed by jenkins/jobs
if ! defined(Package['curl']) {
package { 'curl':
ensure => present,
}
}
file { '/home/jenkins/.pydistutils.cfg':
ensure => present,
owner => 'jenkins',
group => 'jenkins',
mode => '0644',
source => 'puppet:///modules/openstack_project/pydistutils.cfg',
require => Class['jenkins::jenkinsuser'],
}
if (! $thin) {
include openstack_project::thick_slave
}
vcsrepo { '/opt/zuul':
ensure => latest,
provider => git,
revision => 'master',
source => 'https://git.openstack.org/openstack-infra/zuul.git',
}
python::virtualenv { '/usr/zuul-env':
ensure => present,
owner => 'root',
group => 'root',
timeout => 0,
}
exec { 'zuul-env-update':
command => '/usr/zuul-env/bin/pip --log /usr/zuul-env/pip.log install /opt/zuul',
refreshonly => true,
subscribe => Vcsrepo['/opt/zuul'],
require => Python::Virtualenv['/usr/zuul-env'],
}
}