400 Commits

Author SHA1 Message Date
Jenkins
2f81032060 Merge "adding staging server for activity board" 2013-09-20 21:20:52 +00:00
Marton Kiss
648a8af52f Add groups-dev.openstack.org node
Add a groups-dev node to openstack infra, based on drupal
environment. This node checks out the repository:
https://git.openstack.org/openstack-infra/groups

Build a new deployment from scratch, including drush make
distbuild and drush si auto-installation features.

Change-Id: I71eef1c14724ceb13a896ff768923148dedcc2ef
2013-09-17 11:43:00 +02:00
Jeremy Stanley
ef399b91af Add a Jenkins slave for triggering salt commands
This is the skeleton we'll fill out with any additional
functionality needed by the salt-trigger slave.

Change-Id: I928c2fa4c64e69140b673615a8c18e4eea79e952
2013-09-12 17:38:19 +00:00
Stefano Maffulli
93490ce25d adding staging server for activity board
Change-Id: Ib2b0de6e2cdc59f5c9dca90117d333f70dbab040
2013-09-12 14:40:44 +10:00
Alex Gaynor
32db246dd3 Add support for running tox with PyPy and use it for Marconi
This works by installing PyPy from the Ubuntu PPA, and then invoking
`tox -e pypy` (similar to all the other Python buidlers). PyPy shares
nodes with the Python3 builders.

Change-Id: Ibf683c1995b0f5c04c93c56010befb222b386d7a
2013-08-27 13:44:10 -07:00
Clark Boylan
f22f8f5aa1 Split git.o.o haproxy out of cgit module.
* manifests/site.pp: Use distinct manifests for git.o.o and git.o.o
backends. This allows for the haproxy server to not serve git content
and purely be a load balancer.

* modules/cgit/manifests/init.pp: Remove haproxy from cgit module.
Remove stale xinetd cleanup. Select git daemon port when selecting
HTTP(S) ports.

* modules/openstack_project/manifests/git.pp: Make git.pp a manifest to
load balance git servers with haproxy.

* modules/openstack_project/manifests/git_backend.pp: New manifest to
manage servers that actually serve git content. They sit behind a load
balancer.

* modules/openstack_project/manifests/review.pp: Stop replicating repos
to git load balancer.

Change-Id: I343a0d1e0a7b93874c2e2299ed974a3304957efb
2013-08-26 12:05:26 -07:00
Clark Boylan
dea75ed695 Load balance git requests.
* install_modules.sh: Add puppetlabs-haproxy forge module.

* modules/cgit/manifests/init.pp: Add haproxy config to load balance
https, https and git protocol git access. Each git server will host git
http on port 8080, https on port 4443 and git protocol on 29418. These
endpoints will then be load balanced by a single haproxy instance
listening on ports 80, 443 and 9418. The use of haproxy and having
services listen on offset ports to accomodate haproxy is toggleable
using the $balance_git and $behind_proxy boolean flags.
Additionally, configure rsyslog for haproxy.

* modules/cgit/files/rsyslog.haproxy.conf: Enable syslog over UDP on
port 514. This is needed by haproxy to perform logging. Send local0
messages to /var/log/haproxy.log.

* modules/cgit/templates/ssl.conf.erb: Make Apache https listen port
configurable. Remove default virtualhost.

* modules/cgit/templates/httpd.conf.erb: Make Apache http listen port
configurable.

* modules/cgit/templates/git.vhost..erb: Make Apache http(s) listen
ports configuruable. Allow http without redirecting to https as a
fallback option to accomodate CentOS clients.

* modules/openstack_project/manifests/git.pp: Pass load balancer
variables through to the cgit manifest.

* manifests/site.pp: Configure git.o.o to run the load balancer haproxy
and balance across the new gitXX.o.o nodes.

Change-Id: Icefc5923cff9a7c6ce62c1923ec2ea87ebc6474a
2013-08-22 10:52:04 -07:00
James E. Blair
86b0f3bfd5 Fix nodepool setup scripts
The devstack cache steps were being run as the ubuntu user; make
sure they are run as jenkins.

Also update the nodepool configuration file to current values and
include the jenkins credential id.

Change-Id: Icbe8bee3b1800e28034cd36d4d328a6793d55b0e
2013-08-20 19:58:38 -07:00
James E. Blair
a38e256eb2 Remove devstack launch nodes and jobs
Change-Id: Icc6ba916df45b2a763f85a73412f9c8e1df88701
2013-08-18 08:43:50 -07:00
James E. Blair
8222c6e00f Add nodepool host
Change-Id: Ib216bd400aa269ccdb17848b3870ab65400cf3d2
2013-08-16 13:15:42 -07:00
Elizabeth Krumbach
f7fb31242b Put correct gerrit ssh pubkey on git.o.o
The pubkey being used previous was the server pubkey, not the
gerrit2 user pubkey. The gerrit2 user pubkey is now in hiera
and switched git.openstack.org to use that for the
authorized_keys file.

Change-Id: I6665ef119071b8b68e4cb6bb7f7e8d79ad04fcbc
2013-08-07 20:18:28 -07:00
Elizabeth Krumbach
8b81e9d213 Add httpd ssl support to git.openstack.org
Certificates have been added to hiera, now adding the support for
https in a new apache file.

Change-Id: I8447d60a15779b103556e53f04accf671dbf4843
2013-08-06 16:26:52 -07:00
Clark Boylan
ee6dabb785 Fix logstash.o.o elasticsearch discover node list.
Logstash.o.o needs to be given the host and port for its elasticsearch
discover node list. Fix the change that used just a list of hosts.

Change-Id: If421007f633eb54a5dc65d5ede57d1e0a6f1c5d9
2013-08-06 10:46:00 -07:00
James E. Blair
b4d1b7f3a2 Use jenkins credentials store with d-g
on the new jenkins systems.

Change-Id: I9d6c079abcc75cd0cf0acb3bcdad15be5a87ce28
2013-08-05 15:53:01 -07:00
James E. Blair
83494418ce Add new jenkins masters to zuul firewall
Change-Id: Id8dc54deea14150b972602249330e1081e594bc5
2013-08-05 13:39:53 -07:00
Jenkins
f6a8fc2ce8 Merge "Add Jenkins SSH key to proposal.slave." 2013-08-05 18:26:52 +00:00
Clark Boylan
48b235fe27 Add Jenkins SSH key to proposal.slave.
Proposal.slave.openstack.org is used to push change proposals into
Gerrit. To do this the slave needs to have the Jenkins' private SSH key
installed. Make it so.

Change-Id: Id3106d3167da0569370000e3c1a724a88abbd245
2013-08-05 10:38:59 -07:00
Jenkins
5a3898ed1e Merge "Cleanup unneeded Jenkins vars." 2013-08-05 17:27:44 +00:00
Jenkins
7e5901a397 Merge "Add sixth elasticsearch node." 2013-08-03 03:13:43 +00:00
Clark Boylan
2820835473 Add sixth elasticsearch node.
* manifests/site.pp: Put elasticsearch nodes in a list variable that is
reused.

* modules/logstash/templates/elasticsearch.yml.erb: Update cluster
settings to be more appropriate for the larger cluster size, including
changing the minimum number of master eligible nodes that must be seen
before becoming operational in a cluster. Should help prevent split
brained clusters.

* modules/openstack_project/manifests/cacti.pp: Add new node to cacti
node list.

Change-Id: I9a18422aa56a56b9ad030892a312772d9b6b2a79
2013-08-02 13:22:47 -07:00
Clark Boylan
ad46ddface Rename tx slave to proposal slave.
The tx slave is going to be used for other jobs that propose changes to
Gerrit. Give it a more appropriate name. This lines up with the move
from hosting this under rackspace legacy to rackspace nova.

Change-Id: I7168d62a4a0aae27d2cd2a7dc6c37595604c8251
2013-08-02 11:21:07 -07:00
Jenkins
250faac77d Merge "Add a mirror33 slave node definition." 2013-08-02 16:21:02 +00:00
Clark Boylan
663fd2225f Cleanup unneeded Jenkins vars.
Now that Zuul and Jenkins use Gearman we don't need to push Jenkins auth
details down into the zuul manifests. Removes these parameters and vars.

Change-Id: I744977f002eb9fb60c3392f0281ab033ffe2bb12
2013-07-31 16:19:49 -07:00
Jenkins
fb99b4fa74 Merge "Switch Zuul/JJB to use LOG_PATH" 2013-07-31 21:30:06 +00:00
Jenkins
6380a51a8f Merge "Add new jenkins masters." 2013-07-31 21:29:14 +00:00
Jeremy Stanley
40fc367771 Add a mirror33 slave node definition.
This will eventually run a job to feed any Python 3.3 specific
dependencies into the pypi mirror.

Change-Id: Idcfca576ee3b531bad54be5d53e0219f8719c25c
2013-07-31 19:13:14 +00:00
James E. Blair
0ccf564937 Switch Zuul/JJB to use LOG_PATH
This calculates the full LOG_PATH in the Zuul config and pases it
to Jenkins.  The new path is similar to the old but with the
substitution of a short ZUUL_UUID at the end instead of the Jenkins
build number in order to avoid collisions from multiple Jenkins
masters.

Periodic jobs add a node name to their log path to avoid collisions
from multiple masters.  Unfortunately, that value is not accessible
to the logstash worker.  This can be solved by having Zuul trigger
periodic jobs.

Add the ZUUL_REF to logstash as "build_ref".

Requires https://review.openstack.org/#/c/39130/

Change-Id: I40bad59e3ad8ed6b4706762ed8b833fd15c13b0d
2013-07-29 17:47:08 -07:00
James E. Blair
49b62c5d3a Add new jenkins masters.
Add jenkins01 and jenkins02, both of which will have unit test and
devstack slaves.  Leave jenkins.o.o alone; over time it will be
reduced so that it alone has special jobs and privileged slaves
attached to it.

Note that currently all of the jobs will be defined on all nodes,
including jobs on timers.  I think the long-term fix for that is to
have zuul schedule timed jobs.

Change-Id: I10bbd5555e5194b1031700975d5b3ae6b458b8b3
2013-07-29 09:24:39 -07:00
Jenkins
7da5f4ea9d Merge "Add three more logstash workers nodes." 2013-07-26 18:02:06 +00:00
Jenkins
c82d56c458 Merge "Use precisepy3k instead of precise3k." 2013-07-24 21:59:48 +00:00
Clark Boylan
55e9e2137e Add three more logstash workers nodes.
We keep adding more tempest tests to run per patchset. These tests are
the most expensive to index as they come with many megabytes of
uncompressed logs. Add more logstash worker nodes in an attempt to keep
up.

Change-Id: I41d35792d58d1b0456927b0f5b1b7728bf3d145c
2013-07-23 15:49:39 -07:00
James E. Blair
624a89dd98 Add voipms configuration
Change-Id: Ib776c8944bb3b2564e52b94fdb2bd04ffc6835eb
2013-07-20 10:20:41 -07:00
Jeremy Stanley
84a692429e Use precisepy3k instead of precise3k.
* manifests/site.pp: Unfortunately node names like precise3k-1
match the existing node name pattern precise-?\d+.* and end up with
the precise.slave.openstack.org shared puppet cert as a result.
Switch to precisepy3k which won't have this unintended side effect.

Change-Id: I2a530b0e19af769700e85f9060c2cbd8592eef1d
2013-07-20 01:30:25 +00:00
Jenkins
1b8dd965f6 Merge "Add a node pattern for precise3k slaves." 2013-07-19 20:24:17 +00:00
James E. Blair
f7f2760fe0 Set the Zuul/Jenkins base log URL in a function
And use that when constructing log paths and URLs.  Use a substr
of the change id or commit sha when constructing URLs so the log
directories are deeper.

Make copying the test results a macro (it's used in several places).

Update the gearman log client to take advantage of the new parameter.

Requires https://review.openstack.org/#/c/36304/

Change-Id: I64faa35eddc4105271efa3de4f83b608b77655c2
2013-07-19 10:36:31 -07:00
Jeremy Stanley
fe2a4cd0a6 Add a node pattern for precise3k slaves.
* manifests/site.pp: Add a node pattern for slave servers which run
Ubuntu Precise Pangolin and default to Python 3.3 for the Puppet PIP
package provider.

* launch/README: Starting with precise3k slaves, individual Puppet
certificates will now be used per-server.

Change-Id: I2cde440720afd8014fc98dfd133d29a428751a9d
2013-07-18 22:34:36 +00:00
Jenkins
a7aea1e1ea Merge "Add a skeleton asterisk server." 2013-07-18 04:58:14 +00:00
Russell Bryant
3b18e93131 Add a skeleton asterisk server.
This commit adds a bare server that will be updated to become an
Asterisk server.

Change-Id: If54badab3269d8c8ce504f8bfcb0e5f79eeaeb69
2013-07-17 13:11:39 -04:00
Elizabeth Krumbach
52732dd550 Add cgit web service and git server
Define git.openstack.org server and deploy cgit web service with
Apache on CentOS.

Change-Id: Id3c7c870e25e4202915bc081454896895084f9af
2013-07-16 09:55:11 -07:00
Clark Boylan
76d3e632d4 Add two more elasticsearch nodes.
* manifests/site.pp: List the two new elasticsearch nodes in the
appropriate lists.

* modules/logstash/manifests/elasticsearch.pp: Do not restart
elasticsearch when config files change. Service restarts are costly and
should be manually performed when necessary. Otherwise puppet should
simply update the config files.

* modules/logstash/templates/elasticsearch.yml.erb: Update elasticsearch
config with new cluster topology. Increase memory available for
indexing.

* modules/openstack_project/manifests/cacti.pp: Add new nodes to cacti
monitoring list.

Adding two more elasticsearch nodes to relieve memory pressure (more
nodes means fewer indexes per nodes which requires less memory to
manage). And two more nodes gives us more disk to retain older indexes
in. These new nodes should allow us to retain at least 3 weeks of
indexed logs.

Change-Id: I3a5a02311e939c8147e401110c7b96d085eb8274
Reviewed-on: https://review.openstack.org/36305
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
2013-07-09 18:40:21 +00:00
Clark Boylan
443539b7fa Better elasticsearch cluster settings.
Use mutliple discover nodes to determine elasticsearch cluster
membership. Put a timeout on recovery starting instead of the default
to recovery immediately. Describe cluster topology in elasticsearch yaml
config so that it can make smarter decisions. Round robin kibana
requests across each discover node.

Change-Id: I08ef9dd158ddf6a6ce01dfb2050626f543d45b10
Reviewed-on: https://review.openstack.org/34106
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
2013-07-01 17:49:09 +00:00
Clark Boylan
cfd1df90d9 Add two more logstash gearman workers.
Add logstash-worker4 and logstash-worker5.

Change-Id: Ibd1a618c4283b1d87904794d35963f69d1945b4e
Reviewed-on: https://review.openstack.org/33998
Reviewed-by: matthew wagoner <zxkuqyb@gmail.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
2013-07-01 17:48:55 +00:00
Clark Boylan
33367c88de Add support for elasticsearch cluster.
We need to expand our elasticsearch install base. Update puppet to make
this possible.

Change-Id: Id0dae839b12ebf47715cf40a363832e0f661a94f
Reviewed-on: https://review.openstack.org/33910
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
2013-07-01 17:48:16 +00:00
Jeremy Stanley
eff39bb41b Add fedora18 and fedora18-dev slaves.
* manifests/site.pp: Add node name patterns for fedora18 production
and development slaves with Python 3 support switched on.

Change-Id: I7eac41e6dccde50be962cbc3fda21ac90c3d246b
Reviewed-on: https://review.openstack.org/34084
Reviewed-by: Dan Prince <dprince@redhat.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
2013-06-26 14:00:46 +00:00
zaro0508
782501b228 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-17 23:52:36 +00:00
Clark Boylan
4aba312807 Use gearman to distribute logstash log pushing.
This change reorgs the logstash log pushing so that there is a central
gearman server that listens to Jenkins ZMQ events which are then
converted to per log file gearman jobs which are processed by gearman
workers. The central gearman server will live on logstash.o.o and the
existing logstash-worker hosts will be converted to gearman log pusher
workers.

This commit includes relavent documentation changes.

Change-Id: I45f7185c2479c54b090d223408dff268e1e8d7db
Reviewed-on: https://review.openstack.org/32455
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
2013-06-12 21:45:42 +00:00
Clark Boylan
d313ce581a Include openstack_project for Jenkins' SSH key.
The openstack_project class needs to be included to make the
jenkins_ssh_key variable available to nodes.

Change-Id: I57fb6f24755bf123cf9f6f9b724035d0ababf8f3
Reviewed-on: https://review.openstack.org/31581
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
2013-06-03 23:31:36 +00:00
Clark Boylan
b51d23a3cd Pass Jenkins' SSH pub key to special slaves.
The openstack_project::slave refactor defaulted the Jenkins' SSH pub key
to an empty string. This erased the authorized keys file for the Jenkins
user on our specialized slaves. Restore that file's contents.

Change-Id: I28067017ec2dc36feef9df076099813abf820ee9
Reviewed-on: https://review.openstack.org/31419
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
2013-06-03 22:42:40 +00:00
Thierry Carrez
f51ac05e3e Add releasestatus SSH key
Add an SSH keypair for releasestatus so that it can connect to
review.openstack.org to grab review data. Also add review.o.o
public key to known_hosts.

The data in hiera was already added.

Change-Id: I193dfad5b229a0c193ce35d5a8917b0b3b86c117
Reviewed-on: https://review.openstack.org/30881
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
2013-05-29 18:56:03 +00:00
Clark Boylan
5bbe7824e0 Scale out logstash indexing to multiple hosts.
Logstash performs filtering in a single thread so it does not scale up
very well. Work around this by scaling Logstash out to multiple indexer
hosts.

Current plan is to have a small (2GB) kibana web front end host that
does nothing but talk to elasticsearch, three 4GB logstash indexers that
will run a single log-pusher.py + logstash indexer with some partition
of the logfiles assigned to each indexer, and finally the existing large
elasticsearch node.

Eventually properly load balancing log processing across the worker
nodes would be great, but the current partition method should work well
enough with little additional effort.

Change-Id: Ifc6396560934314ffd6a7c47eb2acff9e9c2a7af
Reviewed-on: https://review.openstack.org/30573
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
2013-05-29 00:33:36 +00:00