71 lines
2.4 KiB
Puppet
71 lines
2.4 KiB
Puppet
# == Class: openstack_project::jenkins
|
|
#
|
|
class openstack_project::jenkins (
|
|
$vhost_name = $::fqdn,
|
|
$jenkins_jobs_password = '',
|
|
$jenkins_jobs_username = 'gerrig', # This is not a typo, well it isn't anymore.
|
|
$jenkins_git_url = 'https://git.openstack.org/openstack-infra/jenkins-job-builder',
|
|
$jenkins_git_revision = 'master',
|
|
$manage_jenkins_jobs = true,
|
|
$ssl_cert_file = '',
|
|
$ssl_key_file = '',
|
|
$ssl_chain_file = '/etc/ssl/certs/intermediate.pem',
|
|
$ssl_cert_file_contents = '',
|
|
$ssl_key_file_contents = '',
|
|
$ssl_chain_file_contents = '',
|
|
$jenkins_ssh_public_key = $openstack_project::jenkins_ssh_key,
|
|
$jenkins_ssh_private_key = '',
|
|
$project_config_repo = '',
|
|
$serveradmin = 'webmaster@openstack.org',
|
|
$logo = 'openstack.png',
|
|
) inherits openstack_project {
|
|
include openstack_project
|
|
|
|
# Set defaults here because they evaluate variables which you cannot
|
|
# do in the class parameter list.
|
|
if $ssl_cert_file == '' {
|
|
$prv_ssl_cert_file = "/etc/ssl/certs/${vhost_name}.pem"
|
|
}
|
|
else {
|
|
$prv_ssl_cert_file = $ssl_cert_file
|
|
}
|
|
if $ssl_key_file == '' {
|
|
$prv_ssl_key_file = "/etc/ssl/private/${vhost_name}.key"
|
|
}
|
|
else {
|
|
$prv_ssl_key_file = $ssl_key_file
|
|
}
|
|
|
|
class { 'openstackci::jenkins_master':
|
|
vhost_name => $vhost_name,
|
|
serveradmin => $serveradmin,
|
|
logo => $logo,
|
|
ssl_cert_file => $prv_ssl_cert_file,
|
|
ssl_key_file => $prv_ssl_key_file,
|
|
ssl_chain_file => $ssl_chain_file,
|
|
ssl_cert_file_contents => $ssl_cert_file_contents,
|
|
ssl_key_file_contents => $ssl_key_file_contents,
|
|
ssl_chain_file_contents => $ssl_chain_file_contents,
|
|
jenkins_ssh_private_key => $jenkins_ssh_private_key,
|
|
jenkins_ssh_public_key => $jenkins_ssh_public_key,
|
|
}
|
|
|
|
if $manage_jenkins_jobs == true {
|
|
class { 'project_config':
|
|
url => $project_config_repo,
|
|
}
|
|
|
|
class { '::jenkins::job_builder':
|
|
jenkins_jobs_update_timeout => 1200,
|
|
url => "https://${vhost_name}/",
|
|
username => $jenkins_jobs_username,
|
|
password => $jenkins_jobs_password,
|
|
git_revision => $jenkins_git_revision,
|
|
git_url => $jenkins_git_url,
|
|
config_dir =>
|
|
$::project_config::jenkins_job_builder_config_dir,
|
|
require => $::project_config::config_dir,
|
|
}
|
|
}
|
|
}
|