This is an example Data Repository to use with OpenStack External Testing Platform Installer.
DO NOT fork this repository.
It is intended to be copied to some private location (possibly a private GitHub repository, possibly somewhere else private in your organization). This repository will contain private SSH keys and other sensitive information.
9/4/2015 It has been updated to follow the project-config file layout
Follow these manual instructions to get your data repository set up:
-
Copy the repository somewhere private.
-
Copy the private SSH key that you submitted when you registered with the upstream OpenStack Infrastructure team into somewhere in this repo.
-
Create an SSH key pair that you will use for Jenkins. This SSH key pair will live in the
/var/lib/jenkins/.ssh/
directory on the master Jenkins host, and it will be added to the/home/jenkins/.ssh/authorized_keys
file of all slave hosts::ssh-keygen -t rsa -b 1024 -N '' -f jenkins_key
Once you do the above, copy the
jenkins_key
andjenkins_key.pub
files into your data repository. -
Copy
vars.sh.sample
tovars.sh
and open upvars.sh
in an editor. -
Change the value of the
$UPSTREAM_GERRIT_USER
shell variable to the Gerrit username you registered with the upstream OpenStack Infrastructure team as detailed in these instructions -
Change the value of the
$UPSTREAM_GERRIT_SSH_KEY_PATH
shell variable to the relative path of the private SSH key file you copied into the repository in step #2.For example, let's say you put your private SSH key file named
mygerritkey
into a directory calledssh
within the repository, you would set the$UPSTREAM_GERRIT_SSH_KEY_PATH
value tossh/mygerritkey
-
If for some reason, in step #3 above, you either used a different output filename than
jenkins_key
or put the key pair into some subdirectory of your data repository, then change the value of the$JENKINS_SSH_KEY_PATH
variable invars.sh
to an appropriate value. -
Change the value of the
$PUBLISH_HOST
to the host (without https:// prefix) you will publish job artifacts to. This is also known as the Log server. You can set one up using [this script] (https://github.com/rasselin/os-ext-testing/blob/master/puppet/install_log_server.sh). -
Change the mysql passwords in
$MYSQL_ROOT_PASSWORD
with the (current) root mysql password and$MYSQL_PASSWORD
with the desired nodepool mysql password. -
Optionally change the
$GIT_EMAIL
and$GIT_NAME
to a different name. These are used by zuul to manage internal git trees. -
Optionall add your SMTP server in
$SMTP_HOST
if you would like to use zuul's e-mail notification features. -
Copy the
nodepool/nodepool.yaml.sample
tonodepool/nodepool.yaml
and modify as needed. Some common properties are delimited by <%= %> are also set in the vars.sh file and need to be manually. These include username and password. You can find the full configuration details in the Nodepool manual. In particular, update the mysql_password to$MYSQL_PASSWORD
. Choose a new time for the image-update cron job. Setup the OpenStack provider username, password, and auth-url. Finally, synchronize the jenkins environment to what you configured in vars.sh. -
Copy the
zuul/layout.yaml.sample
file tozuul/layout.yaml
and update it to your needs. You can find the full configuration details in the Zuul manual. In particular, update the portions that have 'myvendor' and configure the e-mail addresses for merge-failures. -
Adjust the jenkins jobs in
jenkins/jobs/
to your needs. You can find the full configuration details in the Jenkins Job Builder manual -
Setup an intial set of nodepool scripts and elements. Start by cloning OpenStack's project-config and copy the contents of that repo's
nodepool/elements
to your repo'snodepool/elements
. Optionally do the same for thenodepool/scripts
folder. You may have to change these elements to work in your environment. If so, see this README for help.
If you have not yet migrated to the 'project-config' layout, you are strongly encouraged to do so. Fortunately, it is a simple task:
-
Copy the files in
etc/jenkins_jobs/config
to jenkins/jobs -
Copy
etc/zuul/layout.yaml
tozuul/layout.yaml
-
Copy the files and directories in
etc/nodepool
nodepool/