system-config/modules/openstack_project/manifests/jenkins_dev.pp

176 lines
4.2 KiB
Puppet

# == Class: openstack_project::jenkins_dev
#
class openstack_project::jenkins_dev (
$jenkins_ssh_private_key = '',
$sysadmins = [],
$mysql_root_password,
$mysql_password,
$nodepool_ssh_private_key = '',
$jenkins_api_user ='',
$jenkins_api_key ='',
$jenkins_credentials_id ='',
$hpcloud_username ='',
$hpcloud_password ='',
$hpcloud_project ='',
$nodepool_template ='nodepool-dev.yaml.erb',
) {
include openstack_project
class { 'openstack_project::server':
iptables_public_tcp_ports => [80, 443],
sysadmins => $sysadmins,
}
include bup
bup::site { 'rs-ord':
backup_user => 'bup-jenkins-dev',
backup_server => 'ci-backup-rs-ord.openstack.org',
}
class { '::jenkins::master':
vhost_name => 'jenkins-dev.openstack.org',
serveradmin => 'webmaster@openstack.org',
logo => 'openstack.png',
ssl_cert_file => '/etc/ssl/certs/ssl-cert-snakeoil.pem',
ssl_key_file => '/etc/ssl/private/ssl-cert-snakeoil.key',
ssl_chain_file => '',
jenkins_ssh_private_key => $jenkins_ssh_private_key,
jenkins_ssh_public_key => $openstack_project::jenkins_dev_ssh_key,
}
jenkins::plugin { 'ansicolor':
version => '0.3.1',
}
jenkins::plugin { 'bazaar':
version => '1.20',
}
jenkins::plugin { 'build-timeout':
version => '1.13',
}
jenkins::plugin { 'copyartifact':
version => '1.22',
}
jenkins::plugin { 'dashboard-view':
version => '2.3',
}
jenkins::plugin { 'envinject':
version => '1.70',
}
jenkins::plugin { 'gearman-plugin':
version => '0.0.3',
}
jenkins::plugin { 'git':
version => '1.1.23',
}
jenkins::plugin { 'github-api':
version => '1.33',
}
jenkins::plugin { 'github':
version => '1.4',
}
jenkins::plugin { 'greenballs':
version => '1.12',
}
jenkins::plugin { 'htmlpublisher':
version => '1.0',
}
jenkins::plugin { 'extended-read-permission':
version => '1.0',
}
jenkins::plugin { 'postbuild-task':
version => '1.8',
}
jenkins::plugin { 'zmq-event-publisher':
version => '0.0.3',
}
jenkins::plugin { 'jclouds-jenkins':
version => '2.3.1',
}
# TODO(jeblair): release
# jenkins::plugin { 'scp':
# version => '1.9',
# }
jenkins::plugin { 'violations':
version => '0.7.11',
}
jenkins::plugin { 'jobConfigHistory':
version => '1.13',
}
jenkins::plugin { 'monitoring':
version => '1.40.0',
}
jenkins::plugin { 'nodelabelparameter':
version => '1.2.1',
}
jenkins::plugin { 'notification':
version => '1.4',
}
jenkins::plugin { 'openid':
version => '1.5',
}
jenkins::plugin { 'parameterized-trigger':
version => '2.15',
}
jenkins::plugin { 'publish-over-ftp':
version => '1.7',
}
jenkins::plugin { 'rebuild':
version => '1.14',
}
jenkins::plugin { 'simple-theme-plugin':
version => '0.2',
}
jenkins::plugin { 'timestamper':
version => '1.3.1',
}
jenkins::plugin { 'token-macro':
version => '1.5.1',
}
jenkins::plugin { 'url-change-trigger':
version => '1.2',
}
jenkins::plugin { 'urltrigger':
version => '0.24',
}
file { '/etc/default/jenkins':
ensure => present,
owner => 'root',
group => 'root',
mode => '0644',
source => 'puppet:///modules/openstack_project/jenkins/jenkins.default',
}
class { '::nodepool':
mysql_root_password => $mysql_root_password,
mysql_password => $mysql_password,
nodepool_ssh_private_key => $nodepool_ssh_private_key,
environment => {
'NODEPOOL_SSH_KEY' => $openstack_project::jenkins_dev_ssh_key,
}
}
file { '/etc/nodepool/nodepool.yaml':
ensure => present,
owner => 'nodepool',
group => 'root',
mode => '0400',
content => template("openstack_project/nodepool/${nodepool_template}"),
require => [
File['/etc/nodepool'],
User['nodepool'],
],
}
file { '/etc/nodepool/scripts':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
recurse => true,
purge => true,
force => true,
require => File['/etc/nodepool'],
source => 'puppet:///modules/openstack_project/nodepool/scripts',
}
}