
The patch to add nodepool to jenkins-dev (https://review.openstack.org/#/c/57333) did not work. There were a few issues with it: 1. jenkins-dev.pp was passing literal strings to the nodepool module, instead it should be passing in the variables. 2. jenkins-dev.pp was calling ::nodepool but puppet seems to think that it wants ::openstack_project::nodepool due to puppet's scoping weirdness :( 3. The script to build nodepool machines needed the jenkins_dev_ssh_key. Fixes to above issues: 1. This is trivial, just passed the variables thru instead of literal strings. 2. The nodepool.pp module is renamed to nodepool_prod.pp to prevent the scoping problem. 3. We use the dev jenkins ssh key with dev nodepool by allowing the nodepool module to pass arbitrary env settings through the defaults file. Change-Id: Id91053212f088079ff1b0f06ebdce5c381f5cd19
81 lines
2.3 KiB
Puppet
81 lines
2.3 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,
|
|
}
|
|
|
|
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',
|
|
}
|
|
|
|
}
|