717 lines
27 KiB
ObjectPascal
Raw Normal View History

#
# Default: should at least behave like an openstack server
#
node default {
include openstack_project::puppet_cron
class { 'openstack_project::server':
sysadmins => hiera('sysadmins'),
}
}
#
# Long lived servers:
#
node 'review.openstack.org' {
class { 'openstack_project::review':
github_oauth_token => hiera('gerrit_github_token'),
github_project_username => hiera('github_project_username'),
github_project_password => hiera('github_project_password'),
mysql_password => hiera('gerrit_mysql_password'),
mysql_root_password => hiera('gerrit_mysql_root_password'),
email_private_key => hiera('gerrit_email_private_key'),
gerritbot_password => hiera('gerrit_gerritbot_password'),
ssl_cert_file_contents => hiera('gerrit_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('gerrit_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('gerrit_ssl_chain_file_contents'),
ssh_dsa_key_contents => hiera('gerrit_ssh_dsa_key_contents'),
ssh_dsa_pubkey_contents => hiera('gerrit_ssh_dsa_pubkey_contents'),
ssh_rsa_key_contents => hiera('gerrit_ssh_rsa_key_contents'),
ssh_rsa_pubkey_contents => hiera('gerrit_ssh_rsa_pubkey_contents'),
ssh_project_rsa_key_contents => hiera('gerrit_project_ssh_rsa_key_contents'),
ssh_project_rsa_pubkey_contents => hiera('gerrit_project_ssh_rsa_pubkey_contents'),
ssh_welcome_rsa_key_contents => hiera('welcome_message_gerrit_ssh_private_key'),
ssh_welcome_rsa_pubkey_contents => hiera('welcome_message_gerrit_ssh_public_key'),
ssh_replication_rsa_key_contents => hiera('gerrit_replication_ssh_rsa_key_contents'),
ssh_replication_rsa_pubkey_contents => hiera('gerrit_replication_ssh_rsa_pubkey_contents'),
lp_sync_consumer_key => hiera('gerrit_lp_consumer_key'),
lp_sync_token => hiera('gerrit_lp_access_token'),
lp_sync_secret => hiera('gerrit_lp_access_secret'),
contactstore_appsec => hiera('gerrit_contactstore_appsec'),
contactstore_pubkey => hiera('gerrit_contactstore_pubkey'),
sysadmins => hiera('sysadmins'),
swift_username => hiera('swift_store_user'),
swift_password => hiera('swift_store_key'),
}
}
node 'review-dev.openstack.org' {
class { 'openstack_project::review_dev':
github_oauth_token => hiera('gerrit_dev_github_token'),
github_project_username => hiera('github_dev_project_username'),
github_project_password => hiera('github_dev_project_password'),
mysql_password => hiera('gerrit_dev_mysql_password'),
mysql_root_password => hiera('gerrit_dev_mysql_root_password'),
email_private_key => hiera('gerrit_dev_email_private_key'),
contactstore_appsec => hiera('gerrit_dev_contactstore_appsec'),
contactstore_pubkey => hiera('gerrit_dev_contactstore_pubkey'),
ssh_dsa_key_contents => hiera('gerrit_dev_ssh_dsa_key_contents'),
ssh_dsa_pubkey_contents => hiera('gerrit_dev_ssh_dsa_pubkey_contents'),
ssh_rsa_key_contents => hiera('gerrit_dev_ssh_rsa_key_contents'),
ssh_rsa_pubkey_contents => hiera('gerrit_dev_ssh_rsa_pubkey_contents'),
ssh_project_rsa_key_contents => hiera('gerrit_dev_project_ssh_rsa_key_contents'),
ssh_project_rsa_pubkey_contents => hiera('gerrit_dev_project_ssh_rsa_pubkey_contents'),
lp_sync_consumer_key => hiera('gerrit_dev_lp_consumer_key'),
lp_sync_token => hiera('gerrit_dev_lp_access_token'),
lp_sync_secret => hiera('gerrit_dev_lp_access_secret'),
sysadmins => hiera('sysadmins'),
}
}
node 'jenkins.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password'),
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
ssl_cert_file_contents => hiera('jenkins_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('jenkins_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('jenkins_ssl_chain_file_contents'),
sysadmins => hiera('sysadmins'),
zmq_event_receivers => ['logstash.openstack.org',
'nodepool.openstack.org',
],
}
}
node 'jenkins01.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password'),
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
ssl_cert_file_contents => hiera('jenkins01_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('jenkins01_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('jenkins01_ssl_chain_file_contents'),
sysadmins => hiera('sysadmins'),
zmq_event_receivers => ['logstash.openstack.org',
'nodepool.openstack.org',
],
}
}
node 'jenkins02.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password'),
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
ssl_cert_file_contents => hiera('jenkins02_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('jenkins02_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('jenkins02_ssl_chain_file_contents'),
sysadmins => hiera('sysadmins'),
zmq_event_receivers => ['logstash.openstack.org',
'nodepool.openstack.org',
],
}
}
node 'jenkins03.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password'),
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
ssl_cert_file_contents => hiera('jenkins03_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('jenkins03_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('jenkins03_ssl_chain_file_contents'),
sysadmins => hiera('sysadmins'),
zmq_event_receivers => ['logstash.openstack.org',
'nodepool.openstack.org',
],
}
}
node 'jenkins04.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password'),
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
ssl_cert_file_contents => hiera('jenkins04_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('jenkins04_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('jenkins04_ssl_chain_file_contents'),
sysadmins => hiera('sysadmins'),
zmq_event_receivers => ['logstash.openstack.org',
'nodepool.openstack.org',
],
}
}
node 'jenkins05.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password'),
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
ssl_cert_file_contents => hiera('jenkins05_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('jenkins05_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('jenkins05_ssl_chain_file_contents'),
sysadmins => hiera('sysadmins'),
zmq_event_receivers => ['logstash.openstack.org',
'nodepool.openstack.org',
],
}
}
node 'jenkins06.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password'),
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
ssl_cert_file_contents => hiera('jenkins06_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('jenkins06_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('jenkins06_ssl_chain_file_contents'),
sysadmins => hiera('sysadmins'),
zmq_event_receivers => ['logstash.openstack.org',
'nodepool.openstack.org',
],
}
}
node 'jenkins07.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password'),
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
ssl_cert_file_contents => hiera('jenkins07_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('jenkins07_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('jenkins07_ssl_chain_file_contents'),
sysadmins => hiera('sysadmins'),
zmq_event_receivers => ['logstash.openstack.org',
'nodepool.openstack.org',
],
}
}
node 'jenkins-dev.openstack.org' {
class { 'openstack_project::jenkins_dev':
jenkins_ssh_private_key => hiera('jenkins_dev_ssh_private_key_contents'),
sysadmins => hiera('sysadmins'),
mysql_password => hiera('nodepool_dev_mysql_password'),
mysql_root_password => hiera('nodepool_dev_mysql_root_password'),
nodepool_ssh_private_key => hiera('jenkins_dev_ssh_private_key_contents'),
jenkins_api_user => hiera('jenkins_dev_api_user'),
jenkins_api_key => hiera('jenkins_dev_api_key'),
jenkins_credentials_id => hiera('jenkins_dev_credentials_id'),
hpcloud_username => hiera('nodepool_hpcloud_username'),
hpcloud_password => hiera('nodepool_hpcloud_password'),
hpcloud_project => hiera('nodepool_hpcloud_project'),
}
}
node 'cacti.openstack.org' {
include openstack_project::ssl_cert_check
class { 'openstack_project::cacti':
sysadmins => hiera('sysadmins'),
}
}
node 'community.openstack.org' {
class { 'openstack_project::community':
sysadmins => hiera('sysadmins'),
}
}
node 'ci-puppetmaster.openstack.org' {
class { 'openstack_project::puppetmaster':
sysadmins => hiera('sysadmins'),
}
}
node 'graphite.openstack.org' {
class { 'openstack_project::graphite':
sysadmins => hiera('sysadmins'),
graphite_admin_user => hiera('graphite_admin_user'),
graphite_admin_email => hiera('graphite_admin_email'),
graphite_admin_password => hiera('graphite_admin_password'),
statsd_hosts => ['nodepool.openstack.org',
'zuul.openstack.org'],
}
}
node 'groups.openstack.org' {
class { 'openstack_project::groups':
sysadmins => hiera('sysadmins'),
}
}
node 'groups-dev.openstack.org' {
class { 'openstack_project::groups_dev':
sysadmins => hiera('sysadmins'),
site_admin_password => hiera('groups_dev_site_admin_password'),
site_mysql_host => hiera('groups_dev_site_mysql_host'),
site_mysql_password => hiera('groups_dev_site_mysql_password'),
}
}
node 'lists.openstack.org' {
class { 'openstack_project::lists':
listadmins => hiera('listadmins'),
listpassword => hiera('listpassword'),
}
}
node 'paste.openstack.org' {
class { 'openstack_project::paste':
sysadmins => hiera('sysadmins'),
}
}
node 'planet.openstack.org' {
class { 'openstack_project::planet':
sysadmins => hiera('sysadmins'),
}
}
node 'eavesdrop.openstack.org' {
class { 'openstack_project::eavesdrop':
nickpass => hiera('openstack_meetbot_password'),
sysadmins => hiera('sysadmins'),
statusbot_nick => hiera('statusbot_nick'),
statusbot_password => hiera('statusbot_nick_password'),
statusbot_server => 'chat.freenode.net',
statusbot_channels => 'openstack-infra, openstack-dev, openstack',
statusbot_auth_nicks => 'jeblair, ttx, fungi, mordred, clarkb, sdague',
statusbot_wiki_user => hiera('statusbot_wiki_username'),
statusbot_wiki_password => hiera('statusbot_wiki_password'),
statusbot_wiki_url => 'https://wiki.openstack.org/w/api.php',
statusbot_wiki_pageid => '1781',
}
}
node 'etherpad.openstack.org' {
class { 'openstack_project::etherpad':
ssl_cert_file_contents => hiera('etherpad_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('etherpad_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('etherpad_ssl_chain_file_contents'),
Update etherpad and etherpad puppet manifests. * manifests/site.pp: Pass new mysql DB variables to openstack::etherpad*. * modules/etherpad_lite/manifests/apache.pp: Fix broken /etc/ssl/certs permissions (0700 -> 0755). * modules/etherpad_lite/manifests/init.pp: Update default nodejs and etherpad versions. Remove ep_headings plugin install. New plugin define should be used for this instead. Stop making the etherpad-lite ref to checkout optional (defaults to develop). Note these changes are probably not going to be backward compat. * modules/etherpad_lite/manifests/plugin.pp: Define to install etherpad lite plugins. * modules/etherpad_lite/manifests/site.pp: Simplify DB support and remove support for the dirty DB type. * modules/etherpad_lite/templates/etherpad-lite_settings.json.erb: Bring settings erb up to par with latest template. * modules/etherpad_lite/templates/etherpadlite.vhost.erb: Update rewrite rules for new etherpad. Instead of allowing nice pad urls rooted at / redirect these url to /p/padname. Etherpad does not deal well with a change in root path as /p/ is hardcoded in many places. * modules/openstack_project/manifests/etherpad.pp * modules/openstack_project/manifests/etherpad_dev.pp: Update to use new etherpad module setup. MySQL DBs are now externally managed, pass in needed connection info. * modules/mysql_backup/manifests/backup_remote.pp: New define to backup remote DB servers. * modules/mysql_backup/templates/my.cnf.erb: Template for a my.cnf to be used by the cron in backup_remote.pp. Allows for easy connectivity from server using MySQL DB as root. Change-Id: I1250297674b91e81d59cd28c07c52e09967ca548
2013-09-05 18:22:21 -07:00
mysql_host => hiera('etherpad_db_host'),
mysql_user => hiera('etherpad_db_user'),
mysql_password => hiera('etherpad_db_password'),
sysadmins => hiera('sysadmins'),
}
}
node 'etherpad-dev.openstack.org' {
class { 'openstack_project::etherpad_dev':
Update etherpad and etherpad puppet manifests. * manifests/site.pp: Pass new mysql DB variables to openstack::etherpad*. * modules/etherpad_lite/manifests/apache.pp: Fix broken /etc/ssl/certs permissions (0700 -> 0755). * modules/etherpad_lite/manifests/init.pp: Update default nodejs and etherpad versions. Remove ep_headings plugin install. New plugin define should be used for this instead. Stop making the etherpad-lite ref to checkout optional (defaults to develop). Note these changes are probably not going to be backward compat. * modules/etherpad_lite/manifests/plugin.pp: Define to install etherpad lite plugins. * modules/etherpad_lite/manifests/site.pp: Simplify DB support and remove support for the dirty DB type. * modules/etherpad_lite/templates/etherpad-lite_settings.json.erb: Bring settings erb up to par with latest template. * modules/etherpad_lite/templates/etherpadlite.vhost.erb: Update rewrite rules for new etherpad. Instead of allowing nice pad urls rooted at / redirect these url to /p/padname. Etherpad does not deal well with a change in root path as /p/ is hardcoded in many places. * modules/openstack_project/manifests/etherpad.pp * modules/openstack_project/manifests/etherpad_dev.pp: Update to use new etherpad module setup. MySQL DBs are now externally managed, pass in needed connection info. * modules/mysql_backup/manifests/backup_remote.pp: New define to backup remote DB servers. * modules/mysql_backup/templates/my.cnf.erb: Template for a my.cnf to be used by the cron in backup_remote.pp. Allows for easy connectivity from server using MySQL DB as root. Change-Id: I1250297674b91e81d59cd28c07c52e09967ca548
2013-09-05 18:22:21 -07:00
mysql_host => hiera('etherpad-dev_db_host'),
mysql_user => hiera('etherpad-dev_db_user'),
mysql_password => hiera('etherpad-dev_db_password'),
sysadmins => hiera('sysadmins'),
}
}
node 'activity-dev.openstack.org' {
class { 'openstack_project::activity_dev':
sysadmins => hiera('sysadmins'),
site_admin_password => hiera('activity_dev_site_admin_password'),
site_mysql_host => hiera('activity_dev_site_mysql_host'),
site_mysql_password => hiera('activity_dev_site_mysql_password'),
}
}
node 'wiki.openstack.org' {
class { 'openstack_project::wiki':
mysql_root_password => hiera('wiki_db_password'),
sysadmins => hiera('sysadmins'),
ssl_cert_file_contents => hiera('wiki_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('wiki_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('wiki_ssl_chain_file_contents'),
}
}
node 'puppet-dashboard.openstack.org' {
class { 'openstack_project::dashboard':
password => hiera('dashboard_password'),
mysql_password => hiera('dashboard_mysql_password'),
sysadmins => hiera('sysadmins'),
}
}
$elasticsearch_nodes = [
'elasticsearch.openstack.org',
'elasticsearch2.openstack.org',
'elasticsearch3.openstack.org',
'elasticsearch4.openstack.org',
'elasticsearch5.openstack.org',
'elasticsearch6.openstack.org',
]
node 'logstash.openstack.org' {
class { 'openstack_project::logstash':
sysadmins => hiera('sysadmins'),
elasticsearch_nodes => $elasticsearch_nodes,
gearman_workers => [
'logstash-worker01.openstack.org',
'logstash-worker02.openstack.org',
'logstash-worker03.openstack.org',
'logstash-worker04.openstack.org',
'logstash-worker05.openstack.org',
'logstash-worker06.openstack.org',
'logstash-worker07.openstack.org',
'logstash-worker08.openstack.org',
'logstash-worker09.openstack.org',
'logstash-worker10.openstack.org',
'logstash-worker11.openstack.org',
'logstash-worker12.openstack.org',
'logstash-worker13.openstack.org',
'logstash-worker14.openstack.org',
'logstash-worker15.openstack.org',
'logstash-worker16.openstack.org',
],
discover_nodes => [
'elasticsearch.openstack.org:9200',
'elasticsearch2.openstack.org:9200',
'elasticsearch3.openstack.org:9200',
'elasticsearch4.openstack.org:9200',
'elasticsearch5.openstack.org:9200',
'elasticsearch6.openstack.org:9200',
],
}
}
node /^logstash-worker\d+\.openstack\.org$/ {
class { 'openstack_project::logstash_worker':
sysadmins => hiera('sysadmins'),
elasticsearch_nodes => $elasticsearch_nodes,
discover_node => 'elasticsearch.openstack.org',
}
}
node /^elasticsearch\d*\.openstack\.org$/ {
class { 'openstack_project::elasticsearch_node':
sysadmins => hiera('sysadmins'),
elasticsearch_nodes => $elasticsearch_nodes,
elasticsearch_clients => [
'logstash.openstack.org',
'logstash-worker01.openstack.org',
'logstash-worker02.openstack.org',
'logstash-worker03.openstack.org',
'logstash-worker04.openstack.org',
'logstash-worker05.openstack.org',
'logstash-worker06.openstack.org',
'logstash-worker07.openstack.org',
'logstash-worker08.openstack.org',
'logstash-worker09.openstack.org',
'logstash-worker10.openstack.org',
'logstash-worker11.openstack.org',
'logstash-worker12.openstack.org',
'logstash-worker13.openstack.org',
'logstash-worker14.openstack.org',
'logstash-worker15.openstack.org',
'logstash-worker16.openstack.org',
],
discover_nodes => $elasticsearch_nodes,
}
}
# A CentOS machine to load balance git access.
node 'git.openstack.org' {
class { 'openstack_project::git':
sysadmins => hiera('sysadmins'),
balancer_member_names => [
'git01.openstack.org',
'git02.openstack.org',
'git03.openstack.org',
'git04.openstack.org',
],
balancer_member_ips => [
'192.237.218.169',
'192.237.217.253',
'192.237.218.239',
'192.237.218.34',
],
}
}
# CentOS machines to run cgit and git daemon. Will be
# load balanced by git.openstack.org.
node /^git\d+\.openstack\.org$/ {
include openstack_project
class { 'openstack_project::git_backend':
vhost_name => 'git.openstack.org',
sysadmins => hiera('sysadmins'),
git_gerrit_ssh_key => hiera('gerrit_replication_ssh_rsa_pubkey_contents'),
git_zuul_ssh_key => $openstack_project::jenkins_ssh_key,
ssl_cert_file_contents => hiera('git_ssl_cert_file_contents'),
ssl_key_file_contents => hiera('git_ssl_key_file_contents'),
ssl_chain_file_contents => hiera('git_ssl_chain_file_contents'),
behind_proxy => true,
}
}
# A machine to run ODSREG in preparation for summits.
node 'summit.openstack.org' {
class { 'openstack_project::summit':
sysadmins => hiera('sysadmins'),
}
}
# A machine to run Storyboard
node 'storyboard.openstack.org' {
class { 'openstack_project::storyboard':
sysadmins => hiera('sysadmins'),
mysql_host => hiera('storyboard_db_host'),
mysql_user => hiera('storyboard_db_user'),
mysql_password => hiera('storyboard_db_password'),
}
}
# A machine to serve static content.
node 'static.openstack.org' {
class { 'openstack_project::static':
sysadmins => hiera('sysadmins'),
}
}
# A machine to serve various project status updates.
node 'status.openstack.org' {
class { 'openstack_project::status':
sysadmins => hiera('sysadmins'),
gerrit_host => 'review.openstack.org',
gerrit_ssh_host_key => hiera('gerrit_ssh_rsa_pubkey_contents'),
reviewday_ssh_public_key => hiera('reviewday_rsa_pubkey_contents'),
reviewday_ssh_private_key => hiera('reviewday_rsa_key_contents'),
releasestatus_ssh_public_key => hiera('releasestatus_rsa_pubkey_contents'),
releasestatus_ssh_private_key => hiera('releasestatus_rsa_key_contents'),
recheck_ssh_public_key => hiera('elastic-recheck_gerrit_ssh_public_key'),
recheck_ssh_private_key => hiera('elastic-recheck_gerrit_ssh_private_key'),
recheck_bot_nick => 'openstackrecheck',
recheck_bot_passwd => hiera('elastic-recheck_ircbot_password'),
}
}
node 'nodepool.openstack.org' {
class { 'openstack_project::nodepool':
mysql_password => hiera('nodepool_mysql_password'),
mysql_root_password => hiera('nodepool_mysql_root_password'),
nodepool_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
sysadmins => hiera('sysadmins'),
statsd_host => 'graphite.openstack.org',
jenkins_api_user => hiera('jenkins_api_user'),
jenkins_api_key => hiera('jenkins_api_key'),
jenkins_credentials_id => hiera('jenkins_credentials_id'),
rackspace_username => hiera('nodepool_rackspace_username'),
rackspace_password => hiera('nodepool_rackspace_password'),
rackspace_project => hiera('nodepool_rackspace_project'),
hpcloud_username => hiera('nodepool_hpcloud_username'),
hpcloud_password => hiera('nodepool_hpcloud_password'),
hpcloud_project => hiera('nodepool_hpcloud_project'),
tripleo_username => hiera('nodepool_tripleo_username'),
tripleo_password => hiera('nodepool_tripleo_password'),
tripleo_project => hiera('nodepool_tripleo_project'),
}
}
node 'zuul.openstack.org' {
class { 'openstack_project::zuul_prod':
gerrit_server => 'review.openstack.org',
gerrit_user => 'jenkins',
zuul_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
url_pattern => 'http://logs.openstack.org/{build.parameters[LOG_PATH]}',
zuul_url => 'http://zuul.openstack.org/p',
sysadmins => hiera('sysadmins'),
statsd_host => 'graphite.openstack.org',
gearman_workers => [
'nodepool.openstack.org',
'jenkins.openstack.org',
'jenkins01.openstack.org',
'jenkins02.openstack.org',
'jenkins03.openstack.org',
'jenkins04.openstack.org',
'jenkins05.openstack.org',
'jenkins06.openstack.org',
'jenkins07.openstack.org',
'jenkins-dev.openstack.org',
],
}
}
node 'zuul-dev.openstack.org' {
class { 'openstack_project::zuul_dev':
gerrit_server => 'review-dev.openstack.org',
gerrit_user => 'zuul-dev',
zuul_ssh_private_key => hiera('zuul_dev_ssh_private_key_contents'),
url_pattern => 'http://logs.openstack.org/{build.parameters[LOG_PATH]}',
zuul_url => 'http://zuul-dev.openstack.org/p',
sysadmins => hiera('sysadmins'),
statsd_host => 'graphite.openstack.org',
gearman_workers => [
'jenkins.openstack.org',
'jenkins01.openstack.org',
'jenkins02.openstack.org',
'jenkins03.openstack.org',
'jenkins04.openstack.org',
'jenkins05.openstack.org',
'jenkins06.openstack.org',
'jenkins07.openstack.org',
'jenkins-dev.openstack.org',
],
}
}
node 'pbx.openstack.org' {
class { 'openstack_project::pbx':
sysadmins => hiera('sysadmins'),
sip_providers => [
{
provider => 'voipms',
hostname => 'dallas.voip.ms',
username => hiera('voipms_username'),
password => hiera('voipms_password'),
outgoing => false,
},
],
}
}
# A backup machine. Don't run cron or puppet agent on it.
node /^ci-backup-.*\.openstack\.org$/ {
include openstack_project::backup_server
}
#
# Jenkins slaves:
#
node 'mirror26.slave.openstack.org' {
include openstack_project
class { 'openstack_project::mirror26_slave':
jenkins_ssh_public_key => $openstack_project::jenkins_ssh_key,
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents')
}
}
node 'mirror27.slave.openstack.org' {
include openstack_project
class { 'openstack_project::mirror27_slave':
jenkins_ssh_public_key => $openstack_project::jenkins_ssh_key,
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents')
}
}
node 'mirror33.slave.openstack.org' {
include openstack_project
class { 'openstack_project::mirror33_slave':
jenkins_ssh_public_key => $openstack_project::jenkins_ssh_key,
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents')
}
}
node 'proposal.slave.openstack.org' {
include openstack_project
class { 'openstack_project::proposal_slave':
transifex_username => 'openstackjenkins',
transifex_password => hiera('transifex_password'),
jenkins_ssh_public_key => $openstack_project::jenkins_ssh_key,
jenkins_ssh_private_key => hiera('jenkins_ssh_private_key_contents'),
}
}
node 'pypi.slave.openstack.org' {
include openstack_project
class { 'openstack_project::pypi_slave':
pypi_username => 'openstackci',
pypi_password => hiera('pypi_password'),
jenkins_ssh_public_key => $openstack_project::jenkins_ssh_key,
make maven versioning and deployment workflow similiar to python This commit fixes bug 1182154 The maven workflow for versioning and deployment is at odds with how we like to do it. For versioning, our convention is to get info from SCM to set the project build versions. For deployments to remote repositories we prefer to use curl instead of mvn deploy due to maven security vulnerabilities. Our python builds have already been setup to set package versions from SCM and deploy to pypi using curl so this commit is to make maven versioning and deployments similiar our python versioning and deployment workflow. This commit does the following: Setup a project version string as an environement variable so we can pass it to maven builds. The version string is retrieved from information in git. This makes the build versioning workflow similar to how we build python packages. This setup expects a variable called '$project-version' in the root 'version' element (i.e. <version>${project-version}</version>) of the maven project's pom.xml file. For general (throw away CI) builds we do the following: 1. generate a package 'myplugin.hpi' with version '1.3.0.4.a0bc21f' in the MANIFEST.MF file. The '4' is the number of commits since last tag. 2. publish 'myplugin-1.3.0.4.a0bc21f.hpi' to tarballs.o.o For release builds we do the following: 1. generate a package 'myplugin.hpi' with version '1.3.1' in the MANIFEST.MF file. 2. publish 'myplugin-1.3.1.hpi' to tarballs.o.o 3. publish 'myplugin-1.3.1.hpi' to repo.jenkins-ci.org Passes the jenkins credentials from hiera to the pypi slave so we can use it to deploy released plugins to repo.jenkins-ci.org Creates a generic jenkinsci-upload job that will deploy released jenkins plugin artifacts to a remote repository with user credentials from hiera. It will use the same curl deployment method as the pypi-upload job. Change-Id: If1306523a28da94ee970d96b7a788ca116348de7 Reviewed-on: https://review.openstack.org/31875 Reviewed-by: Monty Taylor <mordred@inaugust.com> Reviewed-by: Clark Boylan <clark.boylan@gmail.com> Reviewed-by: Jeremy Stanley <fungi@yuggoth.org> Approved: Clark Boylan <clark.boylan@gmail.com> Tested-by: Jenkins
2013-06-12 14:26:41 -07:00
jenkinsci_username => hiera('jenkins_ci_org_user'),
jenkinsci_password => hiera('jenkins_ci_org_password'),
mavencentral_username => hiera('mavencentral_org_user'),
mavencentral_password => hiera('mavencentral_org_password'),
}
}
node 'salt-trigger.slave.openstack.org' {
include openstack_project
class { 'openstack_project::salt_trigger_slave':
jenkins_ssh_public_key => $openstack_project::jenkins_ssh_key,
}
}
node /^precise-?\d+.*\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
class { 'openstack_project::slave':
certname => 'precise.slave.openstack.org',
ssh_key => $openstack_project::jenkins_ssh_key,
sysadmins => hiera('sysadmins'),
}
}
node /^precise-dev\d+.*\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
class { 'openstack_project::slave':
ssh_key => $openstack_project::jenkins_dev_ssh_key,
sysadmins => hiera('sysadmins'),
}
}
node /^precisepy3k-?\d+.*\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
class { 'openstack_project::slave':
ssh_key => $openstack_project::jenkins_ssh_key,
sysadmins => hiera('sysadmins'),
python3 => true,
include_pypy => true,
}
}
node /^precisepy3k-dev\d+.*\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
class { 'openstack_project::slave':
ssh_key => $openstack_project::jenkins_dev_ssh_key,
sysadmins => hiera('sysadmins'),
python3 => true,
include_pypy => true,
}
}
node /^centos6-?\d+\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
class { 'openstack_project::slave':
certname => 'centos6.slave.openstack.org',
ssh_key => $openstack_project::jenkins_ssh_key,
sysadmins => hiera('sysadmins'),
}
}
node /^centos6-dev\d+\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
class { 'openstack_project::slave':
ssh_key => $openstack_project::jenkins_dev_ssh_key,
sysadmins => hiera('sysadmins'),
}
}
node /^fedora18-?\d+\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
class { 'openstack_project::slave':
certname => 'fedora18.slave.openstack.org',
ssh_key => $openstack_project::jenkins_ssh_key,
sysadmins => hiera('sysadmins'),
python3 => true,
}
}
node /^fedora18-dev\d+\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
class { 'openstack_project::slave':
ssh_key => $openstack_project::jenkins_dev_ssh_key,
sysadmins => hiera('sysadmins'),
python3 => true,
}
}
node 'openstackid-dev.openstack.org' {
class { 'openstack_project::openstackid_dev':
sysadmins => hiera('sysadmins'),
site_admin_password => hiera('openstackid_dev_site_admin_password'),
mysql_host => hiera('openstackid_dev_mysql_host'),
mysql_password => hiera('openstackid_dev_mysql_password'),
}
}
# vim:sw=2:ts=2:expandtab:textwidth=79